ฉันใช้การพิสูจน์ตัวตน 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 Negotiate
สิ่งที่ฉันต้องการบรรลุคือถ้าผู้ใช้เข้าชม/login/
mod_auth_kerb พยายามพิสูจน์ตัวตนผู้ใช้ผ่าน Kerberos Negotiate หากล้มเหลวระบบจะแสดงแบบฟอร์มการเข้าสู่ระบบ HTML ปกติให้กับผู้ใช้
เป็นไปได้หรือไม่ที่จะกำหนดค่า Apache / mod_auth_kerb ในลักษณะนี้?