跨领域设置中基于 Kerberos 资源的约束委派

Kerberos Resourced based constrained delegation in cross realm setup

我正在尝试使用最新的 JDK 8 来执行 resource based constrained delegation,似乎 运行 遇到了获取 S4U2Proxy 调用的最后一段服务票证的问题。

这是我的设置: 两个启用了双向林身份验证的 Microsoft AD 林。

我已成功利用 S4U2Self 协议并检索到用户 B 的服务票证到 ForestA 中的前端服务。但是,当尝试利用 S4U2Proxy 获取服务票证到 ForestB 中的后端服务时,请求失败,错误代码为 kerberos 错误 12。

从 ForestB 的域控制器上的事件查看器调查审计日志,表明错误消息是 0xC000019B(事件 ID 4769),这似乎与某些一般信任设置问题有关。

使用相同负载的任何进一步请求会导致从 ForestB 的域控制器返回 Kerberos 错误代码 28。可能是由于缓存了之前的 kerberos 票证?

更新:

如果前端服务和用户在同一个林中,而后端服务在不同的林中,则此设置工作正常。

当前端服务和后端服务在一个林中,而用户在不同的林中时,它也有效。

在与微软讨论此事后,确认微软AD在设计上不支持这个特定案例。具体来说,如果前端服务在一个林中,而用户和资源服务在不同的林中,则不支持此用例。

希望这对以后遇到此问题的人有所帮助。