java - 是否可以仅使用用户的证书来查询 Active Directory 中的用户?

标签 java active-directory ldap

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

我知道我可以使用“userCertificate”属性对用户证书执行 LDAP 查询。但是,我想使用此属性查询用户。大致如下:

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

这似乎不起作用。

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

如有任何建议,我们将不胜感激。

最佳答案

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

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

证书需要采用十六进制格式,并且必须进行转义。

引用:http://comments.gmane.org/gmane.network.openldap.general/46598

关于java - 是否可以仅使用用户的证书来查询 Active Directory 中的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19687137/

相关文章:

azure - "Add-AzureAccount"出现错误 : Returned by service does not match user 'XXX' in the request

c# - 事件目录属性

active-directory - Active Directory 中的 LDAP 过滤器字符串长度限制是多少?

java - 我如何从列中获取值(value)? ( java )

java - 在modelio中生成java代码

java - LDAP 上的登录用户获取所有详细信息

json - PowerShell:如何将哈希表输出为 json 并使用 foreach 循环将其存储在变量中?

Python LDAP 搜索

java - Torrent 跟踪器对每个请求都使用相同的对等 ID 进行回复?

java - 通过 Apache Axis 调用安全 URL 时出现无效许可证异常