如何解决Kerberos 委派和身份验证:由于域更改而产生的影响
[我对 Kerberos 协议还很陌生]
我们有一个客户,他在 2020 年使用了一个域,我们称之为 customdom.itm
,该域具有用于 Kerberos 委派的用户帐户 krb-test-cd 设置,该域是域 Active Directory 林 itm
的一部分。
由于他们是一家在不同国家/地区拥有许多用户的大公司,因此他们还有另一个巨大的域 AD 林,其中包含许多子域(和域控制器)作为该林的一部分,我们称之为 top.abc
。此处与我们相关的域是 aust.top.abc
,它为 Kerberos 设置了 krb-test-aust 用户帐户。
由于森林 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 和 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=abc': 0x13.
WARNING: Unable to set SPN mapping data.
后来我终于明白,SPN已经设置为用户krb-test-aust。
我的问题是:
如何在不影响 Kerberos 委派给用户 krb-test-aust 的情况下,仍然成功地将 SPN HTTP/testloadbalancer.com
和最终 UPN HTTP/testloadbalancer.com@CAN.TOP.ABC
分配给用户 krb-test-can ?
或者是否有关于如何仅使用用户 krb-test-aust 将 Kerberos 身份验证委托给现在居住在域 can.top.abc
中的用户的解决方法,而无需需要用户 krb-test-can 吗?
非常感谢任何帮助。
提前致谢!
[一些背景]
我们有一个访问管理软件,我们为上述 2 个域中的每个域配置了许多身份提供者、2 个策略执行点和 Kerberos 身份验证。
我们只需要将krb用户的uPN和密码注入到各自的PEP中,软件不需要keytab文件。
我们是身份提供者,客户使用 https://testloadbalancer.com/xyz/efg_idp/entityid
之类的链接进行 IdP 发起的登录并重定向到目标应用程序。
解决方法
在史蒂夫的提示下,我终于找到了解决自己问题的方法:
由于域 can.top.abc
和 aust.top.abc
以及其他域是同一林 top.abc
的一部分,因此它们应该具有跨域信任(我不确定信任是默认的还是需要的)单独设置)。
因此,我只需要用户帐户 krb-test-aust 即可将 Kerberos 身份验证委托给位于 top.abc
下所有域中的用户。
krb-test-aust 的 uPN 仍然是 HTTP/testloadbalancer.com@AUST.TOP.ABC
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。