2016-02-09 2 views
0

У меня есть сайт интрасети, размещенный на Windows Server 2012 R2, и он отлично работает. У меня есть несколько приложений, настроенных на одном сайте с использованием MVC и ASP Forms. Но по какой-то причине один сайт не будет аутентифицировать мобильные устройства или определенные браузеры компьютеров, не принадлежащих к домену.Проверка подлинности Windows добавленного приложения не работает

Оба устройства IOS и Android, использующие Chrome или браузер по умолчанию на устройствах Android или Safari на устройствах IOS. Ни один из них даже не может запросить имя пользователя и пароль.

Я попытался на обоих устройствах очистить все сохраненные пароли и начать чистку, но по-прежнему приводит к несанкционированной странице 401 без каких-либо проблем.

На настольных компьютерах этот сайт работает на компьютерах домена без каких-либо проблем, как ожидалось, на компьютерах без домена, однако он попадает и промахивается в зависимости от браузера. Chrome и IE, похоже, работают, пока Firefox этого не делает. Firefox демонстрирует то же поведение аутентификации на корневом сайте, но даже не оспаривает под-приложение. Примечание. Поведение Firefox совместимо как с доменами, так и с другими доменами.

Я пробовал расчесывать параметры web.config и IIS для каждого сайта, и единственное, что я могу найти, это другое: я использую другой пул приложений. Этот конкретный сайт нуждается в дополнительных разрешениях, поэтому у меня есть пул с новый Identity.

Еще один момент, при отладке сайта на моей машине dev, я могу получить все устройства и браузеры для аутентификации, только при развертывании на сервере, где возникают эти проблемы.

Редактировать: Я сделал немного больше отладки и создал новое приложение, указанное в той же папке, и оно работает. На данный момент я не уверен, что проблема со старым приложением, но, похоже, сработала.

+0

ли позволил вам базовую аутентификацию? Не все браузеры или устройства могут аутентифицироваться с использованием проверки подлинности NTLM. Некоторые могут работать только с отправкой текстового пароля без NTLM. Кроме того, проверьте, есть ли прокси-сервер, с которым устройства должны пройти. Некоторые прокси могут влиять на возможности проверки подлинности NTLM, если устройство поддерживает ее. –

ответ

0

Аутентификация Windows состоит из Kerberos и NTLM.

KERBEROS in INTRANET только в том случае, если клиенту нужен доступ к контроллеру домена, и вы не хотите показывать свой DC в Интернете. NTLM, с другой стороны, не поддерживается многими прокси и, следовательно, он будет работать для некоторых, а не для других.

В то же время существует определенная зависимость от клиента. Клиент также должен поддерживать проверку подлинности Windows. AFAIK, Internet Explorer - единственный браузер, который обеспечивает поддержку первого класса для Windows Auth.

Заключение, если ваше приложение должно общаться в Интернете, вы не должны использовать проверку подлинности Windows.

Моя рекомендация будет использовать другие механизмы аутентификации, такие как:

  • BASIC AUTH с SSL
  • OAuth как Facebook/Google и т.д.
Смежные вопросы