2009-06-05 8 views
2

Ich mache die folgenden Schritte, um das Sicherheitstoken vom Browser für die Single Sign-On-Authentifizierung zu erhalten.Kerberos-Authentifizierung von meinem benutzerdefinierten Servlet?

Ich bin in der Lage, das Token von HTTP-Header zu finden. Meine Frage ist: a) Wie überprüfe ich dieses Token mit Active Directory? b) Wie finde ich den Benutzernamen von diesem Token?

Während Googeln scheint Java API Kerberos5 Login-Modul zu tun, was ich erwartet hatte. Aber fast allen Seiten fehlen einfache Beispiele.

  1. Der Web-Client greift mit einer GET-Anfrage auf eine AS-Java-Ressource zu.
  2. Der AS Java sendet einen 401-Antwortcode (nicht autorisiert) mit einer Anfrage zum Initiieren der SPNego-Authentifizierung zurück, indem der HTTP-Header "WWW-Authenticate" auf "Negotiate" gesetzt wird.
  3. Der Web-Client erkennt, dass der AS Java-Host ein Mitglied des Kerberos-Realms ist und ein Kerberos-Client/Server-Sitzungsticket für den AS Java vom KDC bezieht.
  4. Der Webclient sendet dann das Kerberos-Client/Server-Sitzungsticket an den AS Java, der als SPNego-Token im HTTP-Berechtigungsheader eingepackt ist.
  5. Das SPNegoLoginModule liest das Token aus der HTTP-Anfrage und füttert die Kerberos-Implementierung des JDK damit.
  6. Das Ergebnis ist entweder eine erfolgreiche Clientauthentifizierung oder ein Fehler, wenn die Clientanforderung zurückgewiesen wird oder ein anderer Umlauf zum KDC erforderlich ist. Im Falle eines Fehlers generiert die Kerberos-JDK-Implementierung des AS Java ein Ausgabetoken und sendet es an den Web-Client zurück. Das Ausgabetoken wird als SPNego-Token umschlossen und im HTTP-Berechtigungsheader gesendet.

Jede Hilfe wäre willkommen.

Antwort

Verwandte Themen