Vous pouvez configurer les informations de signature pour les liaisons de
destinataire (récepteur) de réponses côté client. Ces informations servent à signer
et à valider des parties d'un message dont le corps SOAP, les informations
d'horodatage et le jeton Username.
Avant de commencer
WebSphere Application
Server utilise la signature XML numérique avec des algorithmes existants, tels que RSA, HMAC
et SHA1. La signature XML définit un grand nombre de méthodes de description
des informations clé et active la définition d'une nouvelle méthode. Avant de suivre cette procédure, voir les informations sur la signature numérique
XML pour vous familiariser avec la signature et la vérification de signatures
numériques pour des contenus numériques.
En incluant la signature XML
dans des messages SOAP, vous assurez l'intégrité et l'authentification des
messages. L'intégrité désigne la signature numérique,
alors que la confidentialité fait référence au chiffrement.
L'intégrité limite le risque d'altération des données lors de leur transmission sur Internet.
Avant
de vérifier la signature et les parties signées du message SOAP, vous devez avoir
effectué les opérations suivantes :
- Configuration de la signature.
- Ajout de parties signées, si besoin est.
- Choix de la signature et des méthodes de parties signées.
Pourquoi et quand exécuter cette tâche
Utilisez les API Web Services Security (API WSS) pour configurer les
informations de vérification des signatures pour la section du destinataire de
réponses (côté client) du fichier de liaison. Utilisez les API WSSVerification ou
WSSVerifyPart pour configurer le client pour la vérification de la signature de
demande et pour indiquer les parties du message signées de façon numérique à vérifier.
WebSphere Application Server utilise
les informations de signature côté destinataire pour vérifier l'intégrité du
message SOAP reçu en ne validant que le fait que les parties du message (telles que le corps,
l'horodatage et le jeton du nom d'utilisateur) sont signées.
Côté
client, utilisez les API WSS ou configurez des ensembles de règles à l'aide de la
console d'administration pour indiquer les parties du message qui sont signées et
pour configurer les informations de clé désignées par les références
correspondantes.
Pour vérifier la signature et les parties signées, utilisez les API
WSSVerification et WSSVerifyPart.
WebSphere Application
Server fournit les valeurs par défaut des liaisons. Toutefois, un administrateur doit modifier les valeurs par défaut pour un environnement de production.
Les
API WSSVerification et WSSVerifyPart suivent les étapes ci-après pour indiquer
les parties du message signées de façon numérique qui doivent être vérifiées
lors de la configuration du client pour la signature du destinataire de
réponses :
Procédure
- L'API WSSVerification ajoute les portions à vérifier obligatoires du
message SOAP.
La référence de la portion fait référence à la partie du message signée numériquement. L'attribut
de la portion fait référence au nom de l'élément <Integrity> lorsque l'élément
<PartReference> est indiqué pour la signature. Vous pouvez spécifier plusieurs éléments <PartReference> dans l'élément <SigningInfo>. L'élément <PartReference> possède deux éléments enfant spécifiés pour la signature : <DigestTransform> et <Transform>.
L'API WSSVerification configure les parties suivantes comme portions à vérifier :
Partie de vérification |
Description |
Jeton de sécurité |
Ajoute des informations pour le jeton de sécurité utilisé pour la
vérification de la signature. |
En-tête SOAP et QName comme cible |
Ajoute l'en-tête SOAP, indiqué par QName, comme portion à vérifier. |
Les
API WSS permettent l'emploi de mots clés ou d'une expression XPath pour préciser
les portions du message devant être vérifiées. WebSphere Application
Server prend en charge l'utilisation des mots clés suivants :Mot clé |
Références |
WSSVerification.ADDRESSING_HEADERS |
En-têtes Web Services Addressing (WS-Addressing). |
WSSVerification.BODY |
Corps du message SOAP. Partie du message contenant les données utilisateur. |
WSSVerification.TIMESTAMP |
Informations sur l'horodatage de création et
d'expiration. |
- L'API WSSVerification ajoute l'en-tête obligatoire pour le message SOAP. L'en-tête, indiqué par QName, est un en-tête de vérification
obligatoire.
- L'API WSSVerification ajoute un jeton de sécurité. Ajoute des informations sur le jeton de sécurité à utiliser pour la
vérification de la signature, comme :
- la classe pour le jeton de sécurité,
- le gestionnaire d'appel,
- le nom de la configuration de connexion JAAS.
- L'API WSSVerification ajoute l'algorithme de la méthode de signature. La méthode de signature correspond à l'algorithme utilisé pour convertir l'élément <SignedInfo> canonisé en élément <SignatureValue>. L'algorithme
indiqué pour le destinataire, à savoir la configuration du destinataire de
réponses, doit correspondre à celui indiqué pour la configuration du générateur de
demandes. WebSphere Application
Server prend en charge les algorithmes de signature préconfigurés suivants :
WebSphere Application
Server ne prend pas en charge l'algorithme suivant pour DSA-SHA1: http://www.w3.org/2000/09/xmldsig#dsa-sha1.
Vous ne pouvez pas utiliser l'algorithme
DSA-SHA1 si vous voulez respecter le profil de sécurité de base (BSP).
- L'API WSSVerification ajoute une méthode de canonisation. L'algorithme de la méthode de canonisation permet de canoniser l'élément <SignedInfo> avant qu'il soit incorporé dans l'opération de signature numérique. L'algorithme de canonisation spécifié pour le générateur doit correspondre à celui défini pour le destinataire.
WebSphere Application Server prend
en charge les algorithmes de canonisation préconfigurés suivants :
- L'API WSSVerification vérifie si une confirmation de signature est obligatoire. La spécification OASIS Web Services Security (WS-Security) version 1.1
détermine l'utilisation de la confirmation de signature.
Si vous utilisez
WS-Security version 1.0, cette fonction n'est pas disponible.
La valeur de confirmation de la signature est stockée pour valider cette
confirmation une fois le message de réception retourné. Cette méthode est appelée si
le message de réponse doit associer la confirmation de signature au message
SOAP.
- L'API WSSVerifyPart ajoute une méthode de synthèse (digest). Pour chaque référence de partie dans les informations de signature, l'API
indique un algorithme de méthode de synthèse et un autre de transformation.
WebSphere Application Server prend
en charge les algorithmes de synthèse (digest) préconfigurés suivants :
- WSSVerifyPart.SHA1 : http://www.w3.org/2000/09/xmldsig#sha1
- WSSVerifyPart.SHA256 : http://www.w3.org/2001/04/xmlenc#sha256
- WSSVerifyPart.SHA512 : http://www.w3.org/2001/04/xmlenc#sha512
- L'API WSSVerifyPart ajoute une méthode de transformation. Pour chaque référence de partie dans les informations de signature, l'API
indique un algorithme de méthode de synthèse et un autre de transformation.
WebSphere Application
Server prend en charge les algorithmes de transformation préconfigurés suivants :
- WSSVerifyPart.TRANSFORM_EXC_C14N (la valeur par défaut) : http://www.w3.org/2001/10/xml-exc-c14n#
- WSSVerifyPart.TRANSFORM_XPATH2_FILTER : http://www.w3.org/2002/06/xmldsig-filter2
- WSSVerifyPart.TRANSFORM_STRT10 : http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform
- WSSVerifyPart.TRANSFORM_ENVELOPED_SIGNATURE : http://www.w3.org/2000/09/xmldsig#enveloped-signature
Pour les API WSS, WebSphere Application Server ne prend pas en charge ces
algorithmes :
- http://www.w3.org/2002/07/decrypt#XML
- http://www.w3.org/TR/1999/REC-xpath-19991116
L'algorithme de transformation pour le destinataire doit correspondre à celui
pour le générateur.
Résultats
Vous
avez terminé la procédure de configuration des informations de signature pour les
sections de destinataire de réponses côté client des fichiers de liaison.
Exemple
L'exemple suivant montre un exemple de code d'API WSS pour vérifier la
signature et le type de jeton X.509 comme jeton de sécurité :
WSSFactory factory = WSSFactory.getInstance();
WSSConsumingContext concont = factory.newWSSConsumingContext();
// Générer le gestionnaire d'appel X.509 côté destinataire
X509ConsumeCallbackHandler callbackhandler = generateCallbackHandler();
WSSVerification ver = factory.newWSSVerification(X509Token.class,
callbackhandler);
concont.add(ver);
Que faire ensuite
Si vous ne l'avez pas déjà fait, indiquez une configuration similaire
pour les informations de signature concernant les liaisons de générateur.
Ensuite,
si la configuration existe déjà, configurez les informations de chiffrement et de
déchiffrement, ou bien les jetons de destinataire et de générateur.