Kerberos-Authentifizierung, Service-Host und Zugriff auf KDC

10

Ich habe eine Webanwendung (Hostname: service.domain.com) und möchte die Kerberos-Authentifizierung verwenden, um Benutzer zu identifizieren, die bei einer Windows-Domäne angemeldet sind. Microsoft AD (Windows Server 2008 R2) stellt den Kerberos-Dienst bereit.

Der Dienst ist eine Java-Webanwendung, die die Spring Security Kerberos-Erweiterungsbibliothek zum Implementieren des SPNEGO / Kerberos-Protokolls verwendet. Ich habe in AD eine Keytab-Datei erstellt, die ein gemeinsames Geheimnis enthält, das ausreichen sollte, um Kerberos-Tickets zu authentifizieren, die von den Client-Browsern mithilfe der Webanwendung gesendet werden.

Meine Frage ist, ob für den Service-Host (service.domain.com) ein Firewall-Zugriff (TCP / UDP 88) auf KDC (kdc.domain.com) erforderlich ist oder ob die Keytab-Datei ausreicht, damit der Service-Host die Daten entschlüsseln kann Kerberos-Tickets und Authentifizierung bereitstellen?

StrangeLoop
quelle
Der Dienst benötigt in Ihrem Setup keinen Zugriff auf das KDC. Die Kunden tun es absolut.
Jouell

Antworten:

11

Der Dienst muss nie mit dem KDC sprechen . Es benötigt eine vom KDC generierte Keytab, die Sie jedoch nach Belieben kopieren können. Sie müssen nie miteinander reden.

Eine übermäßig vereinfachte Version dessen, was meiner Meinung nach weitergeht, sieht mehr oder weniger so aus:

Einrichten des Dienstes

  • KDC generiert eine Service- Keytab (die so etwas wie ein geheimer Schlüssel / Passwort ist, wenn Sie möchten ).
  • Dieses Keytab wird dem Dienst auf irgendeine Weise zur Verfügung gestellt ( scpoder auf einem USB-Stick mitgeführt, wenn Sie möchten).

Client, der eine Verbindung zum Dienst herstellt

  • Client fordert einen Dienst - Ticket von der KDC
  • KDC erzeugt ein Service - Ticket , das einige Informationen enthält , die nur durch den Dienst entschlüsselt werden kann keytab (dies ist die Datei , die auf Ihrem Server befindet)
  • Client sendet seine Service - Ticket an den Service
  • Der Dienst verwendet sein Keytab , um das Ticket zu überprüfen (keine Netzwerkkommunikation erforderlich).
Chutz
quelle
Vielen Dank, so habe ich es auch aus dem Kerberos-Wikipedia-Artikel verstanden. Diese Frage scheint eine widersprüchliche Antwort zu haben: Kerberos-Authentifizierung für Webserver
StrangeLoop
Nun, ich weiß nicht, was in dieser anderen Antwort passiert ist, aber ich habe einen sehr entfernten SSH-Server, der die Kerberos-basierte Authentifizierung durchführt, und er hat sicherlich keinen Zugriff auf das KDC, das sich in meinem privaten LAN zu Hause befindet. Könnte mit Webservern etwas Seltsames los sein? Vielleicht, aber ich bezweifle es sehr.
Chutz