У меня есть веб-приложение 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, которые могут вызвать согласование сбои из-за несоответствия принципов.
Поэтому мой совет - сравнить обратное разрешение имен сервера и одного клиента.