Назад | Перейти на главную страницу

Как настроить перенаправление apache или пользовательский документ 401 при ошибке входа в систему единого входа Kerberos

У меня есть работающая настройка единого входа Kerberos, я использую 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>

Это работает на 100%, и я могу войти в систему с помощью Kerberos / SSO и прочитать переменную remote_user в моем приложении Java.

Теперь проблема в том, что я хочу перенаправить на незащищенный login.htm, если пользователь не смог войти в систему через Kerberos / SSO. Решение, которое я имел в виду, заключалось в том, чтобы установить 401 ErrorDocument, однако, когда я установил это, раскомментировав #ErrorDocument 401 в приведенном выше коде, он всегда перенаправлялся на login.htm, поскольку возвращение 401 для запроса учетных данных пользователя по своей сути является частью Kerberos / Процесс аутентификации SSO. Таким образом, в результате пользователи всегда попадают на login.htm и никогда не завершают процесс входа в систему Kerberos / SSO.

Любая помощь или альтернативное решение будет оценено по достоинству.

заранее спасибо
Пьер

Чтобы не прерывать процесс аутентификации Kerberos / SSO, используйте следующее:

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

Это вызовет перенаправление только тогда, когда пользователь нажимает кнопку отмены в диалоговом окне браузера.

Я верю ты хочешь ErrorDocument 403. 401 возвращается, когда сервер запрашивает аутентификацию, 403 возвращается, когда клиент не может обеспечить аутентификацию. По крайней мере, это верно при настройке аутентификации x.509.