Zum Sichern von Web-Services können Sie auf Nachrichtenebene
einen WS-Security-Richtliniensatz und die zugehörigen Bindungen
für ein eigenständiges Sicherheitstoken konfigurieren. Dieses eigenständige Sicherheitstoken kann ein LTPA-Token
(Lightweight Third Party Authentication) oder ein Benutzernamenstoken sein.
Vorbereitende Schritte
Diese Task setzt voraus,
dass der Service-Provider und der Service-Client, die Sie konfigurieren,
in der Anwendung JaxWSServicesSamples enthalten sind.
Informationen dazu, wie Sie diese Anwendung erhalten und installieren, finden Sie in der Dokumentation unter "Zugriff auf die Beispiele".
Geben Sie die folgende Tracespezifikation auf Ihrem Server an, damit
Sie künftige Konfigurationsprobleme, die eventuell auftreten können, beheben können.
*=info:com.ibm.wsspi.wssecurity.*=all:com.ibm.ws.webservices.wssecurity.*=all:
com.ibm.ws.wssecurity.*=all: com.ibm.xml.soapsec.*=all: com.ibm.ws.webservices.trace.*=all:
com.ibm.ws.websvcs.trace.*=all:com.ibm.ws.wssecurity.platform.audit.*=off:
Wenn
LTPA-Token verwenden werden, müssen Sie auf den Anwendungsservern, die für den Client und den Service verwendet werden, die Anwendungssicherheit aktivieren.
Informationen zu diesem Vorgang
In diesem Artikel
wird beschrieben, wie ein WS-Security-Richtliniensatz und Providerbindungen für ein Benutzernamenstoken oder ein LTPA-Token konfiguriert werden.
Aus Gründen der Vereinfachung werden
in dieser Prozedur die Zeitmarke, digitale Signatur und Verschlüsselung aus der Richtlinie entfernt.
Sie sollten diese Attribute jedoch
in Ihre endgültige Konfiguration aufnehmen.
Weitere Informationen finden Sie in der Dokumentation, die beschreibt, wie Sie einen Richtliniensatz und Bindungen für
die asymmetrische digitale XML-Signatur und/oder XML-Verschlüsselung mit client- und provideranwendungsspezifischen Bindungen konfigurieren.
In dieser Task werden
für die Provideranwendung allgemeine Standardproviderbindungen zum Konsumieren der Token
verwendet.
Wenn eine Caller-Konfiguration erforderlich ist, wird für den Provider eine anwendungsspezifische Bindung hinzugefügt.
Vorgehensweise
- Erstellen Sie den angepassten Richtliniensatz.
- Klicken Sie in der Administrationskonsole auf Services > Richtliniensätze > Anwendungsrichtliniensätze.
- Klicken Sie auf Neu.
- Geben Sie Name = OneTokenPolicy an.
- Klicken Sie auf Anwenden.
- Klicken Sie unter Richtlinien auf Hinzufügen > WS-Security.
- Bearbeiten Sie den angepassten Richtliniensatz.
- Entfernen Sie die digitale Signatur, Verschlüsselung und Zeitmarke.
- Klicken Sie in der Administrationskonsole auf WS-Security > Hauptrichtlinie.
- Wählen Sie den Zugriffsschutz auf Nachrichtenebene ab.
- Klicken Sie auf Anwenden.
- Fügen Sie das Benutzernamenstoken oder das LTPA-Token hinzu.
- Klicken Sie unter
Richtliniendetails auf Richtlinien für Anforderungstoken.
- Wählen Sie Tokentyp hinzufügen aus.
- Wenn Sie ein Benutzernamenstoken verwenden möchten, wählen Sie
UserName aus.
Wenn Sie ein LTPA-Token verwenden möchten, wählen Sie
LTPA aus.
Token
name=myToken.
- Klicken Sie auf OK.
- Konfigurieren Sie den Client für die Verwendung des Richtliniensatzes OneTokenPolicy.
- Klicken Sie in der Administrationskonsole auf Anwendungen > Anwendungstypen > WebSphere-Unternehmensanwendungen >JaxWSServicesSamples>
Richtliniensätze und Bindungen für Service-Clients.
- Wählen Sie die Web-Service-Clientressource aus.
- Klicken Sie auf Richtliniensatz zuordnen.
- Wählen Sie OneTokenPolicy aus.
- Erstellen Sie eine angepasste Bindung für den Client.
- Wählen Sie die Web-Service-Ressource erneut aus.
- Klicken Sie auf Bindung zuweisen.
- Klicken Sie auf Neue anwendungsspezifische Bindung, um eine anwendungsspezifische
Bindung zu erstellen.
- Geben Sie den Namen der Bindungskonfiguration an. Name:
oneTokenClientBinding
- Klicken Sie auf Hinzufügen > WS-Security.
- Wenn die Anzeige
Hauptrichtlinienbindungen für Nachrichtensicherheit nicht erscheint, wählen Sie
WS-Security aus.
- Bearbeiten Sie die angepasste Bindung für den Client.
- Klicken Sie auf Authentifizierung und Zugriffsschutz.
- Bearbeiten Sie den Identitätstokengenerator, sodass er den Benutzernamen der Identität sendet.
- Klicken Sie auf request:myToken.
- Klicken Sie auf Anwenden.
- Klicken Sie auf Callback-Handler.Benutzername=(IhreBenutzer-ID) Kennwort=(IhrKennwort)
Fehler vermeiden: Diese Angaben sind ein Benutzername und ein Kennwort, die in der Benutzerregistry auf dem Provider-System gültig sind.
Wenn Sie LTPA-Token verwenden, müssen Benutzername und Kennwort sowohl in der Registry des Konsumenten als auch in der Registry des Providers gültig sein.
gotcha
- (Optional) Wenn Sie ein Benutzernamenstoken konfigurieren, fügen Sie die folgenden angepassten
WS-Security-Eigenschaften hinzu:
*com.ibm.wsspi.wssecurity.token.username.addNonce=true
*com.ibm.wsspi.wssecurity.token.username.addTimestamp=true
Diese angepassten
Eigenschaften wurden hinzugefügt, weil sie in den allgemeinen Standardbindungen für den Benutzernamenstokenkonsumenten angegeben sind.
Werden diese Eigenschaften hier nicht angegeben, müssen Sie diese Eigenschaften entweder aus den allgemeinen Standardproviderbindungen
entfernen oder für den Provider anwendungsspezifische Bindungen ohne diese Eigenschaften erstellen.
- Klicken Sie auf OK.
- Klicken Sie auf Speichern.
- Konfigurieren Sie den Provider für die Verwendung des Richtliniensatzes
OneTokenPolicy.
- Klicken Sie in der Administrationskonsole auf
Anwendungen
> Anwendungstypen > WebSphere-Unternehmensanwendungen > JaxWSServicesSamples
> Richtliniensätze und Bindungen für Service-Provider.
- Wählen Sie die Web-Service-Provider-Ressource (OneTokenPolicy) aus.
- Klicken Sie auf Richtliniensatz zuordnen.
- Wählen Sie OneTokenPolicy aus.
Anmerkung: Weil der Provideranwendung keine Bindungen zugeordnet sind,
verwendet sie die allgemeinen Standardproviderbindungen für die Tokenkonsumenten.
- (Optional) Wenn Sie eine Caller-Konfiguration für den Provider erstellen möchten, erstellen Sie für den Provider angepasste Bindungen.
- Wählen Sie die Web-Service-Provider-Ressource erneut aus.
- Klicken Sie auf Bindung zuweisen.
- Klicken Sie auf Neue anwendungsspezifische Bindung, um eine anwendungsspezifische
Bindung zu erstellen.
- Geben Sie "Name der
Bindungskonfiguration:oneTokenProvBinding" an.
- Klicken Sie auf Hinzufügen > WS-Security.
- Wenn die Anzeige
Hauptrichtlinienbindungen für Nachrichtensicherheit nicht erscheint, wählen Sie
WS-Security aus.
- (Optional) Wenn eine Caller-Konfiguration erstellt werden soll,
bearbeiten Sie die angepassten Bindungen für
den Provider.
- Klicken Sie auf Caller > Neu. Name:
myCaller.
- Wenn Sie ein Benutzernamenstoken verwenden, geben Sie Folgendes ein:
- Lokaler Abschnitt der Caller-Identität: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken
- Wenn Sie ein LTPA-Token verwenden, geben Sie Folgendes ein:
- Lokaler Abschnitt der Caller-Identität: LTPAv2
- Namespace-URI der Caller-Identität: http://www.ibm.com/websphere/appserver/tokentype
- Klicken Sie auf OK.
- Klicken Sie auf Speichern, um die Konfigurationsänderungen zu speichern.
- Starten Sie den Client und den Provider erneut.
- Stoppen Sie den Client und den Provider.
- Starten Sie den Client und den Provider erneut.
- Testen Sie den Service.
- Rufen Sie in Ihrem Web-Browser "JaxWSServicesSamples" auf: http://localhost:9080/wssamplesei/demo
Fehler vermeiden: Achten Sie darauf, den richtigen Hostnamen und Port anzugeben,
falls sich ihr Profil nicht auf derselben Maschine befindet oder ein anderer Port als 9080 verwendet wird.
gotcha
- Wählen Sie Message Type Synchronous Echo aus.
- Stellen Sie sicher, dass Use SOAP 1.2 nicht ausgewählt ist.
- Geben Sie eine Nachricht ein und klicken Sie auf
Send Message. Die Beispielanwendung sollte als Antwort "JAXWS==>Message" zurückgeben.
Ergebnisse
Die Web-Service-Anwendung JaxWSServicesSamples wurde so konfiguriert, dass
sie ein Benutzernamenstoken oder ein LTPA-Token in der Anforderungsnachricht generiert und konsumiert.