Sun Java Enterprise System 2005Q4 Technischer Überblick

Authentifizierung und Single Sign-On

Die Authentifizierungs- und Autorisierungsdienste von Java ES werden durch Access Manager bereitgestellt. Access Manager verwendet Informationen aus Directory Server, um als Broker für die Interaktion von Benutzern mit Java ES-Webdiensten und anderen webbasierten Diensten in einem Unternehmen zu fungieren.

Access Manager verwendet außerdem eine externe Komponente, den so genannten Richtlinienagenten. Der Richtlinienagent stellt eine Verbindung zu dem Webserver her, der als Host für einen Dienst bzw. eine Ressource fungiert, die durch Access Manager gesichert ist. Der Richtlinienagent schaltet sich bei Anforderungen des Benutzers an die gesicherten Ressourcen im Namen von Access Manager ein. Für einige Java ES-Komponenten, wie Portal Server und Communications Express, werden die Funktionen des Richtlinienagenten von einer Access Manager-Unterkomponente bereitgestellt (siehe Sun Java System Access Manager 7 2005Q4).

Authentifizierung

Access Manager beinhaltet einen Authentifizierungsdienst zur Überprüfung der Identitäten der Benutzer, die (über HTTP oder HTTPS) Zugriff auf Webdienste innerhalb eines Unternehmens anfordern. Beispiel: Ein Firmenangestellter, der die Telefonnummer eines Kollegen nachschlagen muss, verwendet einen Browser, um zum Online-Telefonbuch des Unternehmens zu gelangen. Um sich beim Telefonbuchdienst anzumelden, muss der Benutzer eine Benutzer-ID und ein Passwort angeben.

Die Authentifzierungssequenz ist in Abbildung 3–2 dargestellt. Ein Richtlinienagent schaltet sich in die Anfrage, die eine Anmeldung beim Telefonbuch enthält, ein (1) und schickt eine Anfrage an den Authentifizierungsdienst (2). Der Authentifizierungsdienst prüft die Benutzer-ID und das Kennwort anhand der in Directory Server speicherten Informationen (3). Wenn die Anmeldeanforderung gültig ist, wird der Benutzer authentifiziert (4, 5 und 6) und dem Mitarbeiter wird das Firmentelefonbuch angezeigt (7). Wenn die Anmeldeanforderung nicht gültig ist, wird eine Fehlermeldung generiert und die Authentifizierung schlägt fehl.

Der Authentifizierungsdienst unterstützt auch zertifikatbasierte Authentifizierungen über HTTPS.

Abbildung 3–2 Authentifizierungssequenz

Diagramm mit der Authentifizierungssequenz. Beteiligt sind Webbrowser, Richtlinienagent, Authentifizierungsdienst, Sitzungsdienst und Directory Server.

Single Sign-On

In dem in den vorherigen Abschnitten beschriebenen Authentifizierungsszenario fehlt ein wichtiger Schritt. Wenn die Authentifizierungsanfrage eines Benutzers überprüft ist, wird der Sitzungsdienst von Access Manager aufgerufen (4), wie in Abbildung 3–2 dargestellt. Der Sitzungsdienst erstellt ein Sitzungs-Token, das Identitätsinformationen des Benutzers und eine Token-ID enthält (5). Das Sitzungs-Token wird an den Richtlinienagenten zurückgesendet (6), der es (als Cookie) an den Browser weiterleitet (7), von dem die Authentifizierungsanforderung ausging.

Wenn der authentifizierte Benutzer versucht, auf einen anderen gesicherten Dienst zuzugreifen, leitet der Browser das Sitzungs-Token an den entsprechenden Richtlinienagenten weiter. Der Richtlinienagent überprüft mit dem Sitzungsdienst, ob die frühere Authentifizierung des Benutzers noch gültig ist, und der Benutzer erhält Zugriff auf den zweiten Dienst, ohne dass er noch einmal eine Benutzer-ID und ein Passwort eingeben muss.

Ein Benutzer muss sich daher nur ein einziges Mal anmelden, um bei mehreren von Java Enterprise System bereitgestellten webbasierten Diensten authentifiziert zu werden. Die Single Sign-On-Authentifizierung bleibt gültig, bis sich der Benutzer explizit abmeldet oder die Sitzung abläuft.