Wie Citrix ADC Kerberos für die Clientauthentifizierung implementiert
Wichtig
Die Kerberos/NTLM-Authentifizierung wird nur in der NetScaler 9.3 nCore-Version oder höher unterstützt und kann nur für die Authentifizierung, Autorisierung und Überwachung virtueller Server für das Verkehrsmanagement verwendet werden.
Citrix ADC behandelt die an der Kerberos-Authentifizierung beteiligten Komponenten wie folgt:
Wichtiges Vertriebszentrum (KDC)
In den Versionen von Windows 2000 Server oder höheren Versionen sind der Domänencontroller und das KDC Teil des Windows Server. Wenn der Windows Server in Betrieb ist und läuft, bedeutet dies, dass der Domänencontroller und das KDC konfiguriert sind. Das KDC ist auch der Active Directory-Server.
Hinweis
Alle Kerberos-Interaktionen werden mit dem Windows-Kerberos-Domänencontroller validiert.
Authentifizierungsservice und Protokollverhandlung
Eine Citrix ADC Appliance unterstützt die Kerberos-Authentifizierung auf den virtuellen Authentifizierungs-, Autorisierungs- und Auditing-Authentifizierungsservern für das Verkehrsmanagement. Wenn die Kerberos-Authentifizierung fehlschlägt, verwendet der Citrix ADC die NTLM-Authentifizierung.
Standardmäßig verwenden Windows 2000 Server und neuere Windows Server-Versionen Kerberos für die Authentifizierung, Autorisierung und Überwachung. Wenn Sie eine Authentifizierungsrichtlinie mit NEGOTIATE als Authentifizierungstyp erstellen, versucht Citrix ADC, das Kerberos-Protokoll für Authentifizierung, Autorisierung und Prüfung zu verwenden. Wenn der Browser des Clients kein Kerberos-Ticket empfängt, verwendet der Citrix ADC die NTLM-Authentifizierung. Dieser Prozess wird als Verhandlung bezeichnet.
In einem der folgenden Fälle kann es vorkommen, dass der Client kein Kerberos-Ticket erhält:
- Kerberos wird auf dem Client nicht unterstützt.
- Kerberos ist auf dem Client nicht aktiviert.
- Der Client befindet sich in einer anderen Domäne als der des KDC.
- Das Access Directory auf dem KDC ist für den Client nicht zugänglich.
Für die Kerberos/NTLM-Authentifizierung verwendet der Citrix ADC nicht die Daten, die lokal auf der Citrix ADC Appliance vorhanden sind.
Autorisierung
Der virtuelle Server für das Verkehrsmanagement kann ein virtueller Lastausgleichsserver oder ein virtueller Content-Switching-Server sein.
Auditing
Die Citrix ADC Appliance unterstützt die Prüfung der Kerberos-Authentifizierung mit der folgenden Auditprotokollierung:
- Vollständiges Prüfprotokoll der Aktivitäten der Endnutzer im Verkehrsmanagement
- SYSLOG und leistungsstarkes TCP-Logging
- Vollständiges Prüfprotokoll der Systemadministratoren
- Alle Systemereignisse
- Skriptfähiges Protokollformat
Unterstützte Umgebung
Die Kerberos-Authentifizierung benötigt keine spezielle Umgebung auf dem Citrix ADC. Der Client (Browser) muss die Kerberos-Authentifizierung unterstützen.
Hohe Verfügbarkeit
In einem Hochverfügbarkeits-Setup tritt nur der aktive Citrix ADC der Domäne bei. Im Falle eines Failovers verbindet der Citrix ADC lwagent Daemon die sekundäre Citrix ADC Appliance mit der Domäne. Für diese Funktion ist keine spezielle Konfiguration erforderlich.
Kerberos-Authentifizierungsprozess
Die folgende Abbildung zeigt einen typischen Prozess für die Kerberos-Authentifizierung in der Citrix ADC-Umgebung.
Abbildung 1. Kerberos-Authentifizierungsprozess auf Citrix ADC
Die Kerberos-Authentifizierung erfolgt in den folgenden Phasen:
Der Client authentifiziert sich beim KDC
- Die Citrix ADC Appliance empfängt eine Anfrage von einem Client.
- Der virtuelle Server für das Verkehrsmanagement (Load Balancing oder Content Switching) auf der Citrix ADC Appliance sendet eine Herausforderung an den Client.
- Um auf die Herausforderung zu antworten, erhält der Kunde ein Kerberos-Ticket.
- Der Client sendet dem Authentifizierungsserver des KDC eine Anfrage für ein Ticket zur Ticketgewährung (TGT) und empfängt das TGT. (Siehe 3, 4 in der Abbildung, Kerberos-Authentifizierungsprozess.)
- Der Client sendet das TGT an den Ticket Granting Server des KDC und erhält ein Kerberos-Ticket. (Siehe 5, 6 in der Abbildung, Kerberos-Authentifizierungsprozess.)
Hinweis
Der obige Authentifizierungsprozess ist nicht erforderlich, wenn der Client bereits über ein Kerberos-Ticket verfügt, dessen Gültigkeitsdauer noch nicht abgelaufen ist. Darüber hinaus erhalten Clients wie Web Services, .NET oder J2EE, die SPNEGO unterstützen, ein Kerberos-Ticket für den Zielserver, erstellen ein SPNEGO-Token und fügen das Token in den HTTP-Header ein, wenn sie eine HTTP-Anfrage senden. Sie durchlaufen den Client-Authentifizierungsprozess nicht.
Der Kunde fordert einen Service an.
- Der Client sendet das Kerberos-Ticket, das das SPNEGO-Token und die HTTP-Anfrage enthält, an den virtuellen Traffic Management-Server auf dem Citrix ADC. Das SPNEGO-Token verfügt über die notwendigen GSSAPI-Daten.
- Die Citrix ADC Appliance richtet einen Sicherheitskontext zwischen dem Client und dem Citrix ADC ein. Wenn der Citrix ADC die im Kerberos-Ticket angegebenen Daten nicht akzeptieren kann, wird der Client aufgefordert, ein anderes Ticket zu erhalten. Dieser Zyklus wiederholt sich, bis die GSSAPI-Daten akzeptabel sind und der Sicherheitskontext eingerichtet ist. Der virtuelle Server zur Verkehrsverwaltung auf dem Citrix ADC fungiert als HTTP-Proxy zwischen dem Client und dem physischen Server.
Die Citrix ADC Appliance schließt die Authentifizierung ab.
- Nachdem der Sicherheitskontext abgeschlossen ist, validiert der virtuelle Server für das Verkehrsmanagement das SPNEGO-Token.
- Aus dem gültigen SPNEGO-Token extrahiert der virtuelle Server die Benutzer-ID und die GSS-Anmeldeinformationen und übergibt sie an den Authentifizierungsdaemon.
- Eine erfolgreiche Authentifizierung schließt die Kerberos-Authentifizierung ab.