Eu implementei uma autenticação SSO usando mod_auth_kerb no Apache. Minha configuração fica assim:
<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>
Meu problema é que, sem require valid-user, o mod_auth_kerb nem tenta autenticar o usuário e KERBEROS_USERacaba sendo (null). Se eu adicionar require valid-user, o usuário será autenticado automaticamente se o navegador suportar, mas será mostrado um formulário de login modal feio (ala HTTP Basic Auth) se o navegador não suportar o Kerberos Negotiate.
O que eu quero alcançar é que, se um usuário visita /login/, o mod_auth_kerb tenta autenticar o usuário através do Kerberos Negotiate. Se isso falhar, um formulário de login HTML normal será apresentado ao usuário.
É possível configurar o Apache / mod_auth_kerb dessa maneira?