我正在尝试使用SPNEGO servlet筛选器和8080监听端口来设置Java服务,以便在运行IIS7中托pipe的Web应用程序的主机上进行身份validation。
我遵循SPNEGO安装说明并为HTTP/canonical.host.name创build了一个SPN,绑定到执行Java服务authentication的用户。
在此更改之后,Java服务能够通过SPNEGO对客户端进行身份validation,但以自定义标识(即用户名代替ApplicationPoolIdentity)运行的IIS7应用程序池突然无法进行身份validation。
这里我不明白:
setspn -Q检查)定义的HTTP/canonical.host.name SPN时,Kerberos身份validation如何为IIS工作? 客户仍然要求并接收这个SPN的门票。 KRB_AP_ERR_MODIFIED返回KRB_AP_ERR_MODIFIED 。 作为SPN注册的用户运行应用程序池不会更改此行为。 那么,有没有办法在同一个主机上有多个独立的SPNEGOauthentication服务?
最后一项:对于同一台主机上的多个经过SPNEGOvalidation的服务,不使用IEregistry键,使用不同的名称。
•如果没有使用(通过setspn -Q进行检查)定义的HTTP / canonical.host.name的SPN,Kerberos身份validation如何在IIS上工作? 客户仍然要求并接收这个SPN的门票。
这是基于HOST\boxname SPN的自动回退,它是在域join时为所有计算机创build的 – 如果DC没有find与客户端应用程序请求的SPECIFICSERVICE \ boxname匹配的值,它将提供一张票基于HOST \ boxname。
使用SETSPN -L boxname列出与安全主体(用户或计算机帐户)关联的SPN。
•出于兴趣,我们尝试运行具有成功validation的Java服务标识的应用程序池。 只要定义了SPN,它仍然不起作用 – 尝试使用Kerberos票证进行身份validation失败,并返回KRB_AP_ERR_MODIFIED。 作为SPN注册的用户运行应用程序池不会更改此行为。
IIS 7的默认值是useAppPoolCredentials = false,useKernelMode = true; 其中一个或两个必须切换,以便应用程序池身份被用来解码Kerberos门票。
•Microsoft指定SPN包含一个端口号,但是IE不符合此要求,并且永远不会在SPN中发送端口号(在此行为中,Firefox和Chrome遵循)。
现在回到这个问题的真正症结所在:当其他一切都被修复的时候,IE和其他浏览器默认不会包含端口号,所以最less修改的解决scheme就是在同一个盒子上运行不同的主机头。
还请注意,由于另一个IE行为(对于更改所有客户端的registry设置的相同论点),CNAME不是一个好的select,而是使用Alogging。
更多在这里 , 在这里和较小程度上。
你有从这个KB http://support.microsoft.com/default.aspx?scid=kb;EN-US;908209在客户端configuration的注册码? 否则,IE不会请求正确的票证。 只是要清楚,registry键与IE6 +修补程序,但适用于所有版本的IE从那时起。
我不确定我了解你的configuration。 是否在用于“Java服务”的服务帐户上configuration了HTTP / canonical.host.name SPN?
您可以使用不同的身份在机器上运行多个服务。 所以你可以在同一个主机上有一个名为HTTP / host1.host.name和HTTP / host2.host.name的服务。 如果您愿意,可以在相同的服务帐户或不同的服务帐户上注册相关的SPN。
如果HTTP SPN没有明确地设置在任何地方,HTTP SPN的请求被映射到具有基于HOST的SPN的对象。 这种映射通过按照http = CN = Directory Service,CN = Windows NT,CN = Services,CN = Configuration,DC = forest1,DC = local(forest1.local是森林名称)的对象上的SPNMappings属性发生://msdn.microsoft.com/en-us/library/cc220898(v = PROT.13).aspx 。
特里斯坦的博客很棒。 您也可以在http://blogs.technet.com/b/askds/archive/tags/kerberos/find疑难解答博客和其他与kerberos相关的博客。