Konsumentensicherheitstoken mit der WSS-API konfigurieren
Mit den APIs von Web Services Security können Sie die SOAP-Nachrichten ohne Richtliniensätze sichern. Wenn Sie das Token auf der Konsumentenseite konfigurieren möchten, verwenden Sie die Anwendungsprogrammierschnittstellen (API, Application Programming Interface) von Web Services Security (WSS-APIs). Die Konsumentensicherheitstoken gehören zum Schnittstellenpaket "com.ibm.websphere.wssecurity.wssapi.token".
Vorbereitende Schritte
Das Framework für Plug-in-Token in WebSphere Application Server wurde neu gestaltet, damit dasselbe Framework über die WSS-APIs wiederverwendet werden kann. Für die Laufzeitumgebung von Web Services Security und für den WSS-API-Anwendungscode wird dieselbe Implementierung für das Erstellen und Validieren von Sicherheitstoken verwendet. Das neu gestaltete Framework vereinfacht auch das SPI-Programmiermodell und das Hinzufügen von Sicherheitstokentypen.
Sie können die WSS-API verwenden oder die Token über die Administrationskonsole konfigurieren. Zum Konfigurieren von Token müssen Sie bei Bedarf die folgende Tokentask ausgeführt haben: Generatortoken konfigurieren.
Informationen zu diesem Vorgang
Auf der Generatorseite sind der JAAS-CallbackHandler und das JAAS-Anmeldemodul für das Erstellen des Sicherheitstokens verantwortlich. Das Token wird mit dem JAAS-Anmeldemodul erstellt, und mit dem JAAS-CallbackHandler werden die Authentifizierungsdaten übergeben. Anschließend erstellt das JAAS-Anmeldemodul das securityToken-Objekt, z. B. das UsernameToken, und übergibt es an die Laufzeitumgebung von Web Services Security.
Auf der Konsumentenseite wird das XML-Format zur Validierung und Authentifizierung an das JAAS-Anmeldemodul übergeben. Anschließend wird der JAAS-CallbackHandler verwendet, um Authentifizierungsdaten von der Laufzeitumgebung von Web Services Security an das Anmeldemodul zu übergeben. Nach der Authentifizierung des Tokens und der Erstellung des Sicherheitstokenobjekts wird das Token an die Laufzeitumgebung von Web Services Security übergeben.
Wenn die WSS-API für die Validierung des Konsumententokens verwendet wird, sind bestimmte Verhalten zu beobachten. Die WSS-API lässt sich am einfachsten über das JAAS-Standardanmeldemodul und den Callback-Handler verwenden. In dem Beispiel werden das Standardanmeldemodul und der Standard-Callback-Handler verwendet. Deshalb ist in dem Beispiel der Name des JAAS-Anmeldemoduls nicht angegeben.
Die API WSS lässt sich am einfachsten über den Einsatz des Standardverhaltens verwenden (siehe Beispielcode). Die WSS-API stellt Standardeinstellungen für den Tokentyp, den Tokenwert und den JAAS-Konfigurationsnamen bereit. Im Folgenden sind die Standardverhalten für Token beschrieben:
Entscheidungen bzgl. Konsumententoken | Standardverhalten |
---|---|
Zu verwendender Tokentyp | Der Tokentyp gibt an, welcher Typ von Token für die Signatur und Validierung von Nachrichten verwendet werden soll. Standardmäßig wird ein X.509-Token verwendet. WebSphere Application Server stellt die folgenden vorkonfigurierten Typen von Konsumententoken bereit:
Bei Bedarf können Sie aus angepasste Tokentypen erstellen: |
Anzugebender Name für die JAAS-Anmeldekonfiguration | Der Name für die JAAS-Anmeldekonfiguration gibt an, welche JAAS-Anmeldekonfiguration verwendet werden soll. |
Zu verwendender Konfigurationstyp | Der Konfigurationstyp des JAAS-Anmeldemoduls. Für Konsumententoken können nur vorkonfigurierte Konsumentenkonfigurationstypen verwendet werden. |
Die SecurityToken-Klasse (com.ibm.websphere.wssecurity.wssapi.token.SecurityToken) ist die generische Tokenklasse und stellt das Sicherheitstoken dar, das Methoden für das Abrufen der Identität, des XML-Formats und der Chiffrierschlüssel enthält. Mit der SecurityToken-Klasse können Sie Signatur und Verschlüsselung auf die SOAP-Nachricht anwenden. Wenn Sie beides anwenden möchten, müssen Sie jedoch zwei SecurityToken-Objekte haben, eines für die Signatur und eines für die Verschlüsselung.
Die folgenden Tokentypen sind Unterklassen der generischen Sicherheitstokenklasse:
Tokentyp | Name der JAAS-Anmeldekonfiguration |
---|---|
Sicherheitskontexttoken | system.wss.consume.sct |
Abgeleitetes Schlüsseltoken | system.wss.consume.dkt |
Die folgenden Tokentypen sind Unterklassen der binären Sicherheitstokenklasse:
Tokentyp | Name der JAAS-Anmeldekonfiguration |
---|---|
X.509-Token | system.wss.consume.x509 |
X.509-PKIPath-Token | system.wss.consume.pkiPath |
X.509-PKCS7-Token | system.wss.consume.pkcs7 |
- Für jede JAAS-Anmeldekonfiguration auf Tokenkonsumentenseite gibt es eine entsprechende Konfiguration auf Tokengeneratorseite. Für das X509Token lautet der Name der Tokengeneratorkonfiguration beispielsweise system.wss.generate.x509.
- Die LTPA- und LTPA-Weitergabetoken sind nur für einen Anforderer verfügbar, der als serverbasierter Client ausgeführt wird. Die LTPA-Token und LTPA-Weitergabetoken werden für Anwendungsclients des Typs Java™ SE 6 und Java EE nicht unterstützt.
Zum Validieren des X509Token für die SOAP-Nachricht auf Konsumentenseite muss das Element <X509Token> im Element <wsse:Security> enthalten sein.
Vorgehensweise
Ergebnisse
Beispiel
Der folgende WSS-API-Beispielcode veranschaulicht die Entschlüsselung mit dem JAAS-Standardanmeldemodul und dem Standard-Callback-Handler:
// Nachrichtenkontext abrufen
Object msgcontext = getMessageContext();
// WSSFactory-Instanz erstellen (Schritt a)
WSSFactory factory = WSSFactory.getInstance();
// WSSConsumingContext-Instanz generieren (Schritt b)
WSSConsumingContext gencont = factory.newWSSConsumingContext();
// Callback-Handler generieren (Schritt c)
X509ConsumeCallbackHandler callbackHandler = new
X509ConsumeCallbackHandler(
"",
"enc-sender.jceks",
"jceks",
"storepass".toCharArray(),
"alice",
"keypass".toCharArray(),
"CN=Alice, O=IBM, C=US");
// WSSDecryption-Instanz generieren (Schritt d)
WSSDecryption dec = factory.newWSSDecryption(X509Token.class,
callbackHandler);
// WSSDecryption zu WSSConsumingContext hinzufügen (Schritt e)
concont.add(dec);
// WS-Security-Header validieren (Schritt f)
concont.process(msgcontext);
Nächste Schritte
Konfigurieren Sie für jeden Tokentyp das Token mit den WSS-APIs oder über die Administrationskonsole. Geben Sie als Nächstes ähnliche Generatortoken an, sofern Sie dies noch nicht getan haben.
Wenn die Generator- und Konsumententoken beide konfiguriert sind, fahren Sie mit der Sicherung der SOAP-Nachrichten auf Antwortkonsumentenseite über die WSS-APIs fort, oder konfigurieren Sie die Token über die Administrationskonsole.
Wenn die Generator- und Konsumententoken beide konfiguriert sind, fahren Sie mit dem Sichern der SOAP-Nachrichten durch Überprüfen der Signatur oder Entschlüsselung der Nachrichten fort. Sie können zum Sichern der SOAP-Nachrichten die WSS-APIs oder die Administrationskonsole verwenden.