Configuration des jetons de sécurité du destinataire à l'aide de l'API WSS
Vous pouvez sécuriser les messages SOAP sans recourir à des ensembles de règles, en utilisant les API Web Services Security. Pour configurer le jeton côté destinataire, utilisez les API Web Services Security (API WSS). Les jetons de sécurité du destinataire se trouvent dans le package de l'interface com.ibm.websphere.wssecurity.wssapi.token.
Avant de commencer
L'infrastructure du jeton connectable dans WebSphere Application Server a été recréée pour pouvoir être réutilisable à partir de l'API WSS. La même implémentation de création et de validation du jeton de sécurité peut être utilisée pour l'exécution de la sécurité des services Web et pour le code d'application de l'API WSS. La nouvelle structure simplifie également le modèle de programmation de la SPI, ainsi que l'ajout de types de jeton de sécurité.
Vous pouvez utiliser l'API WSS ou configurer les jetons à l'aide de la console d'administration. Pour configurer des jetons, vous devez avoir effectué la configuration de jetons de générateur, si besoin est.
Pourquoi et quand exécuter cette tâche
Côté générateur, le gestionnaire d'appel et le module de connexion JAAS sont chargés de créer le jeton de sécurité. Le jeton est créé à l'aide du module de connexion et du gestionnaire d'appel JAAS pour transmettre les données d'authentification. Ensuite, le module de connexion JAAS crée l'objet securityToken, tel que UsernameToken, et le transmet au module d'exécution WSS.
Côté destinataire, le format XML est transmis au module de connexion pour validation ou authentification. Ensuite, le gestionnaire d'appel permet de transmettre les données d'authentification du module d'exécution WSS au module de connexion. Une fois le jeton authentifié et un objet de jeton de sécurité créé, le premier est transmis au module d'exécution WSS.
Lorsque vous utilisez l'API WSS pour valider le jeton du destinataire, certains comportements par défaut se produisent. La façon la plus simple d'utiliser l'API WSS est d'employer le module de connexion et le gestionnaire d'appel JAAS par défaut. L'exemple utilise les valeurs par défaut et n'indique donc pas le nom du module de connexion JAAS.
La façon la plus simple d'utiliser l'API WSS est d'appliquer le comportement par défaut (voir l'exemple de code). L'API WSS fournit des valeurs par défaut pour le type de jeton, sa valeur et le nom de configuration JAAS. Les comportements par défaut des jetons sont les suivants :
Choix relatifs aux jetons du destinataire | Comportement par défaut |
---|---|
Type de jeton à utiliser | Il s'agit du type de jeton à utiliser pour signer et valider des messages. Le jeton X.509 est le type par défaut. WebSphere Application Server fournit les types de jeton de destinataire préconfigurés suivants :
Vous pouvez aussi créer des types de jeton personnalisés, si besoin est. |
Nom de configuration de connexion JAAS à indiquer | Il s'agit du nom de configuration de connexion JAAS à utiliser. |
Type de configuration à utiliser | Type de configuration du module de connexion JAAS. Seuls les types de configuration de destinataire préconfigurés peuvent être employés pour les types de jeton du destinataire. |
La classe SecurityToken (com.ibm.websphere.wssecurity.wssapi.token.SecurityToken) est la classe de jeton générique et représente le jeton de sécurité doté de méthodes pour obtenir l'identité, le format XML et des clés de chiffrement. A l'aide de cette classe, vous pouvez réaliser une signature et un chiffrement dans le message SOAP. Pour appliquer les deux opérations en revanche, vous devez disposer de deux objets SecurityToken : l'un pour la signature, l'autre pour le chiffrement, respectivement.
Les types de jeton suivants sont des sous-classes de la classe de jeton de sécurité générique :
Type de jeton | Nom de configuration de connexion JAAS |
---|---|
Jeton de contexte de sécurité | system.wss.consume.sct |
Jeton de clé dérivée | system.wss.consume.dkt |
Les types de jeton suivants sont des sous-classes de la classe de jeton de sécurité binaire :
Type de jeton | Nom de configuration de connexion JAAS |
---|---|
Jeton X.509 | system.wss.consume.x509 |
X.509 PKI Path token | system.wss.consume.pkiPath |
Jeton X.509 PKCS7 | system.wss.consume.pkcs7 |
- Pour chaque nom de configuration du destinataire de jeton de connexion JAAS, il existe un nom de configuration du générateur de jetons correspondant. Par exemple, pour X509Token, le nom de configuration du générateur de jetons est system.wss.generate.x509.
- Les jetons de propagation sont uniquement disponibles pour un demandeur exécutant un client basé serveur. La LTPA et les jetons de propagation LTPA ne sont pas compatibles avec le client d'application Java™ SE 6 ou Java EE.
Pour valider X509Token dans le message SOAP côté destinataire, l'élément <X509Token> doit se trouver dans celui <wsse:Security>.
Procédure
Résultats
Exemple
L'exemple de code suivant illustre le code de l'API WSS pour le déchiffrement à l'aide du module de connexion et du gestionnaire d'appel JAAS par défaut :
// Obtenir le contexte de message
Object msgcontext = getMessageContext();
// Générer l'instance WSSFactory (étape : a)
WSSFactory factory = WSSFactory.getInstance();
// Générer l'instance WSSConsumingContext (étape : b)
WSSConsumingContext gencont = factory.newWSSConsumingContext();
// Générer le gestionnaire d'appel (étape : c)
X509ConsumeCallbackHandler callbackHandler = new
X509ConsumeCallbackHandler(
"",
"enc-sender.jceks",
"jceks",
"storepass".toCharArray(),
"alice",
"keypass".toCharArray(),
"CN=Alice, O=IBM, C=US");
// Générer l'instance WSSDecryption (étape : d)
WSSDecryption dec = factory.newWSSDecryption(X509Token.class,
callbackHandler);
// Ajouter WSSDecryption à WSSConsumingContext (étape : e)
concont.add(dec);
// Valider l'en-tête WS-Security (étape : f)
concont.process(msgcontext);
Que faire ensuite
Pour chaque type de jeton, configurez le jeton à l'aide des API WSS ou de la console d'administration. Indiquez ensuite les jetons similaires de générateur si ce n'est pas déjà fait.
Si les jetons du générateur et du destinataire sont configurés, continuez à sécuriser les messages SOAP sur le destinataire de la réponse avec les API WSS ou configurez les jetons à l'aide de la console d'administration.
Si les jetons du générateur et du destinataire sont configurés, continuez à sécuriser les messages SOAP en vérifiant la signature ou en déchiffrant le message, selon les besoins. Vous pouvez utiliser les API WSS ou la console d'administration pour sécuriser les messages SOAP.