Dieser Artikel erläutert, wie Sie eine Implementierung für ein eigenes Berechtigungstoken (AuthorizationToken) erstellen, die
im Anmeldesubjekt definiert und an untergeordnete Einheiten weitergegeben wird.
Informationen zu diesem Vorgang
Für die Weitergabe von benutzerspezifischen Attributen ist das Standardberechtigungstoken (AuthorizationToken) normalerweise
ausreichend. 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().
Führen Sie die folgenden Schritte aus, um ein eigenes AuthorizationToken zu implementieren:
- Schreiben Sie eine eigene Implementierung der Schnittstelle "AuthorizationToken". Es gibt viele
verschiedene Möglichkeiten, die Schnittstelle "AuthorizationToken" zu implementieren. Stellen Sie in jedem Fall
sicher, dass die für die Schnittstelle "AuthorizationToken" und die Tokenschnittstelle erforderlichen
Methoden vollständig implementiert sind.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
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.
Stellen Sie die Klasse diese Schnittstelle nach der Implementierung
in das Verzeichnis Stammverzeichnis_des_Anwendungsservers/classes.
Weitere Informationen zu Klassen finden Sie im Artikel
Unterverzeichnis "classes" im Profil für angepasste Klassen erstellen.
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 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
AuthorizationToken, können die abstrakte Klasse erweitern, sodass kaum weitere Schritte erforderlich sind.
Im Artikel
Beispiel: Implementierung von com.ibm.wsspi.security.token.AuthorizationToken sehen Sie eine Implementierung des
AuthorizationToken.
- Fügen Sie das angepasste AuthorizationToken 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 ein
angepasstes Anmeldemodul
anbinden. Dieser Schritt ist im Artikel Angepasstes serialisierbares Java-Objekt für die Weitergabe von Sicherheitsattributen weitergeben beschrieben. 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 Informationen zum Subjekt 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
AuthorizationToken-Implementierung in Erwägung ziehen.
Das Codebeispiel im Artikel
Beispiel: Angepasstes Anmeldemodul AuthorizationToken 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
WSTokenHolderCallback. Enthält der Callback keine Weitergabedaten, initialisieren Sie eine neue eigene
AuthorizationToken-Implementierung, und definieren Sie sie im Subjekt. Enthält der Callback Weitergabedaten,
suchen Sie nach Ihrer spezifischen AuthorizationToken-TokenHolder-Instanz, konvertieren Sie das byte[] zurück
in Ihr angepasstes AuthorizationToken-Objekt, und definieren Sie es erneut im Subjekt. Das Codebeispiel zeigt beide
Instanzen.
In der Festschreibungsphase des Anmeldemoduls
können Sie für Ihr AuthorizationToken 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 WebSphere Application Server-Konfigurationen für Systemanmeldung
hinzu, die bereits "com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule"
für den Empfang serialisierter Versionen Ihres angepassten Berechtigungstokens enthalten.
Da sich dieses Anmeldemodul auf Informationen im sharedState verlassen muss, die von
"com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule" hinzugefügt wurden, sollten Sie dieses Anmeldemodul
nach "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".