Dieser Artikel beschreibt, wie Sie eine eigene Weitergabetokenimplementierung erstellen, die im aktiven
Thread definiert und
downstream weitergegeben wird.
Informationen zu diesem Vorgang
Für die Weitergabe von Attributen, die nicht benutzerspezifisch sind, ist das Standardweitergabetoken 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, indem Sie in die Anmeldekonfigurationen des Systems für eingehende Daten
ein angepasstes Anmeldemodul integrieren. Diese Task kann auch eine Verschlüsselung und Entschlüsselung erfordern.
Führen Sie die folgenden Schritte aus, um ein eigenes Weitergabetoken zu implementieren:
- Schreiben Sie eine eigene Implementierung der Schnittstelle "PropagationToken". Es gibt viele verschiedene Möglichkeiten, die Schnittstelle "PropagationToken" zu implementieren.
Stellen Sie in jedem Fall
sicher, dass die für die Schnittstelle "PropagationToken" 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 Servercode erforderlichen Berechtigungen
hat.
Stellen Sie die Klasse dieser 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
Weitergabetoken, können die abstrakte Klasse erweitern, sodass kaum weitere Schritte erforderlich sind.
Ein Beispiel für
die
Implementierung des Weitergabetokens finden Sie im Artikel Beispiel: Implementierung von com.ibm.wsspi.security.token.PropagationToken.
- Fügen Sie das eigene Weitergabetoken bei WebSphere Application
Server-Anmeldungen hinzu, und empfangen Sie es. Zu diesem Zweck wird in der Regel ein angepasstes Anmeldemodul zu den verschiedenen
Anmeldekonfigurationen für Anwendungen und Systeme hinzugefügt. Sie können die Implementierung auch von einer Anwendung
aus hinzufügen. 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. Die Klasse WSSecurityPropagationHelper hat APIs, mit denen ein
Weitergabetoken im Thread definiert und für Aktualisierungen vom Thread empfangen werden kann.
Das Codebeispiel im Artikel
Beispiel: Angepasstes Anmeldemodul mit Tokenweitergabe 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 eigene
Weitergabetokenimplementierung, und definieren Sie sie im Thread. Enthält der Callback Weitergabedaten,
suchen Sie nach der TokenHolder-Instanz für Ihr Weitergabetoken, konvertieren Sie das Byte-Array zurück
in Ihr angepasstes PropagationToken-Objekt, und definieren Sie es erneut im Thread. Das Codebeispiel zeigt beide
Instanzen.
Immer, wenn Ihr
eigenes Weitergabetoken zum Thread hinzugefügt wird, können Sie Attribute hinzufügen.
Falls Sie zwischen Anforderungen Attribute hinzufügen und sich die Methode getUniqueId ändert, wird die
CSIv2-Clientsitzung annulliert, damit sie die neuen Informationen an die untergeordneten Einheiten
senden kann. Das Hinzufügen von Attributen zwischen Anforderungen kann Auswirkungen auf den Durchsatz
haben. In vielen Fällen sollen die nachgeschalteten Anforderungen die Informationen zum neuen Weitergabetoken erhalten.
Rufen Sie die Methode "WSSecurityPropagationHelper.addPropagationToken" auf, um das eigene Weitergabetoken
zum Thread hinzuzufügen.
Dieser Aufruf setzt die Java-2-Sicherheitsberechtigung "WebSphereRuntimePerMission" des Typs "setPropagationToken" voraus.
- Fügen Sie Ihr angepasstes Anmeldemodul zu den WebSphere Application
Server-Konfigurationen für Systemanmeldung
hinzu, die bereits das Anmeldemodul "com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule"
für den Empfang serialisierter Versionen des angepassten Weitergabetokens enthalten. Sie können dieses Anmeldemodul
auch zu den Anmeldungen der Anwendungen hinzufügen, bei denen während der Anmeldung Ihr eigenes Weitergabetoken
im Thread generiert werden soll. Alternativ dazu
können Sie die eigene PropagationToken-Implementierung innerhalb Ihrer Anwendung generieren. Zum Entserialisieren des Token
müssen Sie die Implementierung jedoch zu den Systemanmeldemodulen hinzufügen.
Wie Sie Ihr angepasstes Anmeldemodul
zu den vorhandenen Anmeldekonfigurationen hinzufügen können, erfahren Sie im Artikel Angepasste Anmeldemodule für eine Systemanmeldekonfiguration für JAAS entwickeln.