Firefox запрашивает имя пользователя / пароль при каждом HTTP-запросе с включенной дайджест-проверкой подлинности на IIS6 - PullRequest
4 голосов
/ 12 ноября 2010

Я недавно включил дайджест-проверку подлинности на веб-сайте / приложении интрасети, создаваемом для моей компании в ASP.NET.

Причина, по которой я это сделал, заключается в том, что проверка подлинности Windows, похоже, работает только для некоторых пользователейи не для других.Я не мог понять, почему я не знаю достаточно об IIS, чтобы попытаться отследить проблему.После некоторых проб и ошибок я обнаружил, что дайджест-аутентификация, похоже, дала мне то поведение, которое я хотел.То есть: разрешать только пользователям с действительной учетной записью в домене входить на веб-сайт со своими учетными данными.

Проблема сейчас заключается в том, что Firefox (3+), похоже, запрашивает у пользователя аутентификацию на каждомHTTP-запрос отправлен на сервер.Похоже, что это не происходит в Internet Explorer (6+) или Chrome.

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

Похоже, проблемасвязано (из того, что я прочитал) с тем, как разные браузеры отправляют свои заголовки аутентификации против того, как их интерпретирует IIS.Я не уверен, что я могу сделать, чтобы изменить это хотя?Одно из решений, которое я нашел, упоминало написание фильтра ISAPI, чтобы исправить это, но, конечно, ссылка на готовый фильтр была разорвана, и я не представляю, как его создать самостоятельно.

Я пробовалвозиться с NTLM и другими связанными с аутентификацией строками в about: config, чтобы попытаться заставить Firefox доверять моему серверу, но, похоже, это тоже не работает.

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

Решение для любогопроблема будет работать для меня, но у меня очень мало информации для проблемы проверки подлинности Windows.Если бы кто-то мог помочь мне в поиске проблемы, я бы с удовольствием выложил и дополнительную информацию по ней.

Вот URL-адреса, которые я нашел и обсуждающие ту же проблему.(Извините, я не мог сделать их все ссылки, иначе я бы не стал публиковать)

  • support.mozilla.com / tiki-view_forum_thread.php? Locale = pt-BR & forumId = 1 & comments_parentId = 346851
  • www.experts-exchange.com / Программное обеспечение / Internet_Email / Web_Browsers / Mozilla / Q_24427378.html
  • channel9.msdn.com / forums / TechOff / 168006-Twin-bugs-in-IIS-IE-несправедливо-конкурентное преимущество-РЕДАКТИРОВАНИЕ-РЕШЕНО /
  • www.derkeiler.com / Группы новостей / microsoft.public.inetserver.iis.security / 2006-03 / msg00141.html

1 Ответ

9 голосов
/ 04 марта 2011

Это известная ошибка в FF. См. Раздел «Расширенная дайджест-проверка подлинности» работает из Internet Explorer, однако мы получаем несколько запросов на проверку подлинности при каждом запросе GET от fire fox

В IE 6 была та же ошибка.старый "Дайджест в IIS6:

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/1d6e22ac-0215-4d12-81e9-c9262c91b797.mspx?mfr=true

В настоящее время, если сервер отправляет непрозрачную директиву, клиент IE вернет значение этой директивы, как указано в RFC.К сожалению, для последующих запросов от клиента, где число одноразовых номеров увеличивается (число 2 и выше), непрозрачное значение директивы не отправляется.Это тогда терпит неудачу аутентификация на сервере, и возвращается 401 Несанкционированный.Теперь клиент IE запрашивает имя пользователя и пароль для нового запроса, и файл извлекается.

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

RFC заявляет, что непрозрачный всегда должен отправляться по запросам от клиента.Реализация дайджеста, которую использует IE6, не соответствует RFC (http://www.ietf.org/rfc/rfc2617.txt).
3.2.2 Заголовок запроса авторизации Значения полей непрозрачного и алгоритма должны быть такими, которые указаны в заголовке ответа WWW-Authenticate для запрашиваемого объекта.

3.3 Операция дайджеста Клиент должен помнить имя пользователя, пароль, одноразовый номер, число одноразовых номеров и непрозрачные значения, связанные с сеансом аутентификации, чтобы использовать его для создания заголовка авторизации в будущих запросах в этом пространстве защиты.

Поскольку от клиента требуется возвращать значение непрозрачной директивы, данной ему сервером на время сеанса, непрозрачные данные могут использоваться для передачи информации о состоянии сеанса аутентификации. -------- Редактировать дополнение-----

Аутентификация Windows, похоже, работала только для некоторых пользователей, а не для других. Как это не удалось? Включили ли вы олицетворение?

...