我的 Active Directory 林由多个子域组成,其中包括:

  • 主域名 ( main.contoso.local)
  • 测试域 ( test.contoso.local)

我的用户david@main.contoso.localMAIN\GlobalGroupScope组的成员Global,位于主域中。此全局组是TEST\DomainLocalGroupScope组的成员Domain Local,位于测试域中。

[david@main.contoso.local]  --MemberOf-->  [MAIN\Global]  --MemberOf-->  [TEST\DomainLocal]
  

如果我的用户登录到测试域中的一台机器,则令牌将包含 SID 。这可以在用户会话中TEST\DomainLocal进行验证。whoami /groups

作为管理员,我如何在不以用户身份登录的情况下通过 CLI 获取此信息?我尝试查询全局目录或使用LDAP_MATCHING_RULE_IN_CHAIN (member:1.2.840.113556.1.4.1941),但未TEST\DomainLocal在任何地方显示。


最佳答案
1

域本地组明确不会在其域外复制,这包括全局目录。这是设计使然,也是此组范围存在的原因。如果您想获取每个域中的主体成员资格,包括域本地组,则需要分别查询每个域。

或者,您可以将范围从 DomainLocal 组更改为通用组,以便可以接受来自其他域的成员。

或者,您可以将其设计为,来自 MAIN 域的通用组仅在 TEST 中的域本地组中专门使用,这样您只需查看 MAIN 中的成员资格即可看到用户是哪些 DLG 的成员。

最后一个选项与 AD 最佳实践和考试的教学方式最为相似。根据该教学,来自不同域的用户不应成为任何域中的域本地组的直接成员;通用组应该是域本地组的成员——但这已经变得相当复杂了。这完全是为了控制复制范围并减少复制的数量和频率。在现代世界中,带宽和延迟不再是一个重要因素,其中一些做法已被抛弃。

4

  • you would need to query each domain separately– 这正是我似乎无法弄清楚的部分。我想我必须查询林中的每个域才能获取所有域本地组。但是查询是什么?一定有办法,因为否则这些域的域控制器如何构建正确的令牌。


    – 

  • 我想,这有什么关系?域 TEST 中的资源不需要了解域 MAIN 中的域本地组。无论如何,您都不能以这种方式使用这些组如果您发现自己需要这样做,则设计不正确;您正在查看通用组的用例。


    – 


  • 我所能想到的就是,您希望执行某种审计,或者某种方式,以枚举跨多个域的特定帐户的所有访问权限——再次,我回到组设计,并利用嵌套在域本地组中的专用通用组。域 MAIN 中的用户不应位于域 TEST 中的本地组中;它将大大简化此类任务,并遵循适当的组设计和功能。


    – 

  • 我完全同意你的观点,只是作为一家数百名 IT 人员一起工作的公司,每个人的行为方式并不相同 :)。我问这个问题是因为当我查看用户时,为了改善群组成员资格,我必须先了解发生了什么。目前这项任务需要很长时间,因为信息不在一个地方。我想要一个可以为我提取这些信息的脚本。


    –