Angepasstes Berechtigungstoken für die Weitergabe von Sicherheitsattributen implementieren

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:

Vorgehensweise

  1. 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][z/OS]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.

    [IBM i]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.

  2. 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.

  3. 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".

Ergebnisse

Nach Ausführung dieser Schritte haben Sie ein eigenes Berechtigungstoken (AuthorizationToken) implementiert.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_custauthimpl
Dateiname:tsec_custauthimpl.html