Я пытаюсь реализовать Kerberos SSO в нашей сети, используя spnego на сервере tomcat.
Мы создали учетную запись (TCNKRBGINA) в домене для предварительной аутентификации и установили ее на http-сервер:
Setspn -A HTTPS/testtech.etat-ge.ch TCNKRBGINA
Setspn -A HTTP/testtech.etat-ge.ch TCNKRBGINA
Но клиент (IE или Firefox) отправляет токен NTLM вместо билета Kerberos.
Проблема, похоже, не на стороне сервера, потому что, когда заголовок авторизации не отправляется, он правильно возвращает код состояния 401 с WWW-Authenticate: Negotiate
заголовок. Следующий запрос, отправленный клиентом, содержит токен NTLM до того, как сервер успел связаться с контроллером домена.
Понял, спасибо wirehark. Имя сервера testtech.etat-ge.ch было определено в DNS как псевдоним для bleutest.ceti.etat-ge.ch. Кажется, что имя, используемое kerberos, получено путем обратного поиска.