Introduction
L'objectif est de configurer Firefox / Iceweasel pour gérer l'authentification Kerberos à l'aide de SPNEGO.
SPNEGO est l'acronyme de "Simple and Protected GSSAPI Negotiation Mechanism"
Kerberos est un protocole d'authentification réseau qui repose sur un mécanisme de clés secrètes (chiffrement symétrique) et l'utilisation de tickets, et non de mots de passe en clair, évitant ainsi le risque d'interception frauduleuse des mots de passe des utilisateurs. Créé au Massachusetts Institute of Technology, il porte le nom grec de Cerbère, gardien des Enfers (Κέρϐερος). (src : Wikipédia)
Kerberos autorise la mise en oeuvre du Single Sign-On (SSO) : une fois authentifiés, au début de leurs sessions, les utilisateurs peuvent accéder aux services réseau à travers un "royaume" (realm) Kerberos sans avoir besoin de s'authentifier à nouveau. Pour que ceci fonctionne, il est nécessaire d'utiliser des protocoles réseaux compatibles avec Kerberos. Dans le cas de HTTP, le support de Kerberos est fourni par le mécanisme d'authentification SPNEGO (Simple and Protected GSS-API Negotiation), également connu sous le nom de « integrated authentication » ou « negotiate authentication ». Firefox supporte SPNEGO, mais il est désactivé par défaut pour des raisons de sécurité.
Scénario
Supposons que l'on souhaite s'authentifier sur le site web « http://www.example.com/ » en utilisant Kerberos. Le serveur web est configuré pour accepter les tickets Kerberos du royaume EXAMPLE.COM.
L'utilisateur exécutant le navigateur web dispose d'un ticket d'accès au service de délivrement de ticket (ticket-granting ticket) pour ce royaume.
Méthode
Pour activer SPNEGO, l'URL du site web à accéder doit être explicitement autorisée dans la configuration de Firefox/Iceweasel dans le paramètre
network.negotiate-auth.trusted-uris
Ce paramètre prend pour valeur une liste de préfixes d'URL et/ou de noms de domaines, séparés par des virgules. Dans notre cas, la valeur correcte à déclarer serait
www.example.com
ou
http://www.example.com/
Pour changer la valeur de ce paramètre :
- Accéder l'URL
about:config
- Valider le message d'alerte concernant les risques liés à la modification du paramétrage.
- Saisir « negotiate-auth » dans le filtre en haut de page de manière à se débarrasser du plus grand nombre de paramètres inutiles dans le cadre de notre exercice.
- Cliquer sur le paramètre « network.negotiate-auth.trusted-uris ». Une boîte de dialogue permettant d'éditer les valeurs du paramètre apparaît.
- Entrer les noms de domaines et/ou préfixes d'URL voulus, puis cliquer sur OK.