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

Невозможно пройти аутентификацию с помощью Kerberos, если и клиент, и сервер находятся на одном компьютере

У меня есть веб-приложение Tomcat, которое поддерживает аутентификацию Kerberos. Он работает нормально, и я могу войти в это приложение, если я использую встроенную учетную запись, такую ​​как LOCAL SYSTEM или NETWORK SERVICE, но у меня возникают проблемы с настройкой учетной записи домена не по умолчанию для службы Tomcat.

Я зарегистрировал необходимые SPN:

C:\Users\Administrator>setspn -l tomcatuser1
Registered ServicePrincipalNames for CN=tomcatuser1,CN=Users,DC=blah,DC=com:
        HTTP/Unicorn.blah.com
        HTTP/Unicorn

После этого я смог войти в систему с других машин в домене, но не с машины, на которой запущена служба Tomcat. Однако у меня нет проблем, если я использую IP-адреса. Я также проверил, что не сталкиваюсь с проблема с обратной связью но вроде ни на что не влияет.

В результате, когда я запрашиваю веб-страницу с использованием имени хоста, я получаю ответ 401. Из журналов я вижу, что переговоры происходят в несколько этапов, и последний шаг - сервер сообщает, что предоставленный мной токен авторизации недействителен. Фактическое сообщение об ошибке - «Указанный дескриптор недействителен», соответствующая ошибке окна SEC_E_INVALID_HANDLE.

Может ли это быть связано с настройкой Kerberos или это проблема сети?

Может ли это быть связано с настройкой Kerberos или это проблема сети?

Настройка Kerberos тесно связана с настройкой сети, поэтому нелегко обвинить виновника и простить другого.

Когда это действительно не проблема с обратной связью, это все равно может быть проблема IPv4 или IPv6:

Если все клиенты используют DNS для обратного разрешения (o A или записи AAAA), но сервер имеет разные записи имени хоста для своих адресов IPv4 и IPv6 в локальном файле «hosts» для себя и / или для соответствующих KDC, которые могут вызвать согласование сбои из-за несоответствия принципов.

Поэтому мой совет - сравнить обратное разрешение имен сервера и одного клиента.