Configuration d'un ensemble de règles et des liaisons pour le chiffrement du certificat de signataire

Cette procédure explique comment configurer un fournisseur/consommateur JAX-WS pour le chiffrement du certificat de signataire. Avec ce processus, le certificat public du client qui est utilisé pour vérifier la signature numérique du message de demande entrant est utilisé pour chiffrer le message de réponse sortant.

Avant de commencer

Cette tâche suppose que le client et le fournisseur de service que vous configurez se trouvent dans l'application JaxWSServicesSamples. Pour savoir comment obtenir et installer cette application, reportez-vous à la rubrique Accès aux exemples.

Utilisez la spécification de trace ci-dessous sur votre serveur. Ces spécifications vous permettent de déboguer les problèmes de configuration qui peuvent se produire dans le futur.
*=info:com.ibm.wsspi.wssecurity.*=all:com.ibm.ws.webservices.wssecurity.*=all:  com.ibm.ws.wssecurity.*=all:
    com.ibm.xml.soapsec.*=all: com.ibm.ws.webservices.trace.*=all:
    com.ibm.ws.websvcs.trace.*=all:com.ibm.ws.wssecurity.platform.audit.*=off:
    com.ibm.ws.webservices.multiprotocol.AgnosticService=all:
    com.ibm.ws.websvcs.utils.SecurityContextMigrator=all 

Pourquoi et quand exécuter cette tâche

Puisque la méthode choisie est celle du chiffrement du certificat de signataire, seule le fichier de clés contenant la signature numérique du client est utilisé dans cette procédure. Le service se procure dans la demande entrante le certificat public utilisé pour vérifier la signature, et le réutilise pour chiffrer la réponse. Du côté du fournisseur, la propriété personnaliséecom.ibm.wsspi.wssecurity.token.cert.useRequestorCert=true du générateur de chiffrement est utilisée à cette fin.

Le fichier de clés utilisé dans cette procédure est livré avec WebSphere Application Server et est installé dans chacun des profils créés. Vous pouvez utiliser la variable ${USER_INSTALL_ROOT} directement dans la configuration pour pointer aisément vers l'emplacement du fichier de clés sans utiliser de chemin qualifié complet. ${USER_INSTALL_ROOT} correspond à un chemin tel que c:/WebSphere/AppServer/profiles/AppSrv01.
${RACINE_INSTALL_UTILISATEUR}/etc/ws-security/samples/dsig-sender.ks
De par la nature de JaxWSServicesSamples, pour appliquer l'ensemble de règles et les liaisons à cette application, dans la console d'administration, cliquez sur Applications > Types d'application > Applications d'entreprise WebSphere > JaxWSServicesSamples. Lors de l'utilisation de vos propres applications, vous pouvez utiliser les chemins suivants comme autre moyen d'accéder au fournisseur et au client pour l'association de l'ensemble de règles et des liaisons :
  • Services > Fournisseurs de services > (Nom de l'application)
  • Services > Clients de service > (Nom de l'application)
Cette procédure simplifie la tâche pour les raisons suivantes :
  • Seuls la signature numérique sortante et le chiffrement entrant sont configurés.
  • Les liaisons générales sont utilisées pour le client et le fournisseur.
Eviter les incidents Eviter les incidents:

Si, après avoir terminé cette tâche, vous devez modifier les liaisons générales que vous avez créées, vous devrez enregistrer vos modifications et redémarrer le serveur d'applications. Bien que vous puissiez créer une liaison générale et l'utiliser immédiatement sans redémarrer le serveur d'applications, une fois qu'une liaison générale a été chargé par une application, les modifications qui lui sont apportées ne sont pas reconnus avant le redémarrage du serveur.

gotcha

Procédure

  1. Créez l'ensemble de règles personnalisé.
    1. Dans la console d'administration, cliquez sur Services > Ensembles de règles > Ensembles de règles d'application.
    2. Cliquez sur Nouveau.
    3. Spécifiez name=OutSignInEncPolicy.
    4. Sous Règles, cliquez sur Ajouter > WS-Security.
  2. Modifiez la règle personnalisée en supprimant le chiffrement sortant et la signature entrante.
    1. Dans la console d'administration, cliquez sur WS-Security > Règle principale.
    2. Sous Protection au niveau des messages, cliquez sur Protection des parties de message de demande.
    3. Cliquez sur app_encparts.
    4. Cliquez sur Supprimer.
    5. Cliquez sur Terminé.
    6. Cliquez sur Protection des parties de message de réponse.
    7. Cliquez sur app_sigparts.
    8. Cliquez sur Supprimer.
    9. Cliquez sur Terminé.
  3. Cliquez sur Sauvegarder pour enregistrer les modifications apportées à la configuration.
  4. Créez la liaison générale du fournisseur.
    1. Dans la console d'administration, cliquez sur Services > Ensembles de règles > Liaisons générales de l'ensemble de règles du fournisseur.
    2. Sélectionnez Exemple de fournisseur.
    3. Cliquez sur Copier....
    4. Spécifiez name=ProviderSignerCertGeneralBinding.
    5. Cliquez sur OK.
  5. Editez ProviderSignerCertGeneralBinding pour effectuer le chiffrement du certificat de signataire.
    1. Cliquez sur ProviderSignerCertGeneralBinding > WS-Security > Authentification et protection > gen_encx509token > Gestionnaire d'appel.
    2. Sous Propriétés personnalisées, entrez :
      Name=com.ibm.wsspi.wssecurity.token.cert.useRequestorCert
      value=true
    3. Sous Fichier de clés, sélectionnez Name=None
    4. Cliquez sur OK.
  6. Créez la liaison générale du client.
    1. Dans la console d'administration, cliquez sur Services > Ensembles de règles > Liaisons générales de l'ensemble de règles du client.
    2. Sélectionnez Exemples de client.
    3. Cliquez sur Copier....
    4. Spécifiez name=ClientSignerCertGeneralBinding.
    5. Cliquez sur OK.
  7. Editez ClientSignerCertGeneralBinding pour lui faire utiliser sa propre clé de signature pour déchiffrer le message.
    1. Cliquez sur ClientSignerCertGeneralBinding > WS-Security > Authentification et protection > con_encx509token > Gestionnaire d'appel > Configuration du fichier de clés personnalisée.
    2. Sous Fichier de clés, entrez le fichier de clés qui est utilisé par le générateur de signature :
      Full path=${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-sender.ks
      Type=JKS
      Password=client
    3. Sous Clé, entrez la clé qui est utilisée par le générateur de signature :
      Name=CN=SOAPRequester, OU=TRL, O=IBM, ST=Kanagawa, C=JP
      Alias=soaprequester
      Password=client
    4. Cliquez sur OK.
  8. Configurez le client pour qu'il utilise l'ensemble de règles OutSignInEncPolicy et la liaison générale ClientSignerCertGeneralBinding.
    1. Dans la console d'administration, cliquez sur Applications > Types d'application > Applications d'entreprise WebSphere > JaxWSServicesSamples > Liaisons et ensembles de règles de client de service.
    2. Sélectionnez la ressource de client de services Web (JaxWSServicesSamples).
    3. Cliquez sur Lier un ensemble de règles.
    4. Sélectionnez OutSignInEncPolicy.
    5. Sélectionnez de nouveau la ressource de client de services Web (JaxWSServicesSamples).
    6. Cliquez sur Affecter une liaison.
    7. Sélectionnez ClientSignerCertGeneralBinding.
  9. Configurez le fournisseur pour qu'il utilise l'ensemble de règles SimpleSignEncPolicy et la liaison générale ProviderSignerCertGeneralBinding.
    1. Dans la console d'administration, cliquez sur Applications > Types d'application > Applications d'entreprise WebSphere > JaxWSServicesSamples > Liaisons et ensembles de règles de fournisseur de service.
    2. Sélectionnez la ressource de fournisseur de services Web (JaxWSServicesSamples).
    3. Cliquez sur Lier un ensemble de règles.
    4. Sélectionnez OutSignInEncPolicy.
    5. Sélectionnez à nouveau la ressource de fournisseur de services Web (JaxWSServicesSamples).
    6. Cliquez sur Affecter une liaison.
    7. Sélectionnez PrioviderSignerCertGeneralBinding.
  10. Cliquez sur Sauvegarder pour enregistrer les modifications apportées à la configuration.
  11. Redémarrez le client et le fournisseur.
    1. Arrêtez le client et le fournisseur.
    2. Redémarrez le client et le fournisseur.
  12. Testez le service.
    1. Pointez votre navigateur Web vers JaxWSServicesSamples : http://localhost:9080/wssamplesei/demo.
      Eviter les incidents Eviter les incidents: Vous devez fournir un nom d'hôte et un port exacts si votre fournisseur ne figure pas sur la même machine ou si le port n'est pas 9080.gotcha
    2. Sélectionnez Message Type Synchronous Echo.
    3. Assurez-vous que l'option Use SOAP 1.2 n'est pas sélectionnée.
    4. Entrez un message, puis cliquez sur Send Message.
    L'exemple d'application doit répondre à l'aide de JAXWS==>Message.

Résultats

L'application de services Web JaxWSServicesSamples est configurée pour chiffrer les réponses à l'aide du certificat utilisé pour signer la demande.

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_configpolicysetforsignerencrypt
Nom du fichier : twbs_configpolicysetforsignerencrypt.html