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