SPNEGO Kerberos Single Sign On не работает в домене AD для сервера tomcat

Я выполнил все шаги, указанные в http://spnego.sourceforge.net/spnego_tomcat.html. (Пример тестового кода SPNEGO HelloKDC.java работает должным образом), но система единого входа не работает.

Наше доменное имя — ITLAB (домен Active Directory), у него есть две машины «Win8Serv» и «Win8Client».

Tomcat7 работает на машине Win8Serv с учетными данными KerbServUser@ITLAB. Теперь я вошел в «Win8Client» с учетными данными «KerbServUser@ITLAB». Я ввел "http://Win8Serv.itlab.com:8181/hello_spnego.jsp" в браузере IE (параметры SSO включены для IE, включена встроенная проверка подлинности Windows) запрашивает окно входа в систему (он не должен запрашивать учетные данные).

Отлажен код SPNEGO, используется базовая авторизация.

в SpnegoAuthenticator.java

final SpnegoAuthScheme scheme = SpnegoProvider.negotiate(req, resp, basicSupported, this.promptIfNtlm, serverRealm);

if (scheme.isNegotiateScheme()) {
    principal = doSpnegoAuth(scheme, resp);

// BASIC scheme
} else if (scheme.isBasicScheme()) { // it is entering Basic Scheme
   principal = doBasicAuth(scheme, resp);
}

У вас есть предложения по устранению этой проблемы?

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.


person siva    schedule 04.08.2016    source источник
comment
Вы зарегистрировали SPN для сервера?   -  person Karthikeyan Vaithilingam    schedule 07.08.2016


Ответы (1)


Вам необходимо зарегистрировать SPN HTTP/win8serv.itlab.com в учетной записи пользователя AD [email protected]. Клиентские машины должны найти полное доменное имя в DNS, которое будет вашим сервером Tomcat, а затем найти точку обслуживания HTTP в KDC (работает на вашем контроллере домена AD), чтобы получить билет службы Kerberos для службы HTTP, запущенной Tomcat. Когда полное доменное имя в имени участника-службы совпадает с полным доменным именем в DNS, ваш клиентский компьютер точно знает, куда ему нужно идти, что и было целью Кертикеяна.

В вашем веб-браузере должен быть сайт http://win8serv.itlab.com, указанный в его зоне "Местная интрасеть", поскольку Windows будет передавать учетную информацию (в данном случае билет службы Kerberos) на веб-серверы, которые запрашивают ее (что должен сделать Tomcat) для аутентификации.

person T-Heron    schedule 23.10.2016