Linux Spring Kerberos扩展、SSO和域外机器
我一直在使用Kerberos扩展的里程碑2来实现单点登录 我的设置的快速摘要:Linux Spring Kerberos扩展、SSO和域外机器,linux,spring-security,kerberos,single-sign-on,Linux,Spring Security,Kerberos,Single Sign On,我一直在使用Kerberos扩展的里程碑2来实现单点登录 我的设置的快速摘要: KDC:WindowsServer2003(SP2) Web服务器:Ubuntu 10.04、Tomcat 5.5、Java 1.6.0_22(不在域中) Spring:framework3.0.5,Security 3.0.4,Kerberos扩展1.0.0m2 我已将配置设置为首先尝试SPNEGO身份验证,如果失败,则重定向到登录页面。 这是通过设置SPNEGAuthenticationProcessingFil
KDC:WindowsServer2003(SP2)
Web服务器:Ubuntu 10.04、Tomcat 5.5、Java 1.6.0_22(不在域中)
Spring:framework3.0.5,Security 3.0.4,Kerberos扩展1.0.0m2 我已将配置设置为首先尝试SPNEGO身份验证,如果失败,则重定向到登录页面。 这是通过设置SPNEGAuthenticationProcessingFilter的“failureHandler”属性来完成的。我已经成功地测试了这个 在域内外的Windows计算机(XP和7)上。域外的计算机被重定向到 登录页面,然后可以成功登录。
这是我的配置:
当Windows计算机在域之外时,我的web服务器会响应“WWW-Authenticate-congregate”标头(按常规),该标头
Windows计算机用NTLM头(“协商TlRM…”)响应,其中SPNEGAuthenticationProcessingFilter然后说“协商头无效…”
并自动将用户重定向到登录页面。太好了
问题:有许多Mac和Linux机器永久位于域之外,需要使用此web应用程序。 当他们点击web应用程序(使用Firefox 3.6)时,我的web服务器会以预期的“WWW-Authenticate-congregate”标题进行响应以通知 客户端认为web应用程序已被Kerberized,但Mac或Linux机器根本没有响应。因此,SPNEGAuthenticationProcessingFilter 不会再次输入,因此不会出现故障,也不会重新定向到登录页面 问题:
为什么Mac和Linux机器的响应方式与Windows机器的响应方式不同(真不敢相信我刚才问了这个问题…) 我知道,当Mac和Linux机器(通过kinit)获得票证时,它们能够进行身份验证,但这似乎不是一个好的解决方案 因为它需要用户的努力来提供凭证等票据到期的地方 那么有没有办法让这些机器像Windows机器那样发回NTLM头呢? 或者如果有任何其他建议/方法,请让我知道
B.t.w.我确实配置了我用来在Mac和Linux机器上测试的Firefox(“网络.协商授权URI”和“网络.协商授权.可信URI”设置为“.corpza.corp.co.za”)。看起来不像您设置了network.automatic-ntlm-auth.trusted-uris。你看完了吗
Grant看起来您没有设置network.automatic-ntlm-auth.trusted-uris。你看完了吗
格兰特,你走错方向了。不要依赖出现故障的SPNEGO过滤器。Linux和Mac客户端的行为与Windows客户端一样正确。常规设置应该如下所示,如果过滤器没有实现/支持该设置,则表明您发现了一个bug
我们也在使用这个过滤器,我对它不是很满意。所以我有亲身体验。你走错了路。不要依赖出现故障的SPNEGO过滤器。Linux和Mac客户端的行为与Windows客户端一样正确。常规设置应该如下所示,如果过滤器没有实现/支持该设置,则表明您发现了一个bug