【问题标题】:Kerberos Delegation and Authentication: Impact due to Domain changeKerberos 委派和身份验证:域更改造成的影响
【发布时间】:2021-05-03 19:34:45
【问题描述】:

[我对 Kerberos 协议还很陌生]

我们有一个客户,他在 2020 年使用了一个域,我们称之为 customdom.itm,它有一个用于 Kerberos 委托的用户帐户 krb-test-cd 设置,并且该域是域 Active Directory 林 itm
由于他们是一家在不同国家/地区拥有许多用户的大型公司,因此他们还拥有另一个巨大的域 AD 森林,其中包含许多子域(和域控制器)作为该森林的一部分,我们称之为 top.abc。这里与我们相关的域是aust.top.abc,它为 Kerberos 设置了 krb-test-aust 用户帐户。

由于森林itmtop.abc 不同,两个krb 用户的相同servicePrincipalName 安全设置为HTTP/testloadbalancer.com,而他们的userPrincipalName 当然不同,即:

  1. krb-test-cd uPN 是 HTTP/testloadbalancer.com@CUSTOMDOM.ITM
  2. krb-test-aust uPN 是 HTTP/testloadbalancer.com@AUST.TOP.ABC

由于https://testloadbalancer.com 是客户的Intranet 站点 的一部分,因此他们的浏览器不会要求用户输入他们的 AD 凭据。

问题来了
上个月,客户决定将customdom.itm 中的用户迁移到新域can.top.abc,该域是林top.abc 的一部分。但是,用户 krb-test-cd 和其他一些帐户没有迁移,customdom.itm 仍然存在于它自己的林中。
由于迁移,这些用户现在每次都被要求输入他们的 AD 凭据,并且只能使用旧域名进行访问,即
customdom\michaelpassword

我已经在域 can.top.abc 中设置了一个新的用户帐户 krb-test-can,用于使用 setspn 和 SPN HTTP/testloadbalancer.com 的 Kerberos 委派,第一个时间,我得到了这个错误:

The operation failed because SPN value provided for addition/modification is not unique forest-wide.

接下来,我使用 SPN HTTP/testloadbalancer.com@CAN.TOP.ABC 尝试了 ktpass,但又遇到了另一个错误:

Failed to set property 'servicePrincipalName' to 'host/<host name>' on
Dn 'CN=<CN Name>,CN=Users,DC=<DC Name>,DC=<DC Name>,DC=abc': 0x13.
WARNING: Unable to set SPN mapping data.

后来我终于明白SPN已经设置为用户krb-test-aust了。

我的问题是
我怎样才能仍然成功地将 SPN HTTP/testloadbalancer.com 和最终 UPN HTTP/testloadbalancer.com@CAN.TOP.ABC 分配给用户 krb-test-can 而不会影响 Kerberos 委派给用户 krb-test-aust ?
或者是否有一种解决方法,我可以only 使用用户 krb-test-aust 将 Kerberos 身份验证委托给现在居住在域 can.top.abc 中的用户,而无需用户krb-test-can

非常感谢任何帮助。
提前致谢!



[一些背景]
我们有一个访问管理软件,我们为上述 2 个域中的每一个域配置了多个身份提供程序、2 个策略执行点和用于 SingleSignOn 的 Kerberos 身份验证。
我们只需将 krb 用户的 uPN 和密码注入到各自的 PEP 中,软件不需要 keytab 文件。
我们是身份提供者,客户使用 https://testloadbalancer.com/xyz/efg_idp/entityid 之类的链接进行 IdP 发起的登录并被重定向到目标应用程序。

【问题讨论】:

  • 你不能。 SPN 在每个 中都是唯一的,因此只要 krb-test-aust 已注册,就不可能尝试将现有 SPN 添加到 krb-test-can。您的选择是选择一个新的 SPN(并通过扩展 LB 的 DNS 名称),或使其与 krb-test-aust 主体一起使用。
  • @Steve 感谢您的澄清。如何使其仅与 krb-test-aust 用户的主体一起使用?有解决方法吗? (就像我在第二个问题中问的那样)
  • 理论上你应该能够将负载均衡器 SP 设置为 krb-test-aust 帐户和凭据,它应该可以工作。
  • @Steve 你的意思是有一个跨域信任应该能够处理这个?如果是,我该如何设置?
  • 您可以在customdom.itmcan.top.abc 之间创建林信任,并将所谓的顶级名称添加到testloadbalancer.com 的信任中。或者您可以配置testloadbalancer.com 以使用aust.top.abc 中的帐户。 CAN 和 AUST 之间已经建立了信任关系,因为它们在同一个森林中。

标签: active-directory single-sign-on kerberos domain-name kerberos-delegation


【解决方案1】:

从史蒂夫那里得到提示,我终于找到了解决自己问题的方法:
由于域can.top.abcaust.top.abc 以及其他域是同一森林top.abc 的一部分,因此它们应该具有跨域信任(我不确定信任是默认的还是需要单独设置)。

因此,我只需要用户帐户 krb-test-aust 将 Kerberos 身份验证委派给 top.abc 下所有域中的用户。
krb-test-aust 的 uPN 仍为 HTTP/testloadbalancer.com@AUST.TOP.ABC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    相关资源
    最近更新 更多