Назад | Перейти на главную страницу

Встроенная проверка подлинности Windows не работает только в IE

На моем сайте есть одна папка, не разрешающая анонимный доступ. Он настроен на использование встроенной проверки подлинности Windows, как и в домене AD. Логин отлично работает в Firefox, Chrome, даже Safari, но не в IE8. Кто-нибудь сталкивался с этим раньше? Кажется, я не могу найти кого-нибудь еще с подобной проблемой, за исключением случаев, когда вход в систему не выполняется во всех браузерах, конечно.

Скорее всего, это произошло из-за сломанного SPN.

Я подозреваю, что браузеры сторонних производителей не поддерживают 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; это тупой ход, который полностью ломает Kerberos и скрывает проблему.

Больше Вот.

Об этом было упомянуто вскользь в одном из комментариев, но я хотел выделить это специально на тот случай, если кто-то еще сочтет это полезным. У меня была такая же проблема, и я смог решить ее, изменив идентификатор пула приложений. Это находится в разделе «Дополнительные настройки» для данного пула приложений.

Кто-то установил это значение в «AppPoolIdentity», но мне пришлось вернуть его в «NetworkService», чтобы устранить проблему.

(Я пытался опубликовать изображение, но, очевидно, мне нужно больше репутации. Если кто-то проголосует за этот ответ, я могу добавить изображение.)

Неработающий ответ SPN кажется правильным. Это означает, что вам может потребоваться указать на проблему вашему ИТ-отделу, если вы хотите правильно настроить Kerberos.

Я не рекомендую решение «отключить интегрированную проверку подлинности Windows», поскольку оно требует, чтобы обычные пользователи зашли и щелкнули что-то, что у них может даже не быть разрешения на изменение в зависимости от того, как администраторы настроили IE.

В случае, если настройка Kerberos не будет исправлена ​​в ближайшее время, более гибким решением будет перейти к приложению в IIS, щелкнуть Authentication, выделить строку Windows Authentication (которая должна быть помечена как включенная, а все остальное отключено) и затем щелкните ссылку «Поставщики ...» справа. Скорее всего, будет две записи: «Согласовать» и «NTLM», а наверху - «Согласовать». Переместите NTLM наверх. Хотя это заставляет ваш сайт использовать NTLM, что представляет угрозу безопасности, но это единственный вариант, если Kerberos недоступен.

Вы заходите на сайт с полного доменного имени? Например, сайт интрасети может быть доступен через «интрасеть», но IE8 не будет думать, что он находится в вашем домене AD, потому что его «часть домена» не совпадает. Вам нужно будет использовать "intranet.example.com", где ваш домен AD - "example.com".

Chrome один раз запросил мой пароль и преуспел.

IE запрашивал мой пароль 3 раза, и я получаю сообщение 401 Unauthorized.

Моя проблема заключалась в том, что и IE, и Chrome запрашивали у меня учетные данные для двух разных серверов. Причина запроса учетных данных, вероятно, связана с изменением пароля на прошлой неделе.

Хром подсказал мне мою учетную запись домена. MyDomain\ MyUserId

Но IE подсказал мне ThisServerUrl.com\ MyUserId (что, конечно, не удалось, потому что этот пользователь не существует на сервере, но что еще хуже - URL-адрес не имеет ничего общего с именем сервера - M $, что вы думаете ???)

Надеюсь, это поможет следующему бедолаге с той же проблемой.