有没有一种方法可以构造一个 LDAP 搜索字符串来返回具有多个父组的所有组?我在 Google 上搜索了又搜索,也许这无法做到,或者也许我只是没有在寻找正确的东西,但看起来我应该能够做到这一点。
我想解决的问题: 我们有一个批处理应用程序来维护组的组织层次结构。在我们的层次结构中,一个组只能有一个父“org”组。它有任意数量的非组织父组,但不是组织单位组。组织由 CN 标识,该 CN 由 8 个具有非常特定范围的独立数字组成,为了便于讨论,可以说 1000 到 1001,其中 10000000 是“基本”组织单位。一个组织只能是另一个组织的子级,但可以拥有非组织单位的其他父组。
问题在于,有人以其无限的智慧,打破了组织团体应该有一个且只有一个组织父级的基本规则。现在我必须更新批处理程序来处理和纠正它。但是,首先,我需要知道如何找到这些。
我的想法是这样的:
(&(objectClass=group)(count(members) > 2))
其中 count 是一些聚合函数,它返回组可能拥有的成员数量。或者,也许有某种方法可以返回具有多个 memberOf 的所有组?
最佳答案
LDAP 没有聚合函数来确定成员数量。某些 LDAP 实现可能添加了聚合功能,但 AFIK、Microsoft Active Directory 没有。
您可以将 baseDN 移动到更高的位置,以包含所有可能的 OU,其中存在组甚至根。 当您将问题标记为 Microsoft Active Directory 时,您可能需要寻求推荐。
我无法确定 Microsoft Active Directory supports extensible matching for DNs 是否有效这将允许仅在两个或多个容器内进行匹配。如果 Microsoft Active Directory 这样做,则类似于以下的过滤器可能有效:(&(|(ou:dn:=groups)(ou:dn:=groups2))(objectclass=groups))。
-吉姆
关于active-directory - LDAP 查询查找具有多个父级的所有组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21637089/