AD 跨林身份验证 - PAC 中缺少组

Mat*_*sen 10 active-directory authentication windows-server-2008-r2

我有一个由 2 个森林组成的 Active Directory 设置:

  • 1 个多域林,其中包含 1 个林根域和 2 个直接子域
  • 1 个用于 DMZ 发布的单域林

我在 DMZ 域中创建了 3 个传出信任、1 个针对林根域的传递林信任和 2 个外部非传递信任(又名快捷方式信任)。

所有四个域中的所有 DC 都是全局编录服务器。

我试图在下面将其可视化: DMZ/内部信任关系

现在,问题来了。当我向域中dmzRoot.tld的安全组授予对资源的访问权限时childA,它适用于childA属于安全组的用户,但不适用于childB域中的用户,即使他们是childA.

例如,假设我想授予本地管理员访问成员服务器的权限dmzRoot.tld。我添加childA.ForestRoot.tld\dmzAdministrators到成员服务器上的本地内置管理员组。

childA.ForestRoot.tld\dmzAdministrators 有以下成员:

  • childA\dmzAdmin
  • childB\超级用户

现在,如果我以 身份验证childA\dmzAdmin,我可以以本地管理员身份登录到成员服务器,如果我查看来自 的输出whoami /groupschildA.ForestRoot.tld\dmzAdministrators就会清楚地列出该组。

childB\superUser但是,如果我进行身份验证,则会收到一条消息,指出该帐户未获得远程登录授权。如果我检查whoami /groupschildB\superUser帐户,childA.ForestRoot.tld\dmzAdministrators则不会列出该组。

childA在对childB用户进行身份验证时,几乎似乎组 SID 从未包含在 PAC 中,即使所有 DC 都是 GC。

我在我测试过的 dmzRoot.tld 中的机器上禁用了 PAC 验证,但这没有帮助。

关于如何有效解决此问题的任何建议?如何跟踪身份验证的轨迹以确定失败的位置?

Mat*_*sen 6

结果是快捷方式信任导致了问题。

当 AD Kerberos 身份验证跨域传输时,目标域(即dmzRoot.tld)识别信任关系,通过该信任关系,用户发起childA.ForestRoot.tld域(例如)是受信任的域。

由于传递森林信任ForestRoot.tld和外部信任(快捷信任)都childA匹配该条件,目标领域必须选择一个,并且快捷信任优先于(因为它是显式的)森林信任中的隐式信任关系.

由于默认情况下在传出信任上启用SID 过滤器隔离,因此只有来自受信任领域(在本例中为childA域)的 SID 将在身份验证时受到尊重,外部 SID 将被过滤掉。

综上所述,有两种解决方案:

  • 删除外部信任,并依靠林信任。由于林信任是可传递的,整个林中的所有 SID 都将保留在您的令牌中。
  • 对来自dmzRoot.tld域的传出信任禁用 SID 筛选器隔离

希望这是有道理的