Web-Services mit Bestätigungstoken schützen

Zum Signieren der SOAP-Nachrichtensignatur wird ein Bestätigungstoken (Endorsing Token) verwendet. Ein Bestätigungstoken wird normalerweise verwendet, um das gesamte <Signature>-Element und optional weitere Nachrichtenteile zu signieren. Wenn die Transportsicherheit verwendet wird, muss mit dem Bestätigungstoken die Zeitmarke (Timestamp) im SOAP-Sicherheitsheader signiert werden.

Zusicherungen für Bestätigungsunterstützungstoken

Bestätigungstoken (Endorsing Tokens) sind in WS-Security Unterstützungstoken (SupportingTokens), die signiert und verschlüsselt werden können. Es gibt vier Typen von Bestätigungstoken.
  • EndorsingSupportingTokens: Das Token muss nicht signiert oder verschlüsselt werden.
  • SignedEndorsingSupportingTokens: Das Token muss signiert werden.
  • EndorsingEncryptedSupportingTokens: Das Token muss verschlüsselt werden.
  • SignedEndorsingEncryptedSupportingTokens: Das Token muss signiert werden.

X509Token als Bestätigungstoken

Sie können ein X509Token als Bestätigungstoken konfigurieren. Die Konfiguration eines X509Token als Bestätigungstoken ist ähnlich wie die Konfiguration eines X509Token als Initatortoken in einer asymmetrischen Bindung (AssymmetricBinding). Damit ein X509Token als Bestätigungstoken konfiguriert werden kann, wird eine Richtlinie benötigt, die in einer der zuvor beschriebenen Zusicherungen für Bestätigungstoken ein X509Token enthält und die das Element <SignatureProperties> in der Datei server.xml enthält.

Das folgende Beispiel zeigt einem Richtlinienfragment für ein X509-Bestätigungsunterstützungstoken:
<sp:EndorsingSupportingTokens xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
  <wsp:Policy>
    <sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
      <wsp:Policy>
        <sp:WssX509V3Token10/>
      </wsp:Policy>
    </sp:X509Token>
  </wsp:Policy>
</sp:EndorsingSupportingTokens>

Nachdem das X509Token als Unterstützungstoken konfiguriert wurde, müssen Sie das Element <signatureProperties> in der Datei server.xml definieren, um den Keystore und den Signierschlüssel anzugeben. Die Konfiguration des Elements <signatureProperties> entspricht der Konfiguration des X509Token für die Nachrichtensignatur. Nähere Informationen finden Sie unter Web-Services mit einem X.509-Token schützen.

Benutzernamenstoken als Bestätigungstoken

Die Konfiguration eines Benutzernamenstokens (UsernameToken) als Bestätigungstoken (endorsingToken) ist ähnlich wie die Konfiguration eines Benutzernamenstokens mit PasswordDigest, außer dass in der Richtlinie kein Hash-Kennwort (HashPassword) enthalten ist. Damit ein Benutzernamenstoken als Bestätigungstoken konfiguriert werden kann, wird eine Richtlinie benötigt, die ein Benutzernamenstoken (UsernameToken) in einer der unter "Zusicherungen für Bestätigungsunterstützungstoken" beschriebenen Zusicherungen für Bestätigungstoken enthält.

Das folgende Beispiel zeigt ein Richtlinienfragment für ein mit einem Bestätigungsunterstützungstoken signiertes und verschlüsseltes Benutzernamenstoken. Die Schlüsselableitung wird verwendet:
<sp:SignedEndorsingEncryptedSupportingTokens>
  <wsp:Policy>
    <sp:UsernameToken
      sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
      <wsp:Policy>
        <sp:WssUsernameToken10 />
        <sp:RequireDerivedKeys />
      </wsp:Policy>
    </sp:UsernameToken>
  </wsp:Policy>
</sp:SignedEndorsingEncryptedSupportingTokens>

In diesem Beispiel eines Richtlinienfragments wird das Benutzernamenstoken mit dem Rest der Nachricht signiert und verschlüsselt. Anschließend wird der aus dem Kennwort aus dem Benutzernamenstoken abgeleitete Schlüssel verwendet, um die Nachrichtensignatur zu signieren.

Weil ein Bestätigungstoken für ein Benutzernamenstoken abgeleitete Schlüssel verwendet, müssen Sie einen Kennwort-Callback-Handler für eine Provideranwendung implementieren und konfigurieren. Nähere Information finden Sie unter Web-Service-Clients mit einem Benutzernamenstoken authentifizieren.


Symbol das den Typ des Artikels anzeigt. Konzeptartikel

Dateiname: cwlp_wssec_endorse_tokens.html