Benutzernamenstoken als bestätigendes Token und symmetrisches X509-Token für Nachrichtenschutz
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. Ein Benutzernamenstoken (UsernameToken) mit abgeleiteten Schlüsseln wird zur Authentifizierung verwendet. Die Nachrichtensignatur wird mit dem abgeleiteten Schlüssel des Benutzernamenstokens signiert. Außerdem wird die Nachricht mit einer Zeitmarke (Timestamp) versehen.
Diese Richtlinienschablone kann verwendet werden, wenn der HTTP-Transport nicht unterstützt wird, der Service ein X509-Token hat, ein Benutzernamenstoken unterstützt und der Service voraussetzt, dass der Client die Nachricht bestätigt.
Die folgende Richtlinie zeigt ein Benutzernamenstoken als bestätigendes Token (EndorsingToken) und ein symmetrisches X509-Token für Nachrichtenschutz:
<wsp:Policy wsu:Id="UsernameTokenAsEndorsingAndX509Symmetric">
<wsp:ExactlyOne>
<wsp:All>
<sp:SymmetricBinding>
<wsp:Policy>
<sp:ProtectionToken>
<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:ProtectionToken>
<sp:Layout>
<wsp:Policy>
<sp:Lax />
</wsp:Policy>
</sp:Layout>
<sp:IncludeTimestamp />
<sp:OnlySignEntireHeadersAndBody />
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic128 />
</wsp:Policy>
</sp:AlgorithmSuite>
</wsp:Policy>
</sp:SymmetricBinding>
<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>
<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"