如果 AD 组的成员是另一个组,而该组已经是该组的成员,那么会产生什么后果(循环引用)

如果 AD 组的成员是另一个组,而该组已经是该组的成员,那么会产生什么后果(循环引用)

我一直在查看具有几千个组的 Active Directory,其中成对的组彼此是成员。

GroupA 将 GroupB 作为成员。GroupB 将 GroupA 作为成员。

哎呀。我正在努力思考这种群体循环嵌套可能造成的后果。

答案1

首先,请注意不要让用户属于太多组 - 这可能会导致他们的令牌太大,最终导致如下结果:

在此处输入图片描述

并且 GPO、启动脚本等也将停止处理。

这并没有直接回答你的问题,但一堆嵌套的组肯定会加剧这个问题。组彼此之间互为成员本身并没有什么可怕的。也就是说,时空连续体不会撕裂……我能想到的唯一问题是,你可能会混淆一些大量使用 LDAP 查询的应用程序……比如 Exchange 等。

答案2

所以,我不会说它不好,但它确实不好。有几个原因,其中之一与脚本有关。循环嵌套本质上是一个“无限循环”,因为脚本使用了大量递归函数。这显然会导致脚本出错等。

然后,AD 中存在“简化”的理念,而循环嵌套本质上是违背这一理念的。

Technet 库中有一个 powershell 脚本可以帮助定位循环嵌套组,您可以在此处找到它,它将帮助定位循环组: 查找循环嵌套组

另外两个 PowerShell 脚本可以绘制嵌套组,从而有助于快速找到循环嵌套:

  • 按 MemberOf 反向链接属性绘制嵌套 AD 安全组图
  • 按成员属性绘制嵌套 AD 安全组图表

  • 答案3

    不会有任何后果 —— 至少就 Active Directory 而言。

    我曾多次看到过这种情况的部署;它唯一会破坏的是编写不当的递归枚举组的代码。在这些情况下,检查代码中的这种循环并忽略已经枚举的组,或者只是限制递归深度是一件简单的事情。

    相关内容