是否可以仅为用户的证书查询Active Directory?

时间:2013-10-30 15:32:33

标签: java active-directory ldap

如果用户属于特定的Active Directory组,我想允许我的用户登录。我没有用户的CN或DN - 只是他们的证书。是否可以仅使用此证书来获取Active Directory用户?

我知道我可以使用“userCertificate”属性为用户的证书执行ldap查询。但是,我想使用此属性查询用户。有点像:

    (&(objectClass=user)(userCertificate=<user's certificate>))

这似乎不起作用。

另一种方法可能是获取我正在寻找的组,然后获取并循环遍历该组的所有成员。我必须将提供的证书与每个AD用户的证书进行比较。这种方法不太理想,因为对于拥有大量用户的群组或拥有大量证书的用户来说,这种方法效率不高。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我发现这是可能的,但速度很慢。这是语法:

(&(objectClass=user)(userCertificate;binary=\12\34\56\AB\CD\..))

证书需要以十六进制格式化,必须进行转义。

参考:http://comments.gmane.org/gmane.network.openldap.general/46598