Protection des services Web avec des jetons de validation
Un jeton de validation permet de signer la signature du message SOAP. Il est généralement utilisé pour signer l'élément <Signature> complet et, éventuellement, d'autres parties du message. Si la sécurité de transport est utilisée, le jeton de validation doit être utilisé pour signer l'horodatage dans l'en-tête de sécurité SOAP.
Assertions des jetons de support de validation
- EndorsingSupportingTokens - Il n'est pas nécessaire de signer ou de chiffrer le jeton.
- SignedEndorsingSupportingTokens - Le jeton doit être signé.
- EndorsingEncryptedSupportingTokens - Le jeton doit être chiffré.
- SignedEndorsingEncryptedSupportingTokens - Le jeton doit être signé.
Le jeton X509 comme jeton de validation
Vous pouvez configurer un jeton X509 comme jeton de validation. La configuration d'un jeton X509 comme jeton de validation est similaire à la configuration d'un jeton X509 comme jeton de type InitiatorToken dans une liaison asymétrique. Pour configurer un élément X509Token en tant que jeton de validation, vous aurez besoin d'une règle avec un élément X509Token contenu dans l'une des assertions de jeton de validation décrites auparavant et d'un élément <SignatureProperties> dans le fichier server.xml.
<sp:EndorsingSupportingTokens xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
<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:EndorsingSupportingTokens>
Après avoir configuré l'élément X509Token en tant que jeton de validation, vous devez définir l'élément <signatureProperties> dans le fichier server.xml en identifiant le magasin de clés et la clé de signature. La configuration de l'élément <signatureProperties> est la même que celle de l'élément X509Token pour la signature du message. Pour plus d'informations, voir Protection des services Web avec un jeton X.509.
Le jeton de nom d'utilisateur comme jeton de validation
La configuration d'un jeton de nom d'utilisateur comme jeton de validation est similaire à la configuration d'un jeton de nom d'utilisateur avec PasswordDigest, sauf qu'il n'existe pas d'élément HashPassword dans la règle. Pour configurer un jeton de nom d'utilisateur comme jeton de validation, vous avez besoin d'une règle dans laquelle un jeton de nom d'utilisateur se trouve dans l'une des assertions de jeton de validation décrites dans la section Assertions de jeton de support de validation.
<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>
Dans cet exemple de fragment de règle, le jeton de nom d'utilisateur est signé et chiffré avec le reste du message. Ensuite, la clé dérivée du mot de passe du jeton de nom d'utilisateur est utilisée pour signer la signature du message.
Etant donné qu'un jeton de validation de type jeton de nom d'utilisateur utilise des clés dérivées, vous devez implémenter et configurer un gestionnaire d'appel de mot de passe pour une application de fournisseur. Pour plus d'informations, voir Authentification des clients de services Web avec un jeton de nom d'utilisateur.