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.
- Der Web-Client greift mit einer GET-Anfrage auf eine AS-Java-Ressource zu.
- 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.
- 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.
- Der Webclient sendet dann das Kerberos-Client/Server-Sitzungsticket an den AS Java, der als SPNego-Token im HTTP-Berechtigungsheader eingepackt ist.
- Das SPNegoLoginModule liest das Token aus der HTTP-Anfrage und füttert die Kerberos-Implementierung des JDK damit.
- 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.