Dieser Abschnitt erläutert das Erstellen einer eigenen Authentifizierungstokenimplementierung, die
im Anmeldesubjekt definiert und an untergeordnete Einheiten weitergegeben wird.
Informationen zu diesem Vorgang
Mit dieser Implementierung können Sie ein Authentifizierungstoken angeben, das von einem angepassten Anmeldemodul oder einer
angepassten Anwendung verwendet werden kann. Falls Sie eine der folgenden Tasks ausführen möchten, sollten Sie das Schreiben einer eigenen Implementierung
in Erwägung ziehen:
- Eingrenzen Ihrer Attribute auf Ihre eigene Implementierung
- Angepasste Serialisierung der Informationen. Sie müssen die Bytes am Ziel entserialisieren und diese Informationen
wieder zum Thread hinzufügen. Diese Task kann auch eine Verschlüsselung und Entschlüsselung erfordern.
- Sicherstellen der Eindeutigkeit des Subjekts mit der API getUniqueID.
Wichtig: In
WebSphere Application Server werden von der Sicherheitslaufzeit keine angepassten Implementierungen von Authentifizierungstoken
verwendet, um die Authentifizierung umzusetzen.
Ein solches Token
wird von der WebSphere Application Server-Sicherheitslaufzeit nur in den folgenden Situationen verwendet:
- Aufruf der Methode "getBytes" für die Serialisierung
- Aufruf der Methode "getForwardable", um festzustellen, ob das
Authentifizierungstoken serialisiert werden soll
- Aufruf der Methode "getUniqueId" für die Eindeutigkeit
- Aufruf der Methoden "getName" und "getVersion" für das Hinzufügen serialisierter Bytes zum Tokeninhaber, der an nachgeschaltete Server gesendet wird
Alle weiteren Verwendungsmöglichkeiten sind angepasste Implementierungen.
Führen Sie die
folgenden Schritte aus, um ein angepasstes Authentifizierungstoken zu implementieren:
- Schreiben Sie eine angepasste Implementierung der Schnittstelle "AuthenticationToken". Es gibt viele verschiedene Möglichkeiten, die Schnittstelle AuthenticationToken zu implementieren. Stellen Sie in jedem Fall
sicher, dass die für die Schnittstelle "AuthenticationToken" und die Tokenschnittstelle erforderlichen
Methoden vollständig implementiert sind. Stellen Sie diese Schnittstelle nach der Implementierung
in das Verzeichnis Stammverzeichnis_des_Anwendungsservers/classes.
Alternativ können Sie die Klasse in jedes private Verzeichnis stellen. Vergewissern Sie sich jedoch,
dass das Klassenladeprogramm von WebSphere Application Server die Klasse finden kann und die entsprechenden Berechtigungen
hat. Sie können die JAR-Datei oder das Verzeichnis mit dieser Klasse in die
Datei server.policy aufnehmen, damit die Klasse die für den Server-Code erforderlichen Berechtigungen
hat.
Tipp: Alle vom Framework für Weitergabe definierten Tokentypen haben ähnliche
Schnittstellen. Im Wesentlichen sind die Tokentypen
Markierungsschnittstellen, die die Schnittstelle "com.ibm.wsspi.security.token.Token"
implementieren. Diese Schnittstelle definiert die meisten der Methoden.
Falls Sie mehrere Tokentypen implementieren möchten, sollten
Sie eine abstrakte Klasse erstellen, die die Schnittstelle
"com.ibm.wsspi.security.token.Token" implementiert. Alle Ihre Tokenimplementierungen, einschließlich der Implementierung des
Authentifizierungstoken, können die abstrakte Klasse erweitern, sodass kaum weitere Schritte erforderlich sind.
Ein Beispiel für die
Implementierung des Authentifizierungstoken finden Sie im Artikel Beispiel: Implementierung von com.ibm.wsspi.security.token.AuthenticationToken.
- Fügen Sie das angepasste Authentifizierungstoken bei WebSphere Application
Server-Anmeldungen hinzu und rufen Sie es ab. Zu diesem Zweck wird in der Regel ein angepasstes Anmeldemodul zu den verschiedenen
Anmeldekonfigurationen für Anwendungen und Systeme hinzugefügt. Zum Entserialisieren der Informationen müssen Sie jedoch ein angepasstes Anmeldemodul
einsetzen. Nachdem im Anmeldemodul eine Instanz des Objekts erstellt wurde, können Sie das Objekt während der Methode
"commit" zum Subjekt hinzufügen.
Falls Sie nur Informationen zum Subject hinzufügen möchten, damit diese
weitergegeben werden, lesen Sie den Artikel Angepasstes serialisierbares Java-Objekt für die Weitergabe von Sicherheitsattributen weitergeben. Wenn Sie sicherstellen möchten, dass die Informationen weitergegeben werden, eine angepasste
Serialisierung durchführen möchten oder die Eindeutigkeit für das Zwischenspeichern des Subjekts angeben möchten,
sollten Sie eine eigene
Authentifizierungstokenimplementierung in Erwägung ziehen.
Das Codebeispiel im Artikel
Beispiel: Angepasstes Anmeldemodul mit Authentifizierungstoken zeigt, wie Sie feststellen können, ob es sich bei der Anmeldung um eine
Erstanmeldung oder eine weitergegebene Anmeldung handelt. Diese Anmeldetypen unterscheiden sich durch das Vorhandensein bzw. Nichtvorhandensein
von Weitergabedaten im Callback WSTokenHolderCallback. Enthält der Callback keine Weitergabedaten, initialisieren Sie eine neue angepasste
Authentifizierungstokenimplementierung, und definieren Sie sie im Subjekt. Enthält der Callback Weitergabedaten,
suchen Sie die TokenHolder-Instanz für Ihr Authentifizierungstoken, konvertieren Sie das Byte-Array zurück
in Ihr angepasstes AuthenticationToken-Objekt, und definieren Sie es erneut im Subjekt.
Das Codebeispiel zeigt beide
Instanzen.
In der Festschreibungsphase des Anmeldemoduls
können Sie für Ihr Authentifizierungstoken den Schreibschutz festlegen. Ist das Token nicht schreibgeschützt, können in Ihren Anwendungen Attribute
hinzugefügt werden.
- Fügen Sie Ihr angepasstes Anmeldemodul zu den WAS-Konfigurationen für Systemanmeldung
hinzu, die bereits das Anmeldemodul "com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule"
für den Empfang serialisierter Versionen Ihres angepassten Authentifizierungstokens enthalten.
Da sich dieses Anmeldemodul auf Informationen im gemeinsam genutzten Status
verlassen muss, die vom Anmeldemodul "com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule" hinzugefügt wurden, sollten Sie dieses Anmeldemodul
hinter dem Anmeldemodul "com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule" hinzufügen.
Informationen zu den Aktionen während der Initialisierung, Anmeldung
und Festschreibung finden Sie unter "Angepasste Anmeldemodule für eine Systemanmeldekonfiguration
für JAAS entwickeln".