从Linux到2012r2 Active Directory的LDAPS Java查询的最低要求是什么

时间:2016-08-30 14:58:58

标签: java linux ssl

所以,我们有一个混合系统 - 安装了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>

我错过了什么?

1 个答案:

答案 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)

一旦我对脚本进行了更改,它就能够正确登录。

为自己解决这个问题非常甜蜜。现在我的头骨会恢复正常,我可以把那个凹痕填满墙上。和表。并更换键盘和显示器。