ASP.net Kerberos спадает на NTLM время от времени - PullRequest
2 голосов
/ 21 октября 2009

Фон (только соответствующие штуки): У нас есть большое интранет-приложение asp.net 2.0 / 3.5.
Веб-серверы - это Windows Server 2003 в домене AD.
Клиенты на Windows, IE 6-8. Аутентификация Windows с пользовательским принципалом, созданным из удостоверения Windows. Веб-серверы находятся за F5 NLB, который перенаправляет пользователя на определенный веб-сервер. (Причиной этого является ограничение, связанное с F5 нашей компании с Kerberos). В системе нет проблем, таких как удаление сеансов, тайм-ауты или перегруженные серверы, в целом все работает нормально.

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

SPN, ACL и т. Д., Похоже, настроены правильно.

99.x процентов времени, все это работает. Проблема, которую мы видим, заключается в том, что время от времени при обновлении токен падает с kerberos до ntlm. Я вижу логин в журнале событий веб-сервера, показывающий, что один звонок получил это:

Процесс входа в систему: Kerberos Пакет аутентификации: Kerberos

И последующий вызов (обычно после загрузки 10 или 20 страниц), получающий:

Процесс входа в систему: NtLmSsp Пакет аутентификации: NTLM

У кого-нибудь есть понимание того, что может привести к тому, что последующий постбэк иногда переходит в NTLM?

Спасибо!

1 Ответ

2 голосов
/ 21 октября 2009

Все инструменты и методы, необходимые для выявления проблемы, находятся в Устранение ошибок Kerberos . Этот документ никогда не подводил меня.

NTLM Fallback
Вы можете обнаружить, что журнал безопасности записал событие в какой вход произошел при использовании NTLM, когда это должно было произойти с использованием Kerberos аутентификация.

Задача
Есть два ситуации, в которых это может произойти:
- Первая ситуация, когда система пытается аутентификацию с использованием протокол Kerberos, но он не работает. Как В результате система пытается аутентифицироваться с использованием NTLM. Windows Server 2003, Windows XP и Windows 2000 использовать алгоритм под названием Negotiate (SPNEGO) договориться о том, какие протокол аутентификации используется. Хотя протокол Kerberos является по умолчанию, если по умолчанию не удается, Переговоры попробую NTLM.
- Второй ситуация, в которой призыв к Переговоры возвращает NTLM как единственный протокол доступен.

Подтверждение
Первая ситуация приведет к Сбой аутентификации Kerberos, который вы можете исследовать, изучив ошибки в журнале событий или данных пакеты, захваченные сетевым монитором. Оба метода расследования обсуждается позже в этом документе ...

...