Tôi đã triển khai xác thực SSO bằng mod_auth_kerb trên Apache. Cấu hình của tôi trông như thế này:
<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>
Vấn đề của tôi là, nếu không require valid-user
, mod_auth_kerb thậm chí không cố gắng xác thực người dùng và KERBEROS_USER
cuối cùng trở thành (null)
. Nếu tôi thêm require valid-user
, người dùng sẽ được xác thực tự động nếu trình duyệt hỗ trợ, nhưng được hiển thị một hình thức đăng nhập phương thức xấu xí (ala HTTP Basic Auth) nếu trình duyệt không hỗ trợ Kerberos đàm phán.
Những gì tôi muốn đạt được là nếu người dùng truy cập /login/
, mod_auth_kerb cố gắng xác thực người dùng thông qua Kerberos đàm phán. Nếu thất bại, một hình thức đăng nhập HTML bình thường sẽ được trình bày cho người dùng.
Có thể định cấu hình Apache / mod_auth_kerb theo cách như vậy không?