2010-01-11 169 views
2

我有一个工作的Kerberos SSO设置中,我使用Apache和JBoss与mod_jk的配置Apache重定向或自定义401文件。 Apache是​​保护(供Kerberos)自动login.htm页具有以下配置:如何Kerberos的SSO登录失败

<Location /auto-login.htm> 
AuthType   Kerberos 
AuthName   "Kerberos Active Directory Login" 
KrbMethodNegotiate on 
KrbMethodK5Passwd on 
KrbAuthRealms  KRB.SOMEDOMAIN.COM 
KrbServiceName  HTTP/[email protected] 
Krb5Keytab   /etc/krb/krb5.keytab 
KrbVerifyKDC  on 
KrbAuthoritative on 
require   valid-user 
#ErrorDocument 401 /login.htm 
</Location> 

这个工程100%,我能够使用Kerberos/SSO登录并阅读我的Java应用程序的REMOTE_USER变量。

现在的问题是,我想重定向到一个未受保护的login.htm如果用户无法通过Kerberos/SSO登录。我想到解决的办法是设置一个401的ErrorDocument,但是当我设置了在代码取消对#ErrorDocument 401上面它总是重定向到login.htm为返回一个401请求用户凭证是Kerberos的固有组成部分/ SSO身份验证过程。这样的结果是用户始终在login.htm结束了,从来没有完成的Kerberos/SSO登录过程。

任何帮助或替代解决方案将不胜感激。

预先感谢
皮尔

+1

不应该这是对serverfault.com? – Kimvais 2010-01-11 09:15:50

+0

我在这里添加了它,因为这些标记在serverfault上是新的,但已经在stackoverflow中使用。但是现在我把它贴在那里以及缩小标签。 http://serverfault.com/questions/101462/how-to-setup-apache-redirect-or-custom-401-document-on-kerberos-sso-login-failure – 2010-01-11 10:28:34

回答

5

为了不中断的Kerberos/SSO认证处理中,使用下面的:

ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=/login.htm\"></html>" 

这将导致重定向仅当用户点击取消发生在浏览器对话框中。

0

对于任何介质间步骤,将上述内容挂接到HTTP流中,例如, Servlet,除了返回成功的认证外。