2016-08-30 43 views
0

因此,我们有一个混合系统 - Windows 2012r2 AD,安装了AD CA,一个自签名证书,我可以在636上连接和搜索AD ldp.exe,现在我可以从Linux主机连接并搜索ldaps:636(将完整的.pem文件导入到Linux端的ca trust store中)。从Linux到2012r2 Active Directory的LDAPS Java查询的最低要求是什么

所以,我知道我部分在那里 - 我想。 使用带有java代码的Linux主机,我已经将公钥导入到我的javastore中,并且正在尝试使用该搜索...我每次都得到49和52e。

我的问题是这样的 - 我绝对必须使用完整的.pem来做ldaps搜索吗?或者是否有一套所需的证书和搜索机制来执行此操作?

这里是我的代码:

<jaas:module className="org.apache.karaf.jaas.modules.ldap.LDAPLoginModule" 
      flags="required"> 

    initialContextFactory=com.sun.jndi.ldap.LdapCtxFactory 

    connection.username=uid=ddf 

    connection.password=password! 

    connection.url=ldaps://abc-ad1.house.thatguy.com:636 

    user.base.dn=cn=users,cn=accounts,dc=house,dc=thatguy,dc=com 

    user.filter=(uid=%u) 

    user.search.subtree=true 

    role.base.dn=CN=NPE,CN=Users,dc=house,dc=thatguy,dc=com 

    role.name.attribute=cn 

    role.filter=(member=uid=%u,cn=groups,cn=compat,dc=house,dc=thatguy,dc=com) 

    role.search.subtree=true 

    role.mapping=admin=group,admin,manager,viewer,webconsole 

    authentication=simple 

    ssl.protocol=SSL 

    ssl.truststore=truststore 

    ssl.algorithm=PKIX 

</jaas:module> 

我思念到底有什么?

回答

0

所以。 我的问题是在我的脚本。 执行ldaps查找需要公钥,但该脚本需要Active Directory的特定ldaps功能。

我有UID - 它必须是CN。 因此,LDAP搜索是CN = username,CN = ou,dc = blah,dc = blah,dc = blah。 ldaps搜索是cn = svcldaps,cn = users,dc = house,dc = thatguy,dc = com。

我将user.filter =(uid =%u)更改为user.filter =(cn =%u)并更正了role.filter =(member = uid =%u,cn = users,dc = house ,dc = thatguy,dc = com)to role.filter =(member = cn =%u,cn = users,dc = house,dc = thatguy,dc = com)

只要我改变该脚本,它能够正确登录。

为自己关闭这个问题是非常甜蜜的。现在我的头骨会恢复正常,我可以在墙上填充凹痕。和桌子。并更换键盘和显示器。

相关问题