Jeton SAML avec jeton X509 symétrique pour la protection de message
Un jeton SAML est utilisé pour l'authentification. Le jeton SAML dans la demande et le corps SOAP dans la demande et dans la réponse sont signés avec la protection des messages symétrique du jeton X509. Il existe également un horodatage du message.
Avec la protection symétrique du jeton X509, une clé temporaire est créée pour la signature et le chiffrement du message. Cette clé temporaire est chiffrée à l'aide du certificat public du destinataire.
Dans cet exemple, la référence de jeton utilise RequireThumbprintReference. Vous pouvez changer la règle pour utiliser une référence RequireIssuerSerialReference ou RequireKeyIdentifierReference. Vous pouvez aussi modifier cette règle afin d'utiliser des clés dérivées d'une clé temporaire pour sécuriser l'échange de messages en ajoutant une assertion <sp:RequireDerivedKeys />. Ce modèle de règle est le plus adapté si le client ne peut utiliser qu'un jeton SAML pour s'authentifier et si l'échange de messages doit être signé et chiffré.
<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>