首页 > 解决方案 > LDAP:在一个查询中从多个 OU 中检索条目

问题描述

尝试从 LDAP 的多个 OU 中检索 objectClass 'groupOfNames' 的条目。我的方案如下所示:

ou=gp,ou=gruppen,dc=some,dc=my-company,dc=at
|
|-ou=99 (objectClass=organizaionalUnit)
   |-cn=admins (objectClass=groupOfNames)
   |-cn=managers (objectClass=groupOfNames)
|-ou=103 (objectClass=organizaionalUnit)
   |-cn=admins (objectClass=groupOfNames)
   |-cn=managers (objectClass=groupOfNames)
|-many more OUs
...

现在我尝试创建一个查询,通过它我可以通过一个查询检索不同 OU 的管理员/经理。在 CN 中,admins 和 manager 组包含属于这些组的用户的名称。我想出的一个过滤器是:

(cn=admins)

这导致我返回所有 OU 的所有 CN:

在此处输入图像描述

搜索范围设置为完整子树。如何更改此过滤器以仅从特定 OU 获取条目,例如 ou=212917 和 ou=211208,但不从其他 OU 获取?我最终要提取的组如下所示:

exampleOfGroupOfNames

还是有另一种可能性来实现这一点?我对 LDAP 相当陌生。

标签: ldapunboundid-ldap-sdk

解决方案


可以使用非常特定的过滤器来仅搜索具有cn=admins特定OUs.

(&(cn=admins)(|(ou:dn:=212917)(ou:dn:=211208)))

该符号表示ou=212917在 DN 的条目或部分中搜索。但并非所有服务器都支持这一点,即使它是 LDAPv3 标准规范的一部分。


推荐阅读