Kerberos 委派和身份验证:域更改带来的影响
Kerberos Delegation and Authentication: Impact due to Domain change
[我对 Kerberos 协议还很陌生]
我们有一个客户,他在 2020 年使用了一个域,我们称之为 customdom.itm
,它有一个用户帐户 krb-test-cd Kerberos 设置委派并且此域是域 Active Directory 林的一部分 itm
。
由于他们是一家在不同国家/地区拥有许多用户的大公司,因此他们还有另一个巨大的域 AD 林,其中有许多子域(和域控制器)作为该林的一部分,我们称之为 top.abc
。这里与我们相关的域是 aust.top.abc
,它具有 krb-test-aust Kerberos 用户帐户设置。
由于森林 itm
和 top.abc
不同,krb 用户的相同 servicePrincipalName 安全设置为 HTTP/testloadbalancer.com
,而他们的 userPrincipalName 当然是不同的,即:
- krb-test-cd uPN 是
HTTP/testloadbalancer.com@CUSTOMDOM.ITM
- krb-test-aust uPN 是
HTTP/testloadbalancer.com@AUST.TOP.ABC
并且由于 https://testloadbalancer.com
是客户 内部网站 的一部分,他们的浏览器不会要求用户输入他们的 AD 凭据。
问题来了:
上个月,客户决定将 customdom.itm
中的用户迁移到新域 can.top.abc
,该域是林 top.abc
的一部分。但是,用户 krb-test-cd 和其他一些帐户未迁移,并且 customdom.itm
仍然存在于其自己的林中。
由于迁移,这些用户现在每次都需要输入他们的 AD 凭据,并且只能使用旧域名获得访问权限,即
customdom\michael
和 password
我已经在域 can.top.abc
中设置了一个新的用户帐户 krb-test-can,用于使用 setspn 进行 Kerberos 委派和 SPN HTTP/testloadbalancer.com
,我第一次收到这个错误:
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 中,软件不需要密钥表文件。
我们是身份提供者,客户使用 https://testloadbalancer.com/xyz/efg_idp/entityid
等链接进行 IdP 发起的登录并重定向到目标应用程序。
在 Steve 的提示下,我终于找到了解决我自己问题的方法:
由于域 can.top.abc
和 aust.top.abc
以及其他域是同一林 top.abc
的一部分,它们应该具有跨域信任(我不确定信任是默认的还是需要需单独设置)。
因此,我只需要用户帐户 krb-test-aust 将 Kerberos 身份验证委托给 top.abc
下所有域中的用户。
krb-test-aust 的 uPN 仍然是 HTTP/testloadbalancer.com@AUST.TOP.ABC
.
[我对 Kerberos 协议还很陌生]
我们有一个客户,他在 2020 年使用了一个域,我们称之为 customdom.itm
,它有一个用户帐户 krb-test-cd Kerberos 设置委派并且此域是域 Active Directory 林的一部分 itm
。
由于他们是一家在不同国家/地区拥有许多用户的大公司,因此他们还有另一个巨大的域 AD 林,其中有许多子域(和域控制器)作为该林的一部分,我们称之为 top.abc
。这里与我们相关的域是 aust.top.abc
,它具有 krb-test-aust Kerberos 用户帐户设置。
由于森林 itm
和 top.abc
不同,krb 用户的相同 servicePrincipalName 安全设置为 HTTP/testloadbalancer.com
,而他们的 userPrincipalName 当然是不同的,即:
- krb-test-cd uPN 是
HTTP/testloadbalancer.com@CUSTOMDOM.ITM
- krb-test-aust uPN 是
HTTP/testloadbalancer.com@AUST.TOP.ABC
并且由于 https://testloadbalancer.com
是客户 内部网站 的一部分,他们的浏览器不会要求用户输入他们的 AD 凭据。
问题来了:
上个月,客户决定将 customdom.itm
中的用户迁移到新域 can.top.abc
,该域是林 top.abc
的一部分。但是,用户 krb-test-cd 和其他一些帐户未迁移,并且 customdom.itm
仍然存在于其自己的林中。
由于迁移,这些用户现在每次都需要输入他们的 AD 凭据,并且只能使用旧域名获得访问权限,即
customdom\michael
和 password
我已经在域 can.top.abc
中设置了一个新的用户帐户 krb-test-can,用于使用 setspn 进行 Kerberos 委派和 SPN HTTP/testloadbalancer.com
,我第一次收到这个错误:
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 中,软件不需要密钥表文件。
我们是身份提供者,客户使用 https://testloadbalancer.com/xyz/efg_idp/entityid
等链接进行 IdP 发起的登录并重定向到目标应用程序。
在 Steve 的提示下,我终于找到了解决我自己问题的方法:
由于域 can.top.abc
和 aust.top.abc
以及其他域是同一林 top.abc
的一部分,它们应该具有跨域信任(我不确定信任是默认的还是需要需单独设置)。
因此,我只需要用户帐户 krb-test-aust 将 Kerberos 身份验证委托给 top.abc
下所有域中的用户。
krb-test-aust 的 uPN 仍然是 HTTP/testloadbalancer.com@AUST.TOP.ABC
.