我正在尝试设置一个 tomcat 服务器来使用 Kerberos 身份验证。此服务器是 Spotfire 应用程序服务器的基础。我像这样设置我的 krb5.config 文件:
[libdefaults]
default_realm = MYCOMPANY.COM
default_keytab_name = mykeytab.keytab
default_tkt_enctypes = aes128-cts rc4-hmac
default_tgs_enctypes = aes128-cts rc4-hmac
forwardable = true
[realms]
MYCOMPANY.COM = {
kdc = myserver03.mycompany.com
kdc = myserver04.mycompany.com
admin_server = myserver03.mycompany.com
default_domain = mycompany.com
}
[domain_realm]
.mycompany.com = MYCOMPANY.COM
mycompany.com = MYCOMPANY.COM
[appdefaults]
autologin = true
forward = true
forwardable = true
encrypt = true
此应用程序服务器需要将用户的凭据委托给另一个名为“anotherserver.mycompany.com”的服务器这对我和某些用户来说效果很好;但是对于其他一些用户组,它不起作用,并且会触发有关特定于该服务器的委托的错误:RequireDelegationStrategy.login。我更改了 krb5 文件中的 domain_realm 条目,我可以使用自己的凭据重现该问题,只需更改以下内容:
[domain_realm]
.mycompany.com = .MYCOMPANY.COM
mycompany.com = MYCOMPANY.COM
请注意,我添加了一个“。” 到“MYCOMPANY.COM”条目。我可以摆脱“。” 并恢复正常工作。因此,这让我认为该问题必须与该特定条目有关,并且我可能必须为该特定服务器添加一个条目。我如下所示添加了它,然后它对任何用户都不起作用。我们都遇到了相同的委派错误:
[domain_realm]
.mycompany.com = MYCOMPANY.COM
mycompany.com = MYCOMPANY.COM
anotherserver.mycompany.com = ANOTHERSERVER.MYCOMPANY.COM
我的问题是,我是否缺少在文件中添加此条目的语法?如果是这样,在域 relam 中添加这些服务器的正确语法是什么?