In diesem Dokument werden die Grundlagen der Kerberos-Authentifizierung und die Schritte zur Fehlerbehebung bei der Kerberos-Authentifizierung in einer sicheren Webappliance (SWA) beschrieben.
Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:
Dieses Dokument ist nicht auf bestimmte Software- und Hardware-Versionen beschränkt.
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Bild: Beispiel für den Kerberos-Netzwerkfluss
Dies sind die grundlegenden Schritte für die Authentifizierung in einer Kerberized-Umgebung:
1. Der Client fordert ein TGT vom KDC an.
2. Der KDC überprüft die Anmeldeinformationen des Clientcomputerbenutzers und sendet einen verschlüsselten TGT und Sitzungsschlüssel zurück.
3. Das TGT wird mit dem geheimen TGS-Schlüssel verschlüsselt.
4. Der Client speichert das TGT und fordert automatisch ein neues an, wenn es abläuft.
Zugriff auf einen Dienst oder eine Ressource:
1. Der Client sendet das TGT zusammen mit dem SPN der gewünschten Ressource an das TGS.
2. Der KDC überprüft das TGT und die Zugriffsrechte des Client-Systems des Benutzers.
3. Das TGS sendet einen dienstspezifischen Sitzungsschlüssel an den Client.
4. Der Client stellt den Sitzungsschlüssel für den Dienst bereit, um den Zugriff zu prüfen, und der Dienst gewährt den Zugriff.

1. Der Client fordert über SWA Zugriff auf www.google.com an.
2. SWA antwortet mit einem HTTP-407-Status und bittet um Authentifizierung.
3. Der Client fordert ein Dienstticket vom AD-Server für den Dienst HTTP/SWA.domain.com mit dem TGT an, das er während des Domänenbeitritts erhält.
4. Der AD-Server validiert den Client und stellt ein Service-Ticket aus. Wenn das Ticket erfolgreich ist und der SPN der SWA gefunden wird, wird mit dem nächsten Schritt fortgefahren.
5. Der Kunde sendet dieses Ticket an SWA.
6. Der SWA entschlüsselt das Ticket und überprüft die Authentifizierung.
7. Wenn die Authentifizierung erfolgreich ist, überprüft SWA die Richtlinien.
8. SWA sendet eine HTTP 200 OK-Antwort an den Client, wenn die Transaktion zulässig ist.
Ein SPN identifiziert eine Dienstinstanz in der Kerberos-Authentifizierung eindeutig. Sie verbindet eine Dienstinstanz mit einem Dienstkonto, sodass Clients ohne den Kontonamen eine Authentifizierung für den Dienst anfordern können. Jedes Konto in einer KDC-Implementierung, z. B. AD oder OpenLDAP, verfügt über einen SPN. Während der SPN einen Service streng identifiziert, wird er manchmal fälschlicherweise verwendet, um in Szenarien, in denen der Service auch als Client agiert, auf den Client-Namen (UPN) zu verweisen.
In Kerberos identifiziert ein SPN eine Serviceinstanz innerhalb eines Netzwerks eindeutig. Es ermöglicht Clients, die Authentifizierung für einen bestimmten Dienst anzufordern. Der SPN verknüpft die Dienstinstanz mit ihrem Konto, sodass Kerberos Zugriffsanforderungen für diesen Dienst ordnungsgemäß authentifizieren und autorisieren kann.
1. Erstellen Sie ein neues Benutzerkonto, oder wählen Sie ein vorhandenes Benutzerkonto aus.
2. Registrieren Sie den SPN für das ausgewählte Benutzerkonto.
3. Stellen Sie sicher, dass keine doppelten SPNs registriert sind.
Tipp: Was ist bei Kerberos mit SWA hinter dem Load Balancer oder bei einem Traffic Manager/Traffic Shaper anders?
Best Practices für die Implementierung von Kerberos finden Sie unter:
Dies ist eine Liste nützlicher setspn-Befehle zur Verwaltung von SPNs in einer Kerberos-Umgebung. Diese Befehle werden in der Regel über eine Befehlszeilenschnittstelle mit Administratorberechtigungen in einer Windows-Umgebung ausgeführt.
| Listen Sie SPNs für ein bestimmtes Konto auf: |
Führt alle SPNs auf, die für das angegebene Konto registriert wurden. |
| Hinzufügen einer SPN zu einem Konto: |
Fügt die angegebene SPN dem angegebenen Konto hinzu. |
| SPN aus einem Konto löschen: |
Entfernt die angegebene SPN aus dem angegebenen Konto. |
| Überprüfen Sie, ob bereits ein SPN registriert wurde: |
Überprüft, ob der angegebene SPN bereits in der Domäne registriert ist. |
| Alle SPNs in der Domäne auflisten |
Führt alle SPNs in der Domäne auf. |
| Legen Sie einen SPN für ein Computerkonto fest: |
Fügt einem Computerkonto einen SPN hinzu, um sicherzustellen, dass keine doppelten Einträge vorhanden sind. |
| SPNs für ein bestimmtes Konto zurücksetzen: |
Setzt die SPNs für das angegebene Konto zurück und hilft, doppelte SPN-Probleme zu beheben. |
Die angegebenen Beispiele zeigen die Verwendung:
Überprüfen Sie, ob SPN bereits einem Benutzerkonto zugeordnet ist:
setspn -q <SPN>
setspn -q http/proxyha.localdomain


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

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

Stellen Sie sicher, dass keine doppelten SPNs für den virtuellen HA-Hostnamen vorhanden sind, da Fehler später auftreten können.
setspn –x
Daher wird das Kerberos Service-Ticket dem Client nicht bereitgestellt, und die Kerberos-Authentifizierung schlägt fehl.

Vorsicht: Wenn Duplikate gefunden werden, entfernen Sie Duplikate mit dem Befehl setspn -d.
setspn –l <User/Computer account>
Beispiele:
setspn –l vrrpserviceuser

Informationen, die der Cisco Support zur Behebung von Kerberos-Authentifizierungsproblemen benötigt:
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;

Ein häufiger Fehlerfall sind Web-Anfragen, die mit "Server nicht in Kerberos-Datenbank gefunden" fehlschlagen:
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!
In diesem Fall zeigt der Fehler an, dass der Dienstprinzipalname, der dem Proxyadressenwert proxyha.local entspricht, nicht auf dem Active Directory-Server registriert ist. Um dieses Problem zu beheben, müssen Sie überprüfen, ob der SPN http/proxyha.local im AD DC registriert und einem entsprechenden Dienstkonto hinzugefügt wurde.
| Überarbeitung | Veröffentlichungsdatum | Kommentare |
|---|---|---|
3.0 |
22-Oct-2026
|
Aktualisierte Rechtschreibung, Grammatik, Abstände, eingefügte horizontale Linien in separate Abschnitte für Lesbarkeit, feste URLs. |
2.0 |
01-Apr-2025
|
Alt-Text, feste Formatierung und Interpunktion, Grammatik hinzugefügt. |
1.0 |
24-Mar-2025
|
Erstveröffentlichung |