所以,我们有一个混合系统 - 安装了AD CA的Windows 2012r2 AD,一个自签名证书,我可以从ldp.exe连接并搜索636上的AD,现在我可以连接并搜索ldaps:636 Linux主机(在Linux端将完整的.pem文件导入我的ca信任存储区)。
所以,我知道我部分在那里 - 我想。 使用带有java代码的Linux主机,我已将公钥导出到我的javastore中,并尝试使用该搜索...我每次都得到49和52e ....
我的问题是 - 我是否必须使用完整的.pem进行ldaps搜索?或者是否有一小组必要的Certs和搜索机制来执行此操作?
这是我的代码:
<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 :(得分: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)
一旦我对脚本进行了更改,它就能够正确登录。
为自己解决这个问题非常甜蜜。现在我的头骨会恢复正常,我可以把那个凹痕填满墙上。和表。并更换键盘和显示器。