IIS Digest неоднократно запрашивает аутентификацию
У меня есть разрабатываемая копия сайта интрасети ASP.NET, которая запущена на моей локальной машине. Мы используем дайджест-проверку подлинности, чтобы пользователи могли войти в систему, используя свои учетные записи в активном каталоге.
Только на моей копии для разработки Digest иногда будет запрашивать информацию для входа в систему, как правило, ~9 раз за запрос страницы. После многократного входа в систему (или он также работает, чтобы отменить 8 из 9 запросов), я могу использовать сайт как обычно.
Я не могу точно определить, что вызывает проблему. Иногда эта проблема возникает при запросе следующей страницы, иногда после того, как я отредактировал / сохранил / обновил страницу, а иногда этого не происходит вообще.
Каждое приглашение запускает несколько событий безопасности входа в систему (код события 4624 и 4672) в средстве просмотра событий. Вскоре после каждого пакета событий входа в систему я вижу пакет событий выхода из системы (код события 4634)
Сотрудник, имеющий почти идентичные настройки (Windows 7, IIS 7), не испытывает проблемы. Наша производственная копия (которая работает на другом сервере) также не имеет проблемы. Мы попытались сравнить наши настройки в IIS, не обнаружив никаких различий.
Я использую хром, но я столкнулся с проблемой в других браузерах.
3 ответа
Вопросу 11 лет, но он до сих пор не решен.
Настоящая проблема заключается в неправильной реализации в Chrome и Firefox. Единственную правильную реализацию можно найти в (уже заброшенном) IE.
IIS — единственный популярный веб-сервер, поддерживающий последние версии IIS, и он всегда используется с последними версиями IIS, если включена дайджест-аутентификация.
Согласно RFC 2617 (и RFC 7616) первая часть хеш-кода () для
Согласно исходному коду Chrome и Firefox, браузеры игнорируют это требование и всегда пересчитывают
Более подробная информация здесь.
Похоже, IIS с Digest Auth используется очень нечасто, и поэтому эта проблема не замечается (и не устраняется) годами.
MS Edge основан на коде Chromium и имеет ту же проблему.
Если это приложение предназначено только для внутреннего использования, я бы рекомендовал использовать встроенную аутентификацию, а не дайджест. Для приложений без встроенной аутентификации веб-формы, таких как ваша, 99% интегрированы (сквозная аутентификация AD) или базовая аутентификация через SSL.
Кроме того, дайджест не всегда работает с AD и зависит от настроек в AD и у каждого пользователя. Такие вещи, как Google, например "digest auth active directory" или "digest reversible encryption", позволяют узнать о проблемах, возникающих у пользователей.
Другие вещи, на которые нужно обратить внимание, - это разрешения NTFS для файлов / папок, а также, если включена анонимность (не должно быть).
Есть ли у вас (кеширующий / не кеширующий) веб-прокси между вашей машиной и сервером? Я видел ту же проблему с аутентификацией Sharepoint, решение, которое мы приняли, было избавиться от ISA Firewall/Proxy с помощью правила, позволяющего клиентам обходить его для сайта Sharepoint. Это решило проблему, но мы не исследовали первопричину.