L'authentification unique fonctionne sur un site Web interne, avec Apache et le système de gestion de l'identité. mod_auth_kerb
... sauf que les utilisateurs qui n'ont pas la configuration de navigateur appropriée obtiennent des invites de mot de passe au lieu d'une page d'erreur.
Les utilisateurs qui ont modifié la configuration de leur navigateur web pour autoriser le site y accèdent directement. Le problème se pose pour les utilisateurs qui n'ont pas encore effectué cette configuration du navigateur : nous voulons qu'ils voient une page d'erreur, mais au lieu de cela, Edge, Chrome et IE demandent tous un nom d'utilisateur et un mot de passe.
Nous avons KrbMethodK5Passwd off
. Cela a l'effet désiré sur les utilisateurs de Firefox, qui voient la page d'erreur.
Comment empêcher les autres navigateurs de demander un mot de passe lorsque le SSO échoue ? Nous ne voulons pas que les mots de passe circulent sur le réseau et nous ne voulons pas que les utilisateurs pensent qu'il est acceptable de fournir leur nom d'utilisateur et leur mot de passe Windows aux sites Web.
Voici l'invite indésirable de Chrome :
Et voici celle d'Edge (celle d'IE est à peu près la même) :
Si l'utilisateur appuie sur Esc
7 fois, l'invite finit par disparaître et l'utilisateur peut lire la page d'erreur. Mais il n'y a aucune raison pour qu'un utilisateur pense à faire cela (si cela n'a pas fonctionné les 6 premières fois, pourquoi essayer une 7ème fois ?), alors qu'il pourrait essayer de soumettre son mot de passe.
Le serveur tourne sous Ubuntu, et a cette configuration Apache qui applique l'authentification :
<Location />
AuthName "Internal Website Domain Authentication"
AuthType Kerberos
Krb5Keytab /etc/apache2/HTTP.keytab
KrbMethodNegotiate on
KrbMethodK5Passwd off
Require valid-user
ErrorDocument 401 /error/authentication.html
</Location>
Merci.