Fonctionnement de SPNEGO avec le firewall
Pour expliquer le principe de fonctionnement de SPNEGO, ce document prend l’exemple d’un utilisateur souhaitant accéder à Internet. Les différentes phases de l'authentification SPNEGO sont les suivantes :
- L’utilisateur s’authentifie sur le réseau (Domaine Microsoft Active Directory).
- Le contrôleur de domaine autorise cette authentification.
- L’utilisateur ouvre son navigateur Web pour se connecter au site Internet de son choix.
- Le proxy HTTP activé sur le firewall redirige le navigateur Web vers le portail d’authentification sur le firewall.
- Le navigateur Web se connecte de manière transparente sur le portail d’authentification du firewall en utilisant le numéro de série de ce dernier. Dans les schémas, ce numéro de série est représenté par « FW-NOMDNS ». Dans cette optique, il est nécessaire que ce « FW-NOMDNS » soit résolu par le serveur DNS configuré sur le poste client.
- Le firewall informe le navigateur Web qu’il doit lui fournir un ticket client Kerberos associé à son service (SPN).
- Le navigateur Web demande au contrôleur de domaine d’associer le ticket fourni lors de l’échange numéro 2 au service SPN du firewall. L’association est donc effectuée entre USERNAME et HTTP/FW-NOMDNS.
- Après avoir vérifié que l’utilisateur est effectivement authentifié sur le domaine, le contrôleur du domaine fournit au navigateur Web le ticket demandé. Dans les schémas, le ticket est représenté par le « SECRET » (Paire USERNAME / HTTP/FW-NOMDNS).
- Le navigateur Web transfère le nouveau ticket USERNAME / HTTP/FW-NOMDNS@Domaine au firewall qui en déchiffre le contenu grâce à une clé de chiffrement commune entre le contrôleur de domaine et le firewall (Keytab). L’utilisateur est alors authentifié pour une durée définie par l’administrateur. Dans les schémas, cette clé est représentée par « KEY ».
- Le firewall redirige le navigateur Web vers le proxy HTTP du firewall qui fournit à l’utilisateur la page Web initialement demandée.
Tous les échanges d’informations décrits dans cet exemple s’effectuent de manière transparente pour l’utilisateur. L’utilisateur n’a ni besoin de se connecter manuellement au portail d’authentification, ni de renseigner son login ou son mot de passe.
Les échanges (5) à (9) sont chiffrés : (5), (6) et (9) en SSL et les échanges (7) et (8) se font en clair avec un ticket Kerberos chiffré (le ticket Kerberos est inexploitable sans la clé de chiffrement).
Il n’y a aucune interaction directe entre le firewall et le contrôleur de domaine.
Il est impératif que les horloges du poste client, du contrôleur de domaine et du firewall soient synchronisées. En effet un écart de quelques minutes peut entraîner un échec de l'authentification.