SAML-Token mit symmetrischem X509-Token für den Nachrichtenschutz
Ein SAML-Token wird für die Authentifizierung verwendet. Das SAML-Token in der Anforderung und der SOAP-Hauptteil in der Anforderung und in der Antwort werden über den Nachrichtenschutz mit einem symmetrischen X509-Token signiert und verschlüsselt. Außerdem wird die Nachricht mit einer Zeitmarke versehen.
Beim Nachrichtenschutz mit einem symmetrischen X509-Token wird ein ephemerer Schlüssel zum Signieren und Verschlüsseln der Nachricht erstellt. Der ephemere Schlüssel wird mit dem öffentlichen Zertifikat des Empfängers verschlüsselt.
Im folgenden Beispiel verwendet die Tokenreferenz eine Referenz des Typs RequireThumbprintReference. Sie können die Richtlinie ändern, sodass eine Referenz des Typs RequireIssuerSerialReference oder des Typs RequireKeyIdentifierReference verwendet wird. Es ist auch möglich, diese Richtlinie so zu ändern, dass zum Schutz des Nachrichtenaustauschs von einem ephemeren Schlüssel abgeleitete Schlüssel verwendet werden. Dazu müssen Sie eine Zusicherung des Typs <sp:RequireDerivedKeys /> hinzufügen. Diese Richtlinienschablone eignet sich am besten, wenn der Client nur ein SAML-Token für die eigene Authentifizierung verwenden kann und der Nachrichtenaustausch signiert und verschlüsselt werden muss.
<wsp:Policy wsu:Id="X509SymmetricForMessageAndSamlForClient">
<wsp:ExactlyOne>
<wsp:All>
<sp:SignedEncryptedSupportingTokens
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
<wsp:Policy>
<sp:SamlToken
sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssSamlV20Token11/>
</wsp:Policy>
</sp:SamlToken>
</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>