Ldap查询仅在父条件为真时返回子树

时间:2016-10-25 01:32:43

标签: ldap-query

我正在尝试编写一个返回子树结果的搜索过滤器,只有当父树满足某些条件时......是否可能?

我有以下结构:

ou=ftp
   domainName=example.com
       ou=users
          uid=firstUser
          uid=secondUser
   domainName=otherdomain.com
       ou=users
          uid=othertUser
          uid=otherdUser

在domainName = example.com中,我有一个属于“活动”或“非活动”的属性accountStatus。

我想仅在accountStatus为“有效”时才返回用户。

我尝试按如下方式进行复合滤镜:

(&(&(objectclass=mailDomain)(accountStatus=active))(&(uid=*)(objectclass=posixAccount)))

objectclass = mailDomain和accountStatus = active属于父树。 查询不返回任何结果,因为它搜索同一级别的所有属性。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

虽然您可以将搜索空间配置为子树,列表甚至单个条目,但搜索过滤器始终应用于结果集的每个条目。这通常会影响目录信息树的设计以及架构。

远离"正常化"并在用户条目而不是某些父节点上使属性可用。您可以通过这种方式大大提高目录的总体价值,从而允许简单的LDAP客户端利用目录中的信息。