Authentifizierung über ein Benutzernamenstoken und ein symmetrisches X509-Token für Nachrichtenschutz

Ein Benutzernamenstoken (UsernameToken) mit Kennwort in Klartext wird zur Authentifizierung verwendet. Das Benutzernamenstoken in der Anforderung und der SOAP-Hauptteil in der Anforderung und Antwort werden über den Nachrichtenschutz mit einem symmetrischen X509-Token signiert und verschlüsselt. Außerdem wird die Nachricht mit einer Zeitmarke (Timestamp) versehen.

Beim Nachrichtenschutz über ein symmetrisches X509-Token wird ein ephemerer Schlüssel zum Signieren und Verschlüsseln der Nachricht erstellt. Der ephemere Schlüssel wird über das öffentliche Zertifikat des Empfängers verschlüsselt.

In diesem Beispiel verwendet die Tokenreferenz eine Referenz vom Typ "RequireThumbprintReference". Sie können die Richtlinie so ändern, dass eine Referenz vom Typ "RequireIssuerSerialReference" oder "RequireKeyIdentifierReference" verwendet wird. Sie können diese Richtlinie auch dahingehend ändern, dass von einem ephemeren Schlüssel abgeleitete Schlüssel zum Sichern des Nachrichtenaustausches verwendet werden. Dazu müssen Sie eine Zusicherung vom Typ <sp:RequireDerivedKeys /> hinzufügen.

Diese Richtlinienschablone wird am besten verwendet, wenn der Client nur ein Benutzernamenstoken verwenden kann, um sich zu authentifizieren, und der Nachrichtenaustausch signiert und verschlüsselt werden muss.

Die folgende Richtlinie zeigt eine Authentifizierung über Benutzernamenstoken und ein symmetrisches X509-Token für Nachrichtenschutz:
<wsp:Policy wsu:Id="X509SymmetricForMessageAndUntForClient">
  <wsp:ExactlyOne>
    <wsp:All>
      <sp:SignedEncryptedSupportingTokens
        xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
        <wsp:Policy>
          <sp:UsernameToken
            sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
            <wsp:Policy>
              <sp:WssUsernameToken10 />
            </wsp:Policy>
          </sp:UsernameToken>
        </wsp:Policy>
      </sp:SignedEncryptedSupportingTokens>
      <sp:SymmetricBinding>
        <wsp:Policy>
          <sp:ProtectionToken>
            <wsp:Policy>
              <sp:X509Token
                sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never">
                <wsp:Policy>
                  <sp:RequireThumbprintReference />
                  <sp:WssX509V3Token10 />
                </wsp:Policy>
              </sp:X509Token>
            </wsp:Policy>
          </sp:ProtectionToken>
          <sp:AlgorithmSuite>
            <wsp:Policy>
              <sp:Basic128 />
            </wsp:Policy>
          </sp:AlgorithmSuite>
          <sp:Layout>
            <wsp:Policy>
              <sp:Strict />
            </wsp:Policy>
          </sp:Layout>
          <sp:IncludeTimestamp />
          <sp:OnlySignEntireHeadersAndBody />
          <sp:EncryptSignature />
        </wsp:Policy>
      </sp:SymmetricBinding>
      <sp:Wss11>
        <wsp:Policy>
          <sp:MustSupportRefKeyIdentifier />
          <sp:MustSupportRefIssuerSerial />
          <sp:MustSupportRefThumbprint />
          <sp:MustSupportRefEncryptedKey />
          <sp:RequireSignatureConfirmation />
        </wsp:Policy>
      </sp:Wss11>
      <sp:SignedParts>
        <sp:Body />
      </sp:SignedParts>
      <sp:EncryptedParts>
        <sp:Body />
      </sp:EncryptedParts>
    </wsp:All>
  </wsp:ExactlyOne>
</wsp:Policy>
In diesem Beispiel werden die folgenden Namespaces verwendet:
  • xmlns:wsp="http://www.w3.org/ns/ws-policy"
  • xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
  • xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"

Symbol das den Typ des Artikels anzeigt. Konzeptartikel

Dateiname: cwlp_wssec_templates_scenario6.html