Я пытаюсь настроить SSO для Windows Active Directory для Tomcat (6), используя SPNEGO filter.Tomcat 6 с SPNEGO SSO по-прежнему запрашивает логин и пароль
У меня настройка, как в примере, но я все еще предлагаю ввести логин и пароль при попытке получить доступ к hello_spnego.jsp.
я, вероятно, что-то отсутствует, так вот мой конф:
web.xml (в отношении SPNEGO):
<filter>
<filter-name>SpnegoHttpFilter</filter-name>
<filter-class>net.sourceforge.spnego.SpnegoHttpFilter</filter-class>
<init-param>
<param-name>spnego.allow.basic</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>spnego.allow.localhost</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>spnego.allow.unsecure.basic</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>spnego.login.client.module</param-name>
<param-value>spnego-client</param-value>
</init-param>
<init-param>
<param-name>spnego.login.server.module</param-name>
<param-value>spnego-server</param-value>
</init-param>
<init-param>
<param-name>spnego.krb5.conf</param-name>
<param-value>${catalina.home}\conf\krb5.conf</param-value>
</init-param>
<init-param>
<param-name>spnego.login.conf</param-name>
<param-value>${catalina.home}\conf\login.conf</param-value>
</init-param>
<init-param>
<param-name>spnego.preauth.username</param-name>
<param-value>aqw</param-value>
</init-param>
<init-param>
<param-name>spnego.preauth.password</param-name>
<param-value>pass</param-value>
</init-param>
<init-param>
<param-name>spnego.prompt.ntlm</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>spnego.logger.level</param-name>
<param-value>1</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SpnegoHttpFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
krb5.conf:
[libdefaults]
default_realm = TEST.LOCAL
default_tkt_enctypes = rc4-hmac,aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96
default_tgs_enctypes = rc4-hmac,aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96
forwardable=true
[realms]
TEST.LOCAL = {
kdc = SERVER_WITH_AD:88
default_realm = TEST.LOCAL
}
[domain_realm]
dev.local = TEST.LOCAL
.dev.local = TEST.LOCAL
login.conf:
spnego-client {
com.sun.security.auth.module.Krb5LoginModule required;
};
spnego-server {
com.sun.security.auth.module.Krb5LoginModule required
storeKey=true
isInitiator=false
useKeyTab=true
keyTab="C:\Osys\QuartisTools\Tomcat\conf\aqw.keytab"
;
};
EDIT: He ре, что я сделал:
- Я создал пользователя (AQW) на моем сервере, SERVER_WITH_AD
Я установил его SPN с помощью следующей команды:
Setspn -A HTTP/SERVER_WITH_AD.Test.local AQW
Я создал Keytab файл для него с помощью следующей команды:
Ktpass/из C: \ aqw.keytab/mapuser [email protected]/Princ HTTP/[email protected]/PASS */KVNO 0
Я передал файл keytab в Tomcat/conf.
- Я добавил login.conf и krb5.conf в Tomcat/conf.
- Я отредактировал учетную запись моего пользователя (в пользовательском интерфейсе AD), чтобы принять шифрование AES 128 бит.
- Я добавил JCE jars в свой jdk1.7.0_51/jre/lib/security от this page после поиска информации с другого вопроса на SO.
Дополнительная информация:
- SERVER_WITH_AD запускает Server 2012 (x64) Windows.
- TOMCAT_SERVER запускает Windows 7 Ultimate (x64).
EDIT 2: Как я уже сказал, я добавил адрес в список доверенных сайтов.
В какой-то момент я перестал видеть имя пользователя/приглашение входа в систему, но сейчас я получаю сообщение об ошибке в Tomcat (показывая как ошибка HTTP 500):
KrbException: недопустимый аргумент (400) - Не удается найти ключ соответствующих тип для расшифровки AP REP - AES256 Режим CTS с HMAC SHA1-96
Так что, вероятно, он не может найти мой keytab.
Internet Explorer выдает запрос о том, что ваша установка не работает. –
Да, я понимаю, что, следовательно, вопрос. но сломанный как? Поскольку я использую Tomcat и SPNEGO из коробки, это как-то связано с моим conf. Я отредактирую вопрос, чтобы добавить информацию. – Pascal
Имя хоста указано в разделе «Настройки/Безопасность/Надежный список хостов»? У каждого браузера есть собственные настройки для этого, без этого IE отправляет токен HTTP-заголовка NTLM вместо билета Kerberos. https://ping.force.com/Support/PingIdentityArticle?id=kA3400000008RiECAU – Whome