Почему встроенная проверка подлинности Windows не работает, когда клиенты выходят из сети

Мой опыт работы не связан с веб-приложениями, поэтому мне сложно объяснить эту проблему. Сначала я попытаюсь описать настройку.

Настройка клиента:

  • IE 6-8 работает только в браузере (Firefox, Chrome, Opera и Safari работают нормально)
  • Пользователь будет пытаться получить доступ к нашему веб-приложению с ноутбука компании, который не подключен к нашей сети.
  • Этот компьютер будет членом нашей рабочей группы, и DNS компании будет указан в качестве надежного сайта в интрасети. (к которому будет относиться заявка)
  • Режим безопасного входа в систему установлен на Автоматический вход в систему только в зоне интрасети, а проверка подлинности IWA включена в браузере клиентов.

Настройка сервера:

  • Windows Server 2003 fp2
  • Сначала приложение перенаправит на страницу авторизации asp, на которой отключен анонимный доступ и IWA включен в IIS.

Что должно произойти, так это то, что, поскольку клиент в данный момент не находится в сети, при вызове этой страницы он должен запросить у пользователя учетные данные сети. Но в IE вместо запроса пользователь получает сообщение об ошибке "Страница не может быть отображена", поскольку диспетчер IIS запрещает доступ к странице asp. Если DNS-адрес компании удаляется из списка сайтов доверенных интрасетей, он запрашивает правильно, но отключает единый вход при следующем подключении компьютера к сети или VPN.

Я предполагаю, что, поскольку IE использует IWA, а сайт указан как внутренний сайт, когда сеть не найдена, IE просто отправляет на сервер значения NULL, пытаясь аутентифицироваться, что быстро отбрасывается назад. Другие браузеры не имеют зон безопасности, поэтому, когда учетные данные сети отсутствуют, сервер запрашивает их.

Есть ли способ обойти это, чтобы наши клиенты могли хранить DNS компании в зоне интрасети, но при этом не получать от сервера запрос на ввод учетных данных, когда не в сети? Насколько я знаю, любая попытка разрешить анонимный доступ к странице asp приведет к тому, что AUTH_USER вернет ноль и снова нарушит единый вход.

Я понимаю, что это немного бессвязно, поэтому я сделаю все возможное, чтобы уточнить любые вопросы, которые могут возникнуть у вас, ребята. Заранее спасибо.

2 ответа

IE откажется использовать NTLM/Negotiate через прокси, если этот прокси не внедрит

Proxy-Support: Session-Based-Authentication

заголовок ответа.

Кроме того, IE примет во внимание настройки зоны при принятии решения о правильном поведении. Вы можете настроить параметр "Надежные сайты" для входа в систему "Запрашивать имя пользователя и пароль".

Скорее всего, причиной вашей проблемы является прокси, через который проходят ваши клиенты. Этот прокси, вероятно, блокирует проверку подлинности NTLM от клиента. Это общая проблема, которую я видел несколько раз в прошлом.

Другие вопросы по тегам