如果用户属于特定的Active Directory组,我想允许我的用户登录。我没有用户的CN或DN - 只是他们的证书。是否可以仅使用此证书来获取Active Directory用户?
我知道我可以使用“userCertificate”属性为用户的证书执行ldap查询。但是,我想使用此属性查询用户。有点像:
(&(objectClass=user)(userCertificate=<user's certificate>))
这似乎不起作用。
另一种方法可能是获取我正在寻找的组,然后获取并循环遍历该组的所有成员。我必须将提供的证书与每个AD用户的证书进行比较。这种方法不太理想,因为对于拥有大量用户的群组或拥有大量证书的用户来说,这种方法效率不高。
任何建议都将不胜感激。
答案 0 :(得分:0)
我发现这是可能的,但速度很慢。这是语法:
(&(objectClass=user)(userCertificate;binary=\12\34\56\AB\CD\..))
证书需要以十六进制格式化,必须进行转义。
参考:http://comments.gmane.org/gmane.network.openldap.general/46598