Как получить JNDIRealm в Tomcat для использования аутентификации Kerberos? - PullRequest
0 голосов
/ 14 сентября 2009

Я пытаюсь запустить tomcat JNDIRealm, используя Kerberos для аутентификации (authentication = "GSSAPI").

Однако я получаю это:

SEVERE: Catalina.start:
LifecycleException:  Exception opening directory server connection:  
javax.naming.AuthenticationException: GSSAPI 
[Root exception is javax.security.sasl.SaslException: GSS initiate failed 
 [Caused by GSSException: No valid credentials provided 
 (Mechanism level: Attempt to obtain new INITIATE credentials failed! (null))
]]

У меня есть это в server.xml:

 <Realm className="org.apache.catalina.realm.JNDIRealm"
                        authentication="GSSAPI"
                        connectionName="CN=XXX User,OU=XXXGenericAccounts,\
                                                   DC=xxx,DC=com"
                        connectionPassword="blah"
                        connectionURL="ldap://blah.xxx.com:389"
                        alternateURL="ldap://blah.xxx.com:389"
                        roleBase="OU=XXXGroups,DC=xxx,DC=com"
                        roleName="cn"
                        roleSearch="member={0}"
                        roleSubtree="true"
                        userBase="OU=XXXUsers,DC=xxx,DC=com"
                        userSearch="sAMAccountName={0}"
                        userSubtree="true"/>

Есть идеи, что мне здесь не хватает?

Ответы [ 3 ]

1 голос
/ 05 января 2010

jorel:

В дополнение к первоначальной проблеме определения области / KDC, полученное исключение NamingException описано в сообщении об ошибке: ваш сервер LDAP "blah.xxx.com" не разрешает анонимные привязки Tomcat пытается запустить поиск без привязки.

Если вы хотите, чтобы поиск LDAP осуществлялся с использованием учетных данных пользователя, проблема заключается в том, что он не передает учетные данные по LDAP. Я еще не знаком с тем, как это работает внутри Java, но есть несколько возможных причин:

  1. Tomcat не запрашивает билет, который можно переадресовать / делегировать.
  2. Клиент не предоставляет такой билет. Увидеть: http://publib.boulder.ibm.com/infocenter/ltscnnct/v2r0/index.jsp?topic=/com.ibm.connections.25.help/t_install_kerb_edit_browsers.html для соответствующей конфигурации браузера.
  3. Tomcat не пытается выполнить привязку SASL к серверу LDAP, используя правильно запрошенный / заданный билет.

Если вы пытаетесь выполнить поиск, используя DN-имя-подключения в качестве bindDN, проверьте наличие ошибок на сервере LDAP, т.е. «Недействительные учетные данные» (неверный пользователь / пароль) или проблемы с ACL.

1 голос
/ 29 июня 2011

Вам нужно будет пройти через системные свойства:

  • путь к krb5.conf / ini
  • путь к login.conf с именем Sun по умолчанию, в котором Krb5Module настроил способ получения учетных данных
1 голос
/ 17 сентября 2009

Ошибка указывает, что Kerberos настроен неправильно.

Вам необходимо установить следующие параметры JVM, используя -D или System.setProperty(),

java.security.krb5.realm : Default realm, like EXAMPLE.COM
java.security.krb5.kdc : KDC hostname, like ad.example.com
...