Authentification par jeton de nom d'utilisateur et jeton X509 symétrique pour la protection des messages
Un jeton de nom d'utilisateur associé à un mot de passe en texte en clair est utilisé pour l'authentification. Le jeton de nom d'utilisateur dans la demande et le corps SOAP dans la demande et dans la réponse sont signés et chiffré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 en vue de l'utilisation de RequireIssuerSerialReference ou RequireKeyIdentifierReference. Vous pouvez également modifier cette règle afin d'utiliser des clés dérivées d'une clé temporaire afin de 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 de nom d'utilisateur pour s'authentifier et si l'échange de messages doit être signé et chiffré.
<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>
- 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"