我有一个有效的 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 登录过程。
任何帮助或替代解决方案将不胜感激。
提前致谢
皮埃尔
小智 6
为了不中断 Kerberos/SSO 身份验证过程,请使用以下内容:
ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=/login.htm\"></html>"
Run Code Online (Sandbox Code Playgroud)
这将导致仅当用户在浏览器对话框中单击取消时才会发生重定向。
| 归档时间: |
|
| 查看次数: |
5531 次 |
| 最近记录: |