Angepasstes Authentifizierungstoken für die Weitergabe von Sicherheitsattributen implementieren

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:

Vorgehensweise

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

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

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

Ergebnisse

Nach Ausführung dieser Schritte haben Sie ein angepasstes Authentifizierungstoken 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_custauthentimpl
Dateiname:tsec_custauthentimpl.html