【问题标题】:Is it possible to LDAP query users common to a set of groups是否可以通过 LDAP 查询一组组共有的用户
【发布时间】:2009-05-27 06:16:18
【问题描述】:

我需要使用我们的 Active Directory 的单个 LDAP 查询来列出已知组集合的所有通用用户。从我们目前的阅读来看,这似乎是不可能的,但我认为最好问问蜂巢思维。

【问题讨论】:

    标签: active-directory ldap


    【解决方案1】:

    试试这个:

    (&(objectCategory=Person)
        (&
            (memberOf=CN=group1,dc=company,dc=local)
            (memberOf=CN=group2,dc=company,dc=local)
            (memberOf=CN=group3,dc=company,dc=local)
        )
    )
    

    这类似于my question,除了我想要所有不是组成员的用户。您需要删除所有空格才能使大多数查询工具正常工作。

    【讨论】:

      【解决方案2】:

      是的,可以使用属性范围查询。它需要 W2K3 AD 或更高版本,但会为您提供具有特定属性的所有用户,即某个组的成员资格,或者在您的情况下为多个组(组的交集)。最好的例子之一是来自 Joe Kaplan 和 Ryan Dunns 的书“目录服务编程的 .NET 开发人员指南”,对于 AD 工作来说,很难击败第 179 页,以便深入了解。

      警告:此时,您已经完成了 AD 中的琐碎搜索,并且许多事情变得越来越重要,例如搜索根、范围和搜索一些潜在的巨大数据集的效果你想要的项目。查看 50 或 60K 用户以查找组的成员确实会对性能产生影响,并准备在数据集很大的情况下执行分页结果或类似结果。 Kaplan/Ryan 在脚踏实地的工作方面做得非常出色,可以将您带到您需要的地方。也就是说,我已经在两个广告项目中使用了它们,并取得了巨大的成功。无需递归查询就能从 AD 中检索数据是非常值得的,我发现只要我控制数据集的大小,它就很快。

      【讨论】:

        【解决方案3】:

        如果您的组包含嵌套组,则不可能在单个查询中进行。

        您需要编写一些代码来递归解析组成员,并对结果执行“内部联接”的逻辑等效,从而生成所有原始组共有的用户列表。

        【讨论】:

          猜你喜欢
          • 2014-04-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多