Как настроить перенаправление Apache или пользовательский документ 401 при сбое входа Kerberos SSO - PullRequest
2 голосов
/ 11 января 2010

У меня есть работающая настройка 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>

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

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

Буду признателен за любую помощь или альтернативное решение.

Заранее спасибо
Pierre

Ответы [ 2 ]

5 голосов
/ 11 января 2010

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

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

Это приведет к тому, что перенаправление произойдет только тогда, когда пользователь нажмет кнопку «Отмена» в диалоговом окне браузера.

0 голосов
/ 03 февраля 2010

Для любого шага между средами привязать вышеуказанное содержимое в поток HTTP, например, Сервлет, исключая успешную аутентификацию, возвращенную.

...