0

I am trying to run a tomcat JNDIRealm using using Kerberos for authentication (authentication="GSSAPI").

However, I'm getting this:

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))
]]

I have this in 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"/>

any idea what I am missing here?

4

3 回答 3

1

您将需要通过系统属性传递:

  • krb5.conf/ini 的路径
  • login.conf 的路径具有默认的 Sun 名称,其中 Krb5Module 配置了如何获取凭据。
于 2011-06-29T11:45:05.937 回答
1

该错误表明未正确设置 Kerberos。

您需要使用 -D 或System.setProperty(),设置以下 JVM 参数

java.security.krb5.realm : Default realm, like EXAMPLE.COM
java.security.krb5.kdc : KDC hostname, like ad.example.com
于 2009-09-17T04:01:04.040 回答
1

乔雷尔:

除了定义领域/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 服务器。

如果您尝试使用 connectionName DN 作为 bindDN 进行搜索,请检查 LDAP 服务器上的故障——即“无效凭据”(用户/密码不正确)或 ACL 问题。

于 2010-01-04T22:40:03.770 回答