Ce document décrit les bases de l'authentification Kerberos et les étapes de dépannage de l'authentification Kerberos dans l'appareil Web sécurisé (SWA).
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Image : Exemple de flux réseau Kerberos
Voici les étapes de base pour l'authentification dans un environnement Kerberized :
1. Le client demande un TGT au KDC.
2. Le KDC vérifie les informations d'identification de l'utilisateur de l'ordinateur client et renvoie un TGT et une clé de session chiffrés.
3. Le TGT est chiffré avec la clé secrète TGS.
4. Le client stocke le TGT et en demande automatiquement un nouveau lorsqu'il expire.
Pour accéder à un service ou à une ressource :
1. Le client envoie le TGT au TGS avec le SPN de la ressource souhaitée.
2. Le KDC vérifie le TGT et les droits d'accès de l'ordinateur client de l'utilisateur.
3. Le TGS envoie une clé de session spécifique au service au client.
4. Le client fournit la clé de session au service pour prouver l'accès, et le service accorde l'accès.

1. Le client demande l’accès à www.google.com via SWA.
2. SWA répond avec un état HTTP 407, demandant une authentification.
3. Le client demande un ticket de service au serveur AD pour le service HTTP/SWA.domain.com à l'aide du TGT qu'il obtient lors de la jonction du domaine.
4. Le serveur AD valide le client et émet un ticket de service. S'il réussit et que le SPN de SWA est trouvé, il passe à l'étape suivante.
5. Le Client envoie ce ticket à SWA.
6. Le SWA déchiffre le ticket et vérifie l'authentification.
7. Si l'authentification réussit, SWA vérifie les stratégies.
8. SWA envoie une réponse HTTP 200 OK au client si la transaction est autorisée.
Un SPN identifie de manière unique une instance de service dans l'authentification Kerberos. Il relie une instance de service à un compte de service, permettant aux clients de demander l'authentification pour le service sans le nom du compte. Chaque compte d'une implémentation KDC, comme AD ou OpenLDAP, a un SPN. Bien que le SPN identifie strictement un service, il est parfois utilisé par erreur pour faire référence au nom du client (UPN) dans des scénarios où le service agit également en tant que client.
Dans Kerberos, un SPN identifie de manière unique une instance de service dans un réseau. Il permet aux clients de demander l'authentification pour un service spécifique. Le SPN relie l'instance de service à son compte, ce qui permet à Kerberos d'authentifier et d'autoriser correctement les demandes d'accès à ce service.
1. Créez un nouveau compte utilisateur ou choisissez un compte utilisateur existant à utiliser.
2. Enregistrez le SPN à utiliser avec le compte d'utilisateur choisi.
3. Assurez-vous qu'aucun SPN en double n'est enregistré.
Conseil : En quoi Kerberos avec SWA derrière l'équilibreur de charge ou un Traffic Manager/Traffic Shaper est-il différent ?
Les Méthodes Recommandées pour la mise en oeuvre de Kerberos sont les suivantes :
Il s'agit d'une liste de commandes setspn utiles pour la gestion des SPN dans un environnement Kerberos. Ces commandes sont généralement exécutées à partir d'une interface de ligne de commande avec des privilèges d'administration dans un environnement Windows.
| Répertorier les SPN d'un compte spécifique : |
Répertorie tous les SPN enregistrés pour le compte spécifié. |
| Ajouter un SPN à un compte : |
Ajoute le SPN spécifié au compte donné. |
| Supprimer un SPN d'un compte : |
Supprime le SPN spécifié du compte donné. |
| Vérifiez si un SPN est déjà enregistré : |
Vérifie si le SPN spécifié est déjà enregistré dans le domaine. |
| Répertorier tous les SPN du domaine |
Répertorie tous les SPN du domaine. |
| Définir un SPN pour un compte d'ordinateur : |
Ajoute un SPN à un compte d'ordinateur, ce qui évite les entrées en double. |
| Réinitialiser les SPN d'un compte spécifique : |
Réinitialise les SPN du compte spécifié, ce qui permet de résoudre les problèmes de SPN en double. |
Les exemples fournis illustrent l'utilisation :
Vérifiez si le SPN est déjà associé à un compte d'utilisateur :
setspn -q <SPN>
setspn -q http/proxyha.localdomain


setspn -s <SPN> <User/computer account>
Exemple :
setspn -s http/proxyha.localdomain vrrpserviceuser

setspn -d <SPN> <User/computer account>
Exemple :
setspn -d http/proxyha.localdomain pod1234-wsa0

Assurez-vous qu'il n'y a pas de SPN dupliqués pour le nom d'hôte virtuel haute disponibilité, car des défaillances peuvent se produire ultérieurement.
setspn –x
Par conséquent, le ticket du service Kerberos n'est pas fourni au client et l'authentification Kerberos échoue.

Mise en garde : Si des doublons sont trouvés, supprimez les doublons en exécutant la commande setspn -d.
setspn –l <User/Computer account>
Exemple :
setspn –l vrrpserviceuser

Informations requises par l'assistance Cisco pour résoudre les problèmes d'authentification Kerberos :
server IP address = %k, Client IP address= %a, Auth-Mech = %m, Auth_Type= %m, Auth_group= %g, Authenticated_Username= %A, Date= %L, Transaction_ID= %I Auth response = %:<a, Auth total = %:>a;

Un cas d'erreur courant est l'échec des requêtes Web avec « Serveur introuvable dans la base de données Kerberos » :
curl -vx proxyha.local:3128 --proxy-negotiate -u: http://www.cisco.com/
* About to connect() to proxy proxyha.localdomain port 3128 (#0)
* Connected to proxyha.local (10.8.96.30) port 3128 (#0)
< HTTP/1.1 407 Proxy Authentication Required
< Via: 1.1 pod1234-wsa02.local:80 (Cisco-SWA/10.1.2-003)
< Content-Type: text/html
gss_init_sec_context() failed: : Server not found in Kerberos database
< Proxy-Authenticate: Negotiate
< Connection: close
* HTTP/1.1 proxy connection set close!
Dans ce cas, l'erreur indique que le nom principal du service correspondant à la valeur d'adresse proxy proxyha.local n'est pas inscrit sur le serveur Active Directory. Pour résoudre ce problème, il est nécessaire de confirmer que le SPN http/proxyha.local est enregistré sur AD DC et ajouté à un compte de service approprié.
| Révision | Date de publication | Commentaires |
|---|---|---|
3.0 |
22-Oct-2026
|
Mise à jour de l'orthographe, de la grammaire, de l'espacement, des lignes horizontales insérées pour séparer les sections pour la lisibilité, des URL fixes. |
2.0 |
01-Apr-2025
|
Ajout d'un texte de remplacement, d'une mise en forme et d'une ponctuation fixes, grammaire. |
1.0 |
24-Mar-2025
|
Première publication |