Active directory 链中的LDAP匹配规则能否返回';子树搜索结果';具有属性(特别是“memberOf”)?

Active directory 链中的LDAP匹配规则能否返回';子树搜索结果';具有属性(特别是“memberOf”)?,active-directory,activedirectorymembership,active-directory-group,Active Directory,Activedirectorymembership,Active Directory Group,我有一个带有嵌套组的ActiveDirectory(AD)测试实例:Employees(Parent)和两个子组:Executive和Engineers Tree: Employees | -Executives | | | -Mister Executive | -Engineers | -Joe Engineer 我看到广告扩展LDAP_匹配_链中的_规则_将搜索子树;我可以使用此查询搜索所有员工用户: query: ( &

我有一个带有嵌套组的ActiveDirectory(AD)测试实例:Employees(Parent)和两个子组:Executive和Engineers

Tree:
  Employees
  |
  -Executives
  |   |
  |   -Mister Executive
  |
  -Engineers
      |
      -Joe Engineer
我看到广告扩展LDAP_匹配_链中的_规则_将搜索子树;我可以使用此查询搜索所有员工用户:

query:
( & (objectClass=person)   (memberOf:1.2.840.113556.1.4.1941:=CN=Employees,CN=Users,DC=cloud,DC=com))
问题:递归搜索,但没有递归结果

但是,我无法找到获取“子树搜索结果”的方法,即当查询返回“Mister Executive”作为“Employee”时,“memberOf”属性仅列出“Executive”,即他直接所属的组。我检查了所有其他属性,没有看到任何“员工”

重述

最后澄清一下:AD是否允许以任何方式检索“subtree memberOf”结果以及搜索链中的“subtree”LDAP匹配规则(“memberOf:1.2.840.113556.1.4.1941:=”)搜索


提前感谢,

我编辑了这篇文章,因为列表没有必要

将过滤器更改为:

(&(objectClass=user)(memberof:1.2.840.113556.1.4.1941:=CN=Employees,CN=Users,DC=cloud,DC=com))

我认为您正在混淆组和节点

目录树

目录是一棵树,其中每个对象都是一个节点。Active Directory有点特殊,因为只有少数对象(如
组织单元
(OU)、
容器
)可以是包含用户对象的节点

因此,目录搜索包括:

  • 搜索开始的节点,该节点由区分名称(DN)标识
  • 你想被带回来的装束
  • 搜索深度(基础、一级、子树)
  • 过滤器
  • 目录中的每个对象都包含具有名称和语法的属性。对于某些属性,如
    member
    memberOf
    manager
    managedBy
    ,Microsoft提供了一种称为
    uniqueName
    的特殊语法。此语法用于可分辨名称,但目录为这些属性提供了一种关系完整性。这意味着,例如,如果在目录中移动对象,则此属性中的DN将保留其值。如果移动用户,将自动调整其所属组中的
    成员
    属性

    现在
    LDAP\u匹配\u链中的\u规则

    当用户X是组a的成员时。用户X DN位于组a的成员属性中,组a DN位于用户X的成员属性中。如果组a是组B的成员,用户X属于组B,但B组DN不在用户X的memberOf属性中。在这里,您可以使用\u链中的
    LDAP\u匹配\u规则\u
    查找属于组的递归。这是一个特殊的扩展匹配操作符,它沿着对象中的祖先链一直走到根,直到找到匹配

    这种查询的Microsoft示例旨在检查用户“user1”是否是组“group1”的成员。您可以将base设置为用户DN(cn=user1,cn=users,dc=x),将scope设置为base,并使用以下查询

    (memberOf:1.2.840.113556.1.4.1941:=cn=Group1,OU=groupsOU,DC=x)
    
    类似地,要查找“user1”是其成员的所有组,请将base设置为groups容器DN;例如(OU=groupsOU,dc=x)和作用域到子树,并使用以下筛选器

    (member:1.2.840.113556.1.4.1941:=cn=user1,cn=users,DC=x)
    

    因此,链中的LDAP匹配规则与目录树节点无关。

    如果您试图解决的问题是:

    我有一个用户DN,我想找到他/她所属的所有组

    您要使用的是computed属性,该属性包含考虑继承的所有用户计算组的SID。这就是目录服务集成工具为实现最大可靠性所做的工作

    (根据您的需要,另请参见tokenGroupsGlobalAndUniversal)


    搜索的基础是域根,还是至少是用户所在的OU?你的广告是2003年还是2008年?你能发布整个搜索栏吗?是的,基本搜索应该是“用户OU”。我认为现在是2008年(很难说),但我们支持2003年和2008年。至于“整个搜索块”,我只是在LDAP搜索工具中测试查询——只是粘贴上面的查询。你想要结果吗?如果你看这里:,你会发现你想要的是可能的。如果你把例子1和5结合起来,你应该得到你想要的,假设2003年安装了修补程序,或者你有2008年的广告。我不确定例子5是否适用。“memberOf”属性不同于其他属性,因为它是“虚拟的”或“动态计算的”。另外,我还想查询多个成员,并“获取他们的嵌套组成员资格”。他想要Employees组和所有子组的所有成员。他的问题很好。他只是混淆了个人和用户(分类或类)。这是对
    LDAP\u MATCHING\u RULE\u IN\u chain
    实际检查的链的一个很好、简洁的描述。嗯。。。ldp.exe不起作用,但ldapsearch起作用。ldp.exe似乎需要一个查询,即objectclass=*来抛出这个问题。
    ○ → ldapsearch -o ldif-wrap=no -LLL -Y GSSAPI -H ldap://ad1.mdmarra.local -b 'CN=Michael Brown,OU=Employees,DC=mdmarra,DC=local' -s base memberOf tokenGroups
    dn: CN=Michael Brown,OU=Employees,DC=mdmarra,DC=local
    memberOf: CN=Staff,OU=Security Groups,DC=mdmarra,DC=local
    memberOf: CN=cloud_users,OU=Security Groups,DC=mdmarra,DC=local
    memberOf: CN=TACACS-NOC-Customer,OU=Security Groups,DC=mdmarra,DC=local
    memberOf: CN=TACACS-NOC,OU=Security Groups,DC=mdmarra,DC=local
    memberOf: CN=PRTG-Admins,CN=Users,DC=mdmarra,DC=local
    tokenGroups:: AQIAAAAAAAUgAAAAIQIAAA==
    tokenGroups:: AQUAAAAAAAUVAAAA2TH4QrS3zSIH5TsreSgAAA==
    tokenGroups:: AQUAAAAAAAUVAAAA2TH4QrS3zSIH5TsrQCgAAA==
    tokenGroups:: AQUAAAAAAAUVAAAA2TH4QrS3zSIH5Tsr7xkAAA==
    tokenGroups:: AQUAAAAAAAUVAAAA2TH4QrS3zSIH5Tsr+xkAAA==
    tokenGroups:: AQUAAAAAAAUVAAAA2TH4QrS3zSIH5TsrAQIAAA==
    tokenGroups:: AQUAAAAAAAUVAAAA2TH4QrS3zSIH5TsrcRIAAA==
    tokenGroups:: AQUAAAAAAAUVAAAA2TH4QrS3zSIH5Tsr7ScAAA==
    tokenGroups:: AQUAAAAAAAUVAAAA2TH4QrS3zSIH5Tsr8BkAAA==
    tokenGroups:: AQUAAAAAAAUVAAAA2TH4QrS3zSIH5Tsr8RkAAA==
    tokenGroups:: AQUAAAAAAAUVAAAA2TH4QrS3zSIH5Tsr9hkAAA==
    tokenGroups:: AQUAAAAAAAUVAAAA2TH4QrS3zSIH5TsrWigAAA==
    tokenGroups:: AQUAAAAAAAUVAAAA2TH4QrS3zSIH5TsrWygAAA==
    tokenGroups:: AQUAAAAAAAUVAAAA2TH4QrS3zSIH5Tsr7hkAAA==
    tokenGroups:: AQUAAAAAAAUVAAAA2TH4QrS3zSIH5Tsr+RkAAA==
    
    ○ → ldbsearch -k yes -H ldap://ad1.mdmarra.local -b 'CN=Michael Brown,OU=Employees,DC=mdmarra,DC=local' -s base memberOf tokenGroups
    …
    memberOf: CN=PRTG-Admins,CN=Users,DC=mdmarra,DC=local
    tokenGroups: S-1-5-32-545
    tokenGroups: S-1-5-21-1123561945-583907252-725345543-10361
    tokenGroups: S-1-5-21-1123561945-583907252-725345543-10304
    tokenGroups: S-1-5-21-1123561945-583907252-725345543-6639
    tokenGroups: S-1-5-21-1123561945-583907252-725345543-6651
    tokenGroups: S-1-5-21-1123561945-583907252-725345543-513
    tokenGroups: S-1-5-21-1123561945-583907252-725345543-4721
    tokenGroups: S-1-5-21-1123561945-583907252-725345543-10221
    tokenGroups: S-1-5-21-1123561945-583907252-725345543-6640
    tokenGroups: S-1-5-21-1123561945-583907252-725345543-6641
    tokenGroups: S-1-5-21-1123561945-583907252-725345543-6646
    tokenGroups: S-1-5-21-1123561945-583907252-725345543-10330
    tokenGroups: S-1-5-21-1123561945-583907252-725345543-10331
    tokenGroups: S-1-5-21-1123561945-583907252-725345543-6638
    tokenGroups: S-1-5-21-1123561945-583907252-725345543-6649