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.

Tableau 1. Méthodes de signature. Utilisez des méthodes de signature pour sécuriser les messages.
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

  1. Pour la liaison de générateur, l'API WSSSignature indique la méthode de signature. WebSphere Application Server prend en charge les méthodes de signature préconfigurées suivantes :
    • WSSSignature.RSA_SHA1 (la valeur par défaut) : http://www.w3.org/2000/09/xmldsig#rsa-sha1
    • WSSSignature.HMAC_SHA1 : http://www.w3.org/2000/09/xmldsig#hmac-sha1
    Pour les API WSS, WebSphere Application Server ne prend pas en charge la méthode de signature numérique DSA-SHA1, http://www.w3.org/2000/09/xmldsig#dsa-sha1.
  2. Pour la liaison de générateur, l'API WSSSignature indique la méthode de canonisation. WebSphere Application Server prend en charge les algorithmes de canonisation préconfigurés suivants :
    • WSSSignature.EXC_C14N (la valeur par défaut) : l'algorithme de canonisation exclusive http://www.w3.org/2001/10/xml-exc-c14n#
    • WSSSignature.C14N : l'algorithme de canonisation inclusive http://www.w3.org/2001/10/xml-c14n#
  3. Pour la liaison de générateur, l'API WSSSignPart indique la méthode de synthèse (digest). WebSphere Application Server prend en charge les méthodes de synthèse (digest) préconfigurées suivantes :
    • WSSSignPart.SHA1 (la valeur par défaut) : http://www.w3.org/2000/09/xmldsig#sha1
    • WSSSignPart.SHA256 : http://www.w3.org/2001/04/xmlenc#sha256
    • WSSSignPart.SHA512 : http://www.w3.org/2001/04/xmlenc#sha512
  4. Pour la liaison de générateur, l'API WSSSignPart indique la méthode de transformation. WebSphere Application Server prend en charge les algorithmes de transformation préconfigurés suivants :
    • WSSSignPart.TRANSFORM_EXC_C14N (la valeur par défaut) : http://www.w3.org/2001/10/xml-exc-c14n#
    • WSSSignPart.TRANSFORM_XPATH2_FILTER : http://www.w3.org/2002/06/xmldsig-filter2
    • WSSSignPart.TRANSFORM_STRT10 : http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform
    • WSSSignPart.TRANSFORM_ENVELOPED_SIGNATURE : http://www.w3.org/2000/09/xmldsig#enveloped-signature
    Pour les API WSS, WebSphere Application Server ne prend pas en charge les algorithmes de transformation suivants :
    • http://www.w3.org/TR/1999/REC-xpath-19991116
    • http://www.w3.org/2002/07/decrypt#XML

Résultats

A l'aide des API WSS, vous avez indiqué les méthodes d'algorithme employées pour signer de façon numérique un message lorsque le client envoie un message à un serveur.

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.


Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_confwsssignalgorithms
Nom du fichier : twbs_confwsssignalgorithms.html