Я реалізував аутентифікацію SSO за допомогою mod_auth_kerb на Apache. Мій конфігурація виглядає так:
<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>
Моя проблема полягає в тому, що без цього require valid-user
mod_auth_kerb навіть не намагається перевірити автентифікацію користувача і в KERBEROS_USER
кінцевому підсумку є (null)
. Якщо я додаю require valid-user
, користувач автоматично перевіряє автентифікацію, якщо браузер підтримує його, але йому відображається негарна форма модального входу (ala HTTP Basic Auth), якщо браузер не підтримує переговори Kerberos.
Що я хочу досягти, це те, що якщо користувач відвідує /login/
, mod_auth_kerb намагається перевірити автентифікацію користувача через Kerberos Negotiate. Якщо це не вдається, користувачеві буде представлена нормальна форма входу в HTML.
Чи можна налаштувати Apache / mod_auth_kerb таким чином?