Zaimplementowałem uwierzytelnianie SSO za pomocą mod_auth_kerb na Apache. Moja konfiguracja wygląda następująco:
<Location /login/ >
AuthType Kerberos
AuthName "Kerberos Login"
KrbMethodNegotiate on
KrbAuthoritative on
KrbVerifyKDC on
KrbAuthRealm D.ETHZ.CH
Krb5Keytab /etc/HTTP.keytab
KrbSaveCredentials on
RequestHeader set KERBEROS_USER %{REMOTE_USER}s
</Location>
Mój problem polega na tym, że bez require valid-user
mod_auth_kerb nawet nie próbuje uwierzytelnić użytkownika i tak KERBEROS_USER
się dzieje (null)
. Jeśli dodam require valid-user
, użytkownik jest uwierzytelniany automatycznie, jeśli przeglądarka go obsługuje, ale wyświetla się brzydki modalny formularz logowania (ala HTTP Basic Auth), jeśli przeglądarka nie obsługuje protokołu Kerberos Negotiate.
Chcę osiągnąć to, że jeśli użytkownik odwiedza /login/
, mod_auth_kerb próbuje uwierzytelnić użytkownika za pomocą protokołu Kerberos Negotiate. Jeśli to się nie powiedzie, użytkownikowi zostanie przedstawiony normalny formularz logowania HTML.
Czy można tak skonfigurować Apache / mod_auth_kerb?