我有一个支持Kerberos身份validation的Tomcat webapp。 它工作正常,我可以login到该应用程序,如果我使用像LOCAL SYSTEM或networking服务的内置帐户,但我有问题为Tomcat服务设置一个非默认域帐户。
我已经注册了必要的SPN:
C:\Users\Administrator>setspn -l tomcatuser1 Registered ServicePrincipalNames for CN=tomcatuser1,CN=Users,DC=blah,DC=com: HTTP/Unicorn.blah.com HTTP/Unicorn
之后,我可以从域中的其他机器login,但不能从运行Tomcat服务的机器login。 如果我使用IP地址,我没有任何问题。 我也检查,我没有遇到回环问题,但似乎并没有影响任何东西。
因此,当我要求使用主机名称的网页时,我得到401响应。 从日志中我发现协商是在多个步骤中进行的,最后一步是服务器说我提供的授权令牌是无效的。 实际的错误信息是“指定的句柄无效”对应的SEC_E_INVALID_HANDLE窗口错误。
它可能与Kerberos安装有关,还是networking问题?
它可能与Kerberos安装有关,还是networking问题?
Kerberos设置与networkingconfiguration密切相关,所以责备罪犯和赦免对方并不容易。
当它真的不是一个回环问题,它可能仍然是一个IPv4与IPv6的问题:
如果所有客户端都使用DNS来反向parsing(o AAAAPlogging),但是服务器在其本地“主机”文件中为其IPv4和IPv6地址提供不同的主机名,并且/或者可能导致协商的相应KDC因为校长失配而失败。
所以我的build议是比较服务器和一个客户端的反向名称parsing。