Configuration des méthodes de signature des demandes pour le client
Utilisez les API WSSSignature et WSSSignPart pour choisir les méthodes de signature. Elles incluent celles de signature, de canonisation, de synthèse (digest) et de transformation.
Avant de commencer
Vous devez d'abord indiquer les parties du message envoyé par le client qui doivent être signées de façon numérique à l'aide d'API WSS ou en configurant des ensembles de règles via la console d'administration.
Pourquoi et quand exécuter cette tâche
Le tableau ci-après indique la finalité de ces informations. Certaines de ces définitions reposent sur la spécification Signature XML disponible sur le site web http://www.w3.org/TR/xmldsig-core.
Nom de la méthode | Description |
---|---|
Algorithme de canonisation | Canonise l'élément <SignedInfo> avant que les informations ne soient traitées lors de l'opération de signature. |
Algorithme de signature | Calcule la valeur de la signature de l'élément <SignedInfo> canonisé. L'algorithme sélectionné pour la configuration de l'expéditeur de la requête client doit correspondre à l'algorithme choisi dans la configuration du destinataire de la requête serveur. |
Méthode de transformation | Transforme les parties à signer avant la synthèse des informations dans le cadre de l'opération de signature. |
Méthode de synthèse (digest) | Calcule la valeur de synthèse des parties transformées. L'algorithme sélectionné pour la configuration de l'émetteur de demande côté client doit correspondre à ceux choisis dans la configuration du destinataire de demande côté serveur. |
Vous pouvez utiliser les API WSS ou configurer des ensembles de règles à l'aide de la console d'administration afin de configurer les méthodes d'algorithme de signature. Si vous utilisez les API WSS, servez-vous de WSSSignature et de WSSSignPart pour signaler les parties du message à signer de façon numérique lors de la configuration du client pour la signature des demandes.
Les API WSSSignature et WSSSignPart suivent les étapes ci-après pour configurer les méthodes d'algorithme de signature et des parties signées :
Procédure
Résultats
Exemple
L'exemple suivant est un code pour indiquer les informations de signature, HMAC_SHA1 comme méthode de signature, C14N comme méthode de canonisation, SHA256 comme méthode de synthèse (digest) et EXC_C14N et TRANSFORM_STRT10 comme méthodes de transformation :
// obtention du contexte de message
Object msgcontext = getMessageContext();
// génération de l'instance WSSFactory
WSSFactory factory = WSSFactory.getInstance();
// génération de l'instance WSSGenerationContext
WSSGenerationContext gencont = factory.newWSSGenerationContext();
// génération du gestionnaire d'appel
X509GenerateCallbackHandler callbackHandler = new X509GenerateCallbackHandler(
"",
"dsig-sender.ks",
"jks",
"client".toCharArray(),
"soaprequester",
"client".toCharArray(),
"CN=SOAPRequester, OU=TRL, O=IBM, ST=Kanagawa, C=JP",
null);
// génération du jeton de sécurité utilisé pour la signature
SecurityToken token = factory.newSecurityToken(X509Token.class, callbackHandler);
// génération de l'instance WSSSignature
WSSSignature sig = factory.newWSSSignature(token);
//définition de la méthode de canonisation
// DEFAULT: WSSSignature.EXC_C14N
sig.setCanonicalizationMethod(WSSSignature.C14N);
//définition de la méthode de signature
// DEFAULT: WSSSignature.RSA_SHA1
sig.setSignatureMethod(WSSSignature.HMAC_SHA1);
//définition de la partie spécifiée par WSSSignPart
WSSSignPart sigPart = factory.newWSSSignPart();
//définition de la méthode de synthèse (digest)
// PAR DEFAUT : WSSSignPart.SHA1
sigPart.setDigestMethod(WSSSignPart.SHA256);
//ajout de la méthode de transformation
// PAR DEFAUT : WSSSignPart.TRANSFORM_EXC_C14N
sigPart.addTransformMethod(WSSSignPart.TRANSFORM_EXC_C14N);
sigPart.addTransformMethod(WSSSignPart.TRANSFORM_STRT10);
// ajout de WSSSignPart à WSSSignature
sig.addSignPart(sigPart);
//ajout de WSSSignature à WSSGenerationContext
gencont.add(sig);
// génération de l'en-tête WS-Security
gencont.process(msgcontext);
Que faire ensuite
Une fois le client configuré pour signer de façon numérique le message et choisir les méthodes d'algorithme, vous devez configurer le serveur afin de vérifier la signature numérique des demandes et sélectionner les méthodes d'algorithme.
Configurez des ensembles de règles à l'aide de la console d'administration pour configurer les informations de vérification de la signature et les méthodes sur le serveur.