Встроенная проверка подлинности Windows не работает только в IE
На моем сайте есть одна папка, которая не позволяет анонимный доступ. Он настроен на использование встроенной проверки подлинности Windows, как и в домене AD. Логин отлично работает в Firefox, Chrome, даже в Safari, но не в IE8. Кто-нибудь сталкивался с этим раньше? Кажется, я не могу найти никого другого с подобной проблемой, за исключением случая, когда вход в систему не удается во всех браузерах, конечно.
5 ответов
Скорее всего, это из-за сломанного SPN где-то.
Я подозреваю, что не-Microsoft браузеры не делают Kerberos (или, по крайней мере, не делают это так же, как IE).
Это означает, что IE может пытаться войти в систему Kerberos, где другие могут использовать NTLM.
Если SPN существует для http/www.example.com или host/www.example.com, и он не принадлежит учетной записи, которая запускает пул приложений, это было бы хорошей причиной для такого типа перерыва.
В Windows 2008 или более поздней версии: SETSPN -X
проверим наличие дубликатов; SETSPN -Q http/www.example.com
будет искать владельцев этого конкретного SPN.
Устраните проблему с SPN, и вы, вероятно, исправите входы в IE, которые будут повреждены.
В другом руководстве может быть сказано отключить встроенную проверку подлинности Windows в свойствах IE Advanced; это глупый ход, который ломает Kerberos для всего и скрывает проблему.
Больше здесь.
Это было упомянуто мимоходом в одном из комментариев, но я хотел назвать это конкретно на случай, если кто-то еще посчитает это полезным. У меня была такая же проблема, и я смог решить ее, изменив удостоверение пула приложений. Это находится в разделе "Дополнительные настройки" для данного пула приложений.
Кто-то установил это значение на "App Pool Identity", но мне пришлось установить его обратно на "NetworkService", чтобы решить эту проблему.
(Я попытался опубликовать изображение, но мне нужно больше репутации. Если кто-то проголосует против этого ответа, я могу добавить изображение.)
Неверный ответ SPN представляется правильным. Это означает, что вам может потребоваться указать на проблему в своем отделе ИТ / ИС, если вы хотите правильно настроить Kerberos.
Я не рекомендую решение "отключить встроенную проверку подлинности Windows", потому что для этого требуется, чтобы обычные пользователи заходили и щелкали по тому, что у них может даже не быть разрешения на изменение, в зависимости от того, как администраторы настроили IE.
В случае, если установка Kerberos не будет исправлена в ближайшее время, более гибким решением будет перейти к приложению в IIS, щелкнуть Аутентификация, выделить строку аутентификации Windows (которая должна быть помечена как включенная, а все остальное отключено) и затем нажмите ссылку "Поставщики..." справа. Скорее всего, будет две записи, "Переговоры" и "NTLM", с "Переговоры сверху". Переместить NTLM наверх. Хотя это заставляет ваш сайт использовать NTLM, что представляет угрозу безопасности, но это единственный вариант, если Kerberos недоступен.
Вы заходите на сайт по полному доменному имени? Например, сайт интрасети может быть доступен через "интрасеть", но IE8 не будет думать, что он находится в вашем домене AD, поскольку его "доменная часть" не совпадает. Вам придется использовать "intranet.example.com", где ваш домен AD - "example.com".
Chrome один раз запросил мой пароль и успешно.
IE запросил 3x для моего пароля, и я получил 401 Unauthorized.
Моя проблема закончилась тем, что и IE, и Chrome запросили у меня учетные данные для двух разных серверов. Причиной запроса учетных данных, вероятно, является изменение пароля на прошлой неделе.
Chrome запросил у меня учетную запись домена. MyDomain \ MyUserId
Но IE запросил у меня ThisServerUrl.com \ MyUserId (который, конечно, не удался, потому что этот пользователь не существует на сервере, но еще хуже - URL не имеет ничего общего с именем сервера - M$ что вы думаете???)
Надеюсь, это поможет следующему бедному соку с той же проблемой.