Aidez-vous de cette rubrique et des commandes du groupe
SecureConversation de l'objet AdminTask pour activer le cache client de
conversation sécurisée par la création d'un ensemble de règles et de
liaisons à associer à vos applications.
Avant de commencer
Vérifiez que l'ensemble de règles SecureConversation est disponible dans votre configuration. Par défaut, l'ensemble de règlesSecureConversation n'est pas disponible. Utilisez la commande importPolicySet pour importer la règle SecureConversation pour votre configuration, comme dans l'exemple suivant :
AdminTask.importPolicySet('-defaultPolicySet SecureConversation')
Avant d'utiliser les commandes décrites dans cette rubrique, assurez-vous d'utiliser la version la plus récente de l'outil wsadmin. Les commandes de gestion de l'ensemble de règles admettant l'objet properties comme valeur pour les paramètres attributes ou bindingLocation ne sont pas prises en charge dans les versions précédentes. Par exemple, elles ne fonctionnent pas sur un noeud dont la version est 6.1.0.x.
Pourquoi et quand exécuter cette tâche
Dans cette rubrique, la règle par défaut SecureConversation
ainsi que les liaisons par défaut WS-Security et
TrustServiceSecurityDefault sont utilisées pour activer la fonction de
conversation sécurisée.
L'ensemble de règles par défaut
SecureConversation contient une règle d'application dotée d'une liaison
symétrique et une règle d'amorce dotée d'une liaison asymétrique. La règle
d'application sécurise les messages d'application. La règle d'amorce sécurise les messages RequestSecurityToken (RST). Le service d'accréditation, qui émet des fournisseurs de jeton de contexte de sécurité, utilise la règle système TrustServiceSecurityDefault et les liaisons TrustServiceSecurityDefault. La règle de confiance sécurise les
messages RequestSecurityTokenResponse (RSTR). Si vous modifiez la règle
d'amorce, vous devez également modifier la règle de confiance pour que les
deux configurations correspondent.
Eviter les incidents: Utilisez les étapes ci-après
dans les environnements de développement et de test uniquement. Les liaisons WS-Security de cette procédure contiennent des exemples de
fichiers de clés que vous devez personnaliser pour utiliser les liaisons dans un environnement de production.
Créez des liaisons personnalisées pour votre environnement de production.
gotcha
Procédure
- Lancez l'outil de script wsadmin via le langage de script Jython. Pour plus d'informations, voir Démarrage du client de scriptage wsadmin.
- Copiez l'ensemble de règles SecureConversation existant.
Utilisez l'exemple de commande suivant pour créer un ensemble de règles par la copie de l'ensemble de règles SecureConversation existant :
AdminTask.copyPolicySet('[-sourcePolicySet SecureConversation -newPolicySet CopyOfSCPolicySet]')
- Modifiez la liaison pour le domaine de sécurité global. Si vous avez choisi l'option Créer le serveur à l'aide du modèle de développement lors de la création du profil avec l'outil de gestion des profils ou l'utilitaire de commande manageprofiles, vous pouvez ignorer cette étape.
- Répertoriez tous les attributs de règle WS-Security.
Pour modifier la liaison pour le domaine de sécurité globale, utilisez la commande getDefaultBindings afin de déterminer la liaison définie comme valeur par défaut pour le fournisseur ou le client, comme le montre l'exemple suivant :
AdminTask.getDefaultBinding('-bindingType fournisseur')
- Affichez les attributs pour la liaison.
Utilisez la commande getBinding pour afficher les attributs en cours de la liaison, comme le montre l'exemple suivant :
AdminTask.getBinding('-bindingLocation "" -bindingName myBinding')
- Modifiez la configuration sortante du jeton de protection.
Utilisez les commandes suivantes pour modifier la configuration sortante du jeton de protection :
cmd1_attributes_value = "[ [application.securityoutboundbindingconfig.tokengenerator_5.callbackhandler
.key.name [CN=Bob,O=IBM, C=US]] [application.securityoutboundbindingconfig.tokengenerator_5.callbackhandler
.keystore.storepass storepass] [application.securityoutboundbindingconfig.tokengenerator_5.callbackhandler
.keystore.type JCEKS] [application.securityoutboundbindingconfig.tokengenerator_5.callbackhandler.key.alias bob]
[application.securityoutboundbindingconfig.tokengenerator_5.callbackhandler.keystore.path ${USER_INSTALL_ROOT}
/etc/ws-security/samples/enc-sender.jceks] ]"
AdminTask.setBinding('[-policyType WSSecurity -bindingLocation "" -attributes cmd1_attributes_value
-attachmentType application]')
cmd2_attributes_value = "[ [application.securityoutboundbindingconfig.tokengenerator_0.callbackhandler.keystore
.path ${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-sender.ks] [application.securityoutboundbindingconfig
.tokengenerator_0.callbackhandler.keystore.storepass client] [application.securityoutboundbindingconfig
.tokengenerator_0.callbackhandler.key.name [CN=SOAPRequester, OU=TRL, O=IBM, ST=Kanagawa, C=JP]] [application
.securityoutboundbindingconfig.tokengenerator_0.callbackhandler.key.keypass client] [application
.securityoutboundbindingconfig.tokengenerator_0.callbackhandler.key.alias soaprequester]
[application.securityoutboundbindingconfig.tokengenerator_0.callbackhandler.keystore.type JKS] ]"
AdminTask.setBinding('[-policyType WSSecurity -bindingLocation "" -attributes cmd2_attributes_value
-attachmentType application]')
- Facultatif : Modifiez la liaison TrustDefaultBindings.
Si vous avez choisi l'option Créer le serveur à l'aide du modèle de développement lors de la création du profil avec l'outil de gestion des profils ou l'utilitaire de commande manageprofiles, vous pouvez ignorer cette étape.
Si la liaison TrustDefaultBindings n'est pas encore personnalisée, modifiez-la à l'aide de la commande suivante :
cmd3_attributes_value = "[ [application.securityoutboundbindingconfig.tokengenerator_1.callbackhandler.keystore
.storepass storepass] [application.securityoutboundbindingconfig.tokengenerator_1.callbackhandler.key.alias bob]
[application.securityoutboundbindingconfig.tokengenerator_1.callbackhandler.keystore.type JCEKS] [application
.securityoutboundbindingconfig.tokengenerator_1.callbackhandler.keystore.path ${USER_INSTALL_ROOT}/etc
/ws-security/samples/enc-sender.jceks] [application.securityoutboundbindingconfig.tokengenerator_1.callbackhandler
.key.name [CN=Bob, O=IBM, C=US]] ]"
AdminTask.setBinding('[-policyType WSSecurity -bindingLocation "[attachmentId 2]"
-attributes cmd3_attributes_value -attachmentType system/trust]')
cmd4_attributes_value = "[ [application.securityoutboundbindingconfig.tokengenerator_0.callbackhandler.keystore.path
${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-sender.ks] [application.securityoutboundbindingconfig.tokengenerator_0
.callbackhandler.keystore.storepass client] [application.securityoutboundbindingconfig.tokengenerator_0.callbackhandler
.key.name [CN=SOAPRequester, OU=TRL, O=IBM, ST=Kanagawa, C=JP]] [application.securityoutboundbindingconfig.tokengenerator_0
.callbackhandler.key.keypass client] [application.securityoutboundbindingconfig.tokengenerator_0.callbackhandler.key
.alias soaprequester] [application.securityoutboundbindingconfig.tokengenerator_0.callbackhandler.keystore.type JKS] ]"
AdminTask.setBinding('[-policyType WSSecurity -bindingLocation "[attachmentId 2]"
-attributes cmd4_attributes_value -attachmentType system/trust]')
- Associez l'ensemble de règles et la liaison à l'application.
Utilisez le paramètre attachmentType de la commande
createPolicySetAttachment pour indiquer si l'application est un client de
services ou un fournisseur de services. Utilisez les commandes suivantes pour associer l'ensemble de règles
CopyOfSCPolicySet à l'application client de services
myTestApp :
AdminTask.createPolicySetAttachment('[-applicationName myTestApp -policySet CopyOfSCPolicySet
-resources WebService:/ -attachmentType client]')
Utilisez les commandes suivantes pour associer l'ensemble de règles
CopyOfSCPolicySet à l'application fournisseur de services
myTestApp :
AdminTask.createPolicySetAttachment('[-applicationName myTestApp -policySet CopyOfSCPolicySet
-resources WebService:/ -attachmentType application]')
Cette étape affecte automatiquement les liaisons.
Résultats
La configuration de conversation sécurisée est mise à jour dans le
fichier WSSCCache.xml qui se trouve dans le répertoire de niveau cellule.
Que faire ensuite
Gérez les configurations de conversation sécurisée à l'aide du
groupe de commandes SecureConversation de l'objet AdminTask.