Richtliniensatz und Bindungen für die Verschlüsselung des Unterzeichnerzertifikats konfigurieren

Diese Prozedur beschreibt, wie ein JAX-WS-Konsument/Provider für die Verschlüsselung des Unterzeichnerzertifikats konfiguriert wird. Die Verschlüsselung des Unterzeichnerzertifikats bedeutet, dass das öffentliche Clientzertifikat, mit dem die digitale Signatur der eingehenden Anforderungsnachricht überprüft wird, für die Verschlüsselung der abgehenden Antwort verwendet wird.

Vorbereitende Schritte

Diese Task setzt voraus, dass der Service-Provider und der Service-Client, die Sie konfigurieren, in der Anwendung JaxWSServicesSamples enthalten sind. Weitere Informationen darüber, wie Sie diese Anwendung erhalten und installieren, finden Sie im Artikel "Auf Beispiele zugreifen".

Verwenden Sie auf Ihrem Server die folgende Tracespezifikation. Diese Spezifikationen unterstützen Sie bei der Behebung von Konfigurationsproblemen, die später eventuell auftreten 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:    com.ibm.ws.webservices.multiprotocol.AgnosticService=all:
    com.ibm.ws.websvcs.utils.SecurityContextMigrator=all 

Informationen zu diesem Vorgang

Da die Verschlüsselung von Unterzeichnerzertifikaten verwendet wird, wird in dieser Prozedur nur der Client-Keystore für digitale Signaturen verwendet. Der Service ruft das für die Signaturprüfung verwendete öffentliche Zertifikat aus der eingehenden Anforderung ab und verwendet es für die Verschlüsselung der Antwort. Auf der Providerseite wird die angepasste Eigenschaft com.ibm.wsspi.wssecurity.token.cert.useRequestorCert=true im Verschlüsselungsgenerator des Providers verwendet, um diesen Vorgang auszuführen.

Der in dieser Prozedur verwendete Keystore wird mit WebSphere Application Server bereitgestellt und in jedem erstellten Profil installiert. Sie können die Variable ${USER_INSTALL_ROOT} direkt in der Konfiguration verwenden, um auf die Keystoreposition zu verweisen. In diesem Fall müssen Sie keinen vollständig qualifizierten Pfad angeben. ${USER_INSTALL_ROOT} wird in einen Pfad wie den folgenden aufgelöst: c:/WebSphere/AppServer/profiles/AppSrv01.
${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-sender.ks
Aufgrund der Besonderheit von JaxWSServicesSamples klicken Sie in der Administrationskonsole auf Anwendungen > Anwendungstypen > WebSphere-Unternehmensanwendungen > JaxWSServicesSamples, um den Richtliniensatz und die Bindungen auf diese Anwendung anzuwenden. Wenn Sie eigene Anwendungen einsetzen, können Sie alternativ die folgenden Pfade verwenden, um zwecks Zuordnung von Richtliniensatz und Bindungen auf den Provider und Client zuzugreifen:
  • Services > Service-Provider > (Anwendungsname)
  • Services > Service-Clients > (Anwendungsname)
Bei dieser Prozedur werden folgende Aktionen ausgeführt, um die Task zu vereinfachen:
  • Nur die abgehende digitale Signatur und die eingehende Verschlüsselung werden konfiguriert.
  • Allgemeine Bindungen werden sowohl für den Client als auch den Provider verwendet.
Fehler vermeiden Fehler vermeiden:

Nach Abschluss der Task müssen Sie, wenn Sie zurückgehen und die erstellten allgemeinen Bindungen bearbeiten möchten, den Anwendungsserver nach dem Speichern der Aktualisierungen erneut starten. Sie können zwar eine allgemeine Bindung erstellen und direkt verwenden, ohne den Anwendungsserver erneut zu starten, doch sobald eine allgemeine Bindung von einer Anwendung geladen wurde, werden Änderungen an der Bindung erst nach einem Neustart des Servers erkannt.

gotcha

Vorgehensweise

  1. Erstellen Sie den angepassten Richtliniensatz.
    1. Klicken Sie in der Administrationskonsole auf Services > Richtliniensätze > Anwendungsrichtliniensätze.
    2. Klicken Sie auf Neu.
    3. Geben Sie name=OutSignInEncPolicy an.
    4. Klicken Sie unter Richtlinien auf Hinzufügen > WS-Security.
  2. Bearbeiten Sie den angepassten Richtliniensatz, um die abgehende Verschlüsselung und die eingehende Signatur zu entfernen.
    1. Klicken Sie in der Administrationskonsole auf WS-Security > Hauptrichtlinie.
    2. Klicken Sie unter Zugriffsschutz auf Nachrichtenebene auf Abschnitte in Anforderungsnachrichten schützen.
    3. Klicken Sie auf app_encparts.
    4. Klicken Sie auf Löschen.
    5. Klicken Sie auf Fertig.
    6. Klicken Sie auf Abschnitte in Antwortnachrichten schützen.
    7. Klicken Sie auf app_sigparts.
    8. Klicken Sie auf Löschen.
    9. Klicken Sie auf Fertig.
  3. Klicken Sie auf "Speichern", um die Konfigurationsänderungen zu speichern.
  4. Erstellen Sie die allgemeine Providerbindung.
    1. Klicken Sie in der Administrationskonsole auf Services > Richtliniensätze > Allgemeine Providerrichtliniensatzbindungen.
    2. Wählen Sie Provider sample aus.
    3. Klicken Sie auf Kopieren....
    4. Geben Sie name=ProviderSignerCertGeneralBinding an.
    5. Klicken Sie auf OK.
  5. Bearbeiten Sie ProviderSignerCertGeneralBinding so, dass das Unterzeichnerzertifikat verschlüsselt wird.
    1. Klicken Sie auf ProviderSignerCertGeneralBinding > WS-Security > Authentifizierung und Zugriffsschutz > gen_encx509token > Callback-Handler.
    2. Geben Sie unter Angepasste Eigenschaften Folgendes an:
      Name=com.ibm.wsspi.wssecurity.token.cert.useRequestorCert
      value=true
    3. Wählen Sie unter Keystore die Einstellung Name=None aus.
    4. Klicken Sie auf OK.
  6. Erstellen Sie die allgemeine Clientbindung.
    1. Klicken Sie in der Administrationskonsole auf Services > Richtliniensätze > Allgemeine Clientrichtliniensatzbindungen.
    2. Wählen Sie Client samples aus.
    3. Klicken Sie auf Kopieren....
    4. Geben Sie name=ClientSignerCertGeneralBinding an.
    5. Klicken Sie auf OK.
  7. Bearbeiten Sie ClientSignerCertGeneralBinding so, dass der eigene Signierschlüssel für die Entschlüsselung der Nachricht verwendet wird.
    1. Klicken Sie auf ClientSignerCertGeneralBinding > WS-Security > Authentifizierung und Zugriffsschutz > con_encx509token > Callback-Handler > Konfiguration angepasster Keystores.
    2. Geben Sie unter Keystore denselben Keystore ein, der auch vom Signaturgenerator verwendet wird:
      Full path=${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-sender.ks
      Type=JKS
      Password=client
    3. Geben Sie unter Schlüssel denselben Schlüssel ein, der auch vom Signaturgenerator verwendet wird:
      Name=CN=SOAPRequester, OU=TRL, O=IBM, ST=Kanagawa, C=JP
      Alias=soaprequester
      Password=client
    4. Klicken Sie auf OK.
  8. Konfigurieren Sie den Client für die Verwendung des Richtliniensatzes OutSignInEncPolicy und der allgemeinen Bindung ClientSignerCertGeneralBinding.
    1. Klicken Sie in der Administrationskonsole auf Anwendungen > Anwendungstypen > WebSphere-Unternehmensanwendungen > JaxWSServicesSamples > Richtliniensätze und Bindungen für Service-Clients.
    2. Wählen Sie die Web-Service-Clientressource (JaxWSServicesSamples) aus.
    3. Klicken Sie auf Richtliniensatz zuordnen.
    4. Wählen Sie OutSignInEncPolicy aus.
    5. Wählen Sie die Web-Service-Clientressource (JaxWSServicesSamples) erneut aus.
    6. Klicken Sie auf Bindung zuweisen.
    7. Wählen Sie ClientSignerCertGeneralBinding aus.
  9. Konfigurieren Sie den Provider für die Verwendung des Richtliniensatzes SimpleSignEncPolicy und der allgemeinen Bindung ProviderSignerCertGeneralBinding.
    1. Klicken Sie in der Administrationskonsole auf Anwendungen > Anwendungstypen > WebSphere-Unternehmensanwendungen > JaxWSServicesSamples > Richtliniensätze und Bindungen für Service-Provider.
    2. Wählen Sie die Web-Service-Provider-Ressource (JaxWSServicesSamples) aus.
    3. Klicken Sie auf Richtliniensatz zuordnen.
    4. Wählen Sie OutSignInEncPolicy aus.
    5. Wählen Sie die Web-Service-Provider-Ressource (JaxWSServicesSamples) erneut aus.
    6. Klicken Sie auf Bindung zuweisen.
    7. Wählen Sie PrioviderSignerCertGeneralBinding aus.
  10. Klicken Sie auf "Speichern", um die Konfigurationsänderungen zu speichern.
  11. Starten Sie den Client und den Provider erneut.
    1. Stoppen Sie den Client und den Provider.
    2. Starten Sie den Client und den Provider erneut.
  12. Testen Sie den Service.
    1. Rufen Sie in Ihrem Web-Browser JaxWSServicesSamples auf, indem Sie die folgende URL eingeben: http://localhost:9080/wssamplesei/demo.
      Fehler vermeiden Fehler vermeiden: Achten Sie darauf, den richtigen Hostnamen und Port anzugeben, falls sich Ihr Provider nicht auf derselben Maschine befindet oder ein anderer Port als 9080 verwendet wird.gotcha
    2. Wählen Sie Message Type Synchronous Echo aus.
    3. Stellen Sie sicher, dass Use SOAP 1.2 nicht ausgewählt ist.
    4. 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 ist so konfiguriert, dass sie Antworten mit dem Zertifikat, das zum Signieren der Anforderung verwendet wird, verschlüsselt.

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=twbs_configpolicysetforsignerencrypt
Dateiname:twbs_configpolicysetforsignerencrypt.html