我有一个工作的Kerberos SSO设置,我使用apache和jboss与mod_jk.Apache正在使用以下配置保护(通过kerberos)auto-login.htm页面:
<Location /auto-login.htm>
AuthType Kerberos
AuthName "Kerberos Active Directory Login"
KrbMethodNegotiate on
KrbMethodK5Passwd on
KrbAuthRealms KRB.SOMEDOMAIN.COM
KrbServiceName HTTP/server.somedomain.com@KRB.SOMEDOMAIN.COM
Krb5Keytab /etc/krb/krb5.keytab
KrbVerifyKDC on
KrbAuthoritative on
require valid-user
#ErrorDocument 401 /login.htm
</Location>
Run Code Online (Sandbox Code Playgroud)
这100%工作,我能够使用Kerberos/SSO登录并在我的java应用程序中读取remote_user变量.
现在的问题是,如果用户无法通过Kerberos/SSO登录,我想重定向到不受保护的login.htm.我想到的解决方案是设置401 ErrorDocument,但是当我通过在上面的代码中取消注释#ErrorDocument 401来设置它时,它总是重定向到login.htm,因为返回401以请求用户凭据本身就是Kerberos的一部分/ SSO身份验证过程.因此,结果是用户总是以login.htm结束,并且永远不会完成Kerberos/SSO登录过程.
任何帮助或替代解决方案将不胜感激.
在此先感谢
皮埃尔