Richtliniensätze und Bindungen für die Verschlüsselung eines Benutzernamenstokens konfigurieren
Dieses Beispiel zeigt, wie der WS-Security-Richtliniensatz und die zugehörigen Bindungen auf Nachrichtenebene konfiguriert werden, um ein Benutzernamenstoken in einer JAX-WS-Anforderung zu senden und das Benutzernamenstoken durch asymmetrische Verschlüsselung zu verschlüsseln.
Vorbereitende Schritte
Informationen zu diesem Vorgang
Standardmäßig signiert der Richtliniensatz "Username WSSecurity" die WS-Addressing-Header und den Hauptteil in der Anforderung und in der Antwort und verschlüsselt Hauptteil und Signatur in der Anforderung und in der Antwort. In diesem Beispiel soll jedoch nur das Benutzernamenstoken in der Anforderung des Clients an den Service verschlüsselt werden, aber keine Abschnitte der Antwort des Service an den Client. Außerdem werden keine Abschnitte der Anforderung und der Antwort signiert. Deshalb müssen Sie den Richtliniensatz ändern und einige Abschnitte für den Nachrichtenschutz entfernen. Außerdem müssen Sie die Client- und Serverbindungen konfigurieren.
Konfigurieren Sie zuerst den Richtliniensatz, indem Sie Ihre Kopie des Standardrichtliniensatzes "Username WSSecurity" ändern.
Vorgehensweise
Nächste Schritte

- Konfigurieren Sie die Clientbindung wie folgt:
- Ordnen Sie die Richtlinie einer Serviceressource zu, und erstellen Sie eine neue Bindung für diese Ressource, die die WSSecurity-Richtlinie enthält.
- Klicken Sie in der neuen Bindung auf WSSecurity, um die Hauptanzeige für die WSSecurity-Bindung aufzurufen. Klicken Sie z. B. auf Unternehmensanwendungen > WSSampleServiceSei > Richtliniensätze und Bindungen für Service-Clients > Bindungsname > WS-Security.
- Klicken Sie auf Authentifizierung und Zugriffsschutz.
- Klicken Sie unter "Token für Zugriffsschutz" auf AsymmetricBindingRecipientEncryptionToken0 (den asymmetrischen Verschlüsselungsgenerator).
- Klicken Sie auf Anwenden.
- Klicken Sie auf Callback-Handler.
- Wählen Sie im Menü "Keystore" den Eintrag Angepasst aus.
- Klicken Sie auf Konfiguration angepasster Keystores.
- Geben Sie den Keystore-Pfad ein, z. B. ${USER_INSTALL_ROOT}/etc/ws-security/samples/enc-receiver.jceks.
- Wählen Sie JCEKS als Typ aus.
- Geben Sie in den Feldern "Kennwort" und "Kennwort bestätigen" das Kennwort ein, z. B. storepass.
- Geben Sie einen Schlüsselnamen ein. Beispiel: CN=Bob,O=IBM,C=US.
- Geben Sie einen Schlüsselalias ein, z. B. bob.
- Klicken Sie auf OK.
- Klicken Sie erneut auf OK.
- Klicken Sie noch einmal auf OK, um zur Anzeige Unternehmensanwendungen > WSSampleServicesSei > Richtliniensätze und Bindungen für Service-Clients > Bindungsname > WS-Security > Authentifizierung und Zugriffsschutz zurückzukehren.
- Als Status für AsymmetricBindingRecipientEncryptionToken0 sollte Konfiguriert angezeigt werden.
- Ändern Sie die Einstellungen für die verschlüsselten Abschnitte in der Clientbindung wie folgt:
- Klicken Sie unter "Zugriffsschutz durch Signatur und Verschlüsselung der Anforderungsnachricht" auf request:app_encparts.
- Geben Sie einen Namen ein, z. B. MyEncPart.
- Klicken Sie unter "Schlüsseldaten" auf Neu.
- Geben Sie einen Namen ein, z. B. MyEncKeyInfo.
- Klicken Sie auf OK.
- Wählen Sie im Feld "Verfügbar" MyEncKeyInfo (bzw. den Namen, den Sie für den verschlüsselten Abschnitt angegeben haben) aus, und klicken Sie auf Hinzufügen. MyEncKeyInfo wird im Feld Zugeordnet angezeigt.
- Klicken Sie auf OK, um zur Anzeige Unternehmensanwendungen > WSSampleServicesSei > Richtliniensätze und Bindungen für Service-Clients > Bindungsname > WS-Security > Authentifizierung und Zugriffsschutz zurückzukehren.
- Als Status für request:app_encparts sollte Konfiguriert angezeigt werden.
- Konfigurieren Sie die Einstellungen für das Benutzernamenstoken in der Clientbindung wie folgt:
- Klicken Sie unter "Authentifizierungstoken" auf request:myUserNameToken.
- Klicken Sie auf Anwenden.
- Klicken Sie auf Callback-Handler.
- Geben Sie den Benutzernamen an, z. B. LDAPSunuser6.
- Geben Sie das Kennwort an, und bestätigen Sie das Kennwort.
- Klicken Sie auf OK.
- Klicken Sie unter Angepasste Eigenschaften auf Neu, um die Eigenschaften für die Aktivierung von Nonce und Zeitmarke hinzuzufügen.
- Geben Sie den Eigenschaftsnamen com.ibm.wsspi.wssecurity.token.username.addNonce mit dem Eigenschaftswert true ein, um den Nonce (generierte Zufallszahl) zu aktivieren.
- Geben Sie den Eigenschaftsnamen com.ibm.wsspi.wssecurity.token.username.addTimestamp mit dem Eigenschaftswert true ein, um die Zeitmarke zu aktivieren.
- Klicken Sie erneut auf OK.
- Als Status für request:myUserNameToken sollte jetzt Konfiguriert angezeigt werden.
- Klicken Sie auf Speichern, um die Clientbindungen zu speichern.
- Konfigurieren Sie die Serverbindung wie folgt:
- Ordnen Sie die Richtlinie einer Serviceressource zu, und erstellen Sie eine neue Bindung für diese Ressource, die die WSSecurity-Richtlinie enthält.
- Klicken Sie in der neuen Bindung auf WSSecurity, um die Hauptanzeige für die WSSecurity-Bindung aufzurufen. Klicken Sie z. B. auf Unternehmensanwendungen > WSSampleServiceSei > Richtliniensätze und Bindungen für Service-Clients > Bindungsname > WS-Security.
- Klicken Sie auf Authentifizierung und Zugriffsschutz.
- Klicken Sie unter "Token für Zugriffsschutz" auf "AsymmetricBindingRecipientEncryptionToken0" (den asymmetrischen Verschlüsselungskonsumenten).
- Klicken Sie auf Anwenden.
- Klicken Sie auf Callback-Handler.
- Wählen Sie im Menü "Keystore" den Eintrag Angepasst aus.
- Klicken Sie auf Konfiguration angepasster Keystores.
- Geben Sie den Keystore-Pfad ein, z. B. ${USER_INSTALL_ROOT}/etc/ws-security/samples/enc-receiver.jceks.
- Wählen Sie JCEKS als Typ aus.
- Geben Sie in den Feldern "Kennwort" und "Kennwort bestätigen" das Kennwort ein, z. B. storepass.
- Geben Sie einen Schlüsselnamen ein. Beispiel: CN=Bob,O=IBM,C=US.
- Geben Sie einen Schlüsselalias ein, z. B. bob.
- Geben Sie in den Feldern "Kennwort" und "Kennwort bestätigen" das Kennwort für den Schlüssel ein.
- Klicken Sie auf OK.
- Klicken Sie erneut auf OK.
- Klicken Sie noch einmal auf OK, um zur Anzeige Unternehmensanwendungen > WSSampleServicesSei > Richtliniensätze und Bindungen für Service-Clients > Bindungsname > WS-Security > Authentifizierung und Zugriffsschutz zurückzukehren.
- Als Status für AsymmetricBindingRecipientEncryptionToken0 sollte Konfiguriert angezeigt werden.
- Ändern Sie die Einstellungen für die verschlüsselten Abschnitte in der Serverbindung wie folgt:
- Klicken Sie unter "Zugriffsschutz durch Signatur und Verschlüsselung der Anforderungsnachricht" auf request:app_encparts.
- Geben Sie einen Namen ein, z. B. MyEncPart.
- Klicken Sie unter "Schlüsseldaten" auf Neu.
- Geben Sie einen Namen ein, z. B. MyEncKeyInfo.
- Klicken Sie auf OK.
- Wählen Sie im Feld "Verfügbar" MyEncKeyInfo (bzw. den Namen, den Sie für den verschlüsselten Abschnitt angegeben haben) aus, und klicken Sie auf Hinzufügen. MyEncKeyInfo wird im Feld Zugeordnet angezeigt.
- Klicken Sie auf OK, um zur Anzeige Unternehmensanwendungen > WSSampleServicesSei > Richtliniensätze und Bindungen für Service-Clients > Bindungsname > WS-Security > Authentifizierung und Zugriffsschutz zurückzukehren.
- Als Status für request:app_encparts sollte Konfiguriert angezeigt werden.
- Konfigurieren Sie die Einstellungen für das Benutzernamenstoken in der Serverbindung wie folgt:
- Klicken Sie unter "Authentifizierungstoken" auf request:myUserNameToken.
- Klicken Sie auf Anwenden.
- Klicken Sie auf Callback-Handler.
- Klicken Sie auf OK.
- Klicken Sie unter Angepasste Eigenschaften auf Neu, um die Eigenschaften für die Überprüfung von Nonce und Zeitmarke hinzuzufügen.
- Geben Sie den Eigenschaftsnamen com.ibm.wsspi.wssecurity.token.username.verifyNonce mit dem Eigenschaftswert true ein, um den Nonce (generierte Zufallszahl) zu prüfen.
- Geben Sie den Eigenschaftsnamen com.ibm.wsspi.wssecurity.token.username.verifyTimestamp mit dem Eigenschaftswert true ein, um die Zeitmarke zu prüfen.
- Klicken Sie erneut auf OK.
- Als Status für request:myUserNameToken sollte jetzt Konfiguriert angezeigt werden.
- Klicken Sie auf Speichern, um die Serverbindungen zu speichern.