active-directory - LDAP 查询查找具有多个父级的所有组

标签 active-directory ldap active-directory-group

有没有一种方法可以构造一个 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/

相关文章:

azure - 使用 adal4j 从 Azure 获取用户名和组信息

c# - 由于密码复杂性,更改 Active Directory 密码总是失败

authentication - 通过LDAP登录Jenkins失败

超出 PHP ldap_search 大小限制

active-directory - 服务器不愿意处理请求 - Active Directory - 通过 C# 添加用户

regex - powershell - 匹配字符串,如果它具有某个字符之一。即姓氏_名字与姓氏_名字_中间名不匹配

mysql - 使用 LDAP/AD 登录身份验证时,如果使用 AD 记录不存在用户行,如何创建用户行

c# - 在 C# 中验证远程 Active Directory 的用户

c# - 我如何在用户的广告中进行递归搜索,无论这是在组还是子组中?

azure - 由于现有应用程序,无法删除 Azure Active-Directory