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

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

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

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

我在 DMZ 域中创建了 3 个传出信任,针对林根域创建了 1 个可传递林信任,以及 2 个外部非传递信任(又名快捷信任)。

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

我尝试将其形象化如下: DMZ/内部信任关系

现在,问题来了。当我dmzRoot.tld向域中的安全组授予对 中的资源的访问权限时,它对 中的安全组成员childA用户有效,但对 中的域用户无效,即使他们是 中的安全组成员。childAchildBchildA

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

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

  • childA\dmzAdmin
  • childB\superUser

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

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

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

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

关于如何有效地排除故障,有什么建议吗?如何跟踪身份验证的踪迹来确定失败的位置?

答案1

事实证明,快捷方式信任是导致问题的原因。

当 AD Kerberos 身份验证跨域时,目标领域(即dmzRoot.tld)会标识一种信任关系,通过该信任关系,用户的原始领域(例如childA.ForestRoot.tld)是受信任的域。

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

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

总结一下,有两个解决方案:

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

希望这是有意义的

相关内容