Mappages de connexion
Les mappages de connexion, se trouvant dans le fichier ibm-webservices-bnd.xmi XML (Extended Markup Language), contiennent une configuration de mappage. Cette configuration de mappage définit comment le gestionnaire de sécurité des Services Web mappe l'élément <ValueType> de jeton, contenu dans le jeton de sécurité extrait de l'en-tête de message, vers la méthode d'authentification correspondante. L'élément <ValueType> de jeton se trouve dans le jeton de sécurité extrait d'un en-tête de message SOAP.
Le gestionnaire de sécurité des services Web au niveau de l'expéditeur génère et connecte des jetons de sécurité définis en fonction de l'élément <AuthMethods> défini dans le descripteur de déploiement. Par exemple, si la méthode d'authentification est BasicAuth, le gestionnaire de sécurité au niveau de l'expéditeur génère et connecte UsernameToken (avec le nom d'utilisateur et le mot de passe) à l'en-tête de message SOAP. L'environnement d'exécution de la sécurité des Services Web utilise l'interface JAAS (Java™ Authentication and Authorization Service) javax.security.auth.callback.CallbackHandler en tant que fournisseur de sécurité pour générer des jetons de sécurité côté client (ou lorsque les services Web se comportent comme un client).
Le gestionnaire de sécurité de l'expéditeur appelle la méthode handle() d'une implémentation d'interface javax.security.auth.callback.CallbackHandler. Cette implémentation crée le jeton de sécurité et le transmet au gestionnaire de sécurité de l'expéditeur. Le gestionnaire de sécurité de l'expéditeur construit le jeton de sécurité en fonction des informations d'authentification de la zone de rappel. Le gestionnaire de sécurité insère alors le jeton de sécurité dans l'en-tête du message de sécurité des services Web.
<loginBinding xmi:id="LoginBinding_1052760331526" authMethod="BasicAuth"
callbackHandler="com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler"/>
- com.ibm.wsspi.wssecurity.auth.callback.GUIPromptCallbackHandler
- S'il n'existe aucune donnée d'authentification de base définie dans les informations de liaison de connexion (différentes des informations d'authentification de base HTTP), le type de jeton précédent vous invite à entrer le nom d'utilisateur et le mot de passe dans un panneau de connexion. L'implémentation utilise les données d'authentification de base définies dans la liaison de connexion. Utilisez cet élément CallbackHandler avec cette méthode d'authentification BasicAuth. N'utilisez pas cette implémentation CallbackHandler sur le serveur car il vous invite à entrer des informations de liaison de connexion.
- com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler
- Si les données d'authentification de base ne sont pas définies dans les informations de liaison de connexion (différentes des informations d'authentification de base HTTP), vous êtes invité à entrer le nom d'utilisateur et le mot de passe à l'aide de l'entrée standard (stdin). L'implémentation utilise les données d'authentification de base définies dans la liaison de connexion. Utilisez cette implémentation CallbackHandler avec cette méthode d'authentification BasicAuth. N'utilisez pas cette implémentation CallbackHandler sur le serveur car il vous invite à
entrer des informations de liaison de connexion.Restriction : Si vous possédez un client multiprocessus et que plusieurs unités d'exécution à la fois tentent d'obtenir le nom d'utilisateur et le mot de passe par entrée standard, toutes n'obtiendront pas ces informations. Par conséquent, vous ne pouvez pas utiliser l'implémentation com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler avec un client multiprocessus lorsque plusieurs unités d'exécution tentent simultanément d'obtenir des données par entrée standard.
- com.ibm.wsspi.wssecurity.auth.callback.NonPromptCallbackHandler
- Cette implémentation CallbackHandler ne propose pas d'invite. A la place, elle utilise les données d'authentification de base définies dans les informations de liaison de connexion (différentes des informations d'authentification de base HTTP). Cette implémentation CallbackHandler doit être utilisée avec la méthode d'authentification BasicAuth. Vous devez définir les données d'authentification de base dans les informations de liaison de connexion pour cette implémentation CallbackHandler. Cette implémentation peut être utilisée lorsque les services Web sont en cours d'exécution en tant que client et doivent envoyer une authentification de base (<wsse:UsernameToken>) à l'appel aval.
- com.ibm.wsspi.wssecurity.auth.callback.LTPATokenCallbackHandler
- L'élément CallbackHandler génère des jetons LTPA (Lightweight Third Party Authentication) à partir du sujet JAASrun as (sujet de l'appel) du contexte de sécurité de WebSphere Application Server en cours. Toutefois, s'il existe des données d'authentification de base définies dans les informations de liaison de connexion (différentes des informations d'authentification de base HTTP), l'implémentation utilise les données d'authentification de base et le jeton LTPA générés. L'URI de type de jeton et le nom local du type de jeton doivent être définis dans les informations de liaison de connexion pour cette implémentation CallbackHandler. Le type de valeur de jeton permet de valider le jeton dans la configuration de liaison du destinataire de demande et de l'expéditeur de la demande. L'environnement d'exécution de la sécurité des Services Web insère le jeton LTPA en tant que jeton de sécurité binaire (<wsse:BinarySecurityToken>) dans l'en-tête SOAP du message. Le type de valeur est obligatoire. (Pour obtenir plus d'informations, voir section LTPA). Utilisez cette implémentation CallbackHandler avec cette méthode d'authentification LTPA.

- Lors de la réception d'un message, le gestionnaire de sécurité des Services Web de l'expéditeur compare le type de jeton (dans l'en-tête de message) aux types de jetons attendus configurés dans le descripteur de déploiement.
- Le gestionnaire de sécurité des services Web extrait le jeton de sécurité de l'en-tête de message et mappe l'élément <ValueType> du
jeton vers la méthode d'authentification correspondante. La configuration du mappage est définie
dans l'élément <loginMappings> du fichier XML
ibm-webservices-bnd.xmi. Par
exemple :
<loginMappings xmi:id="LoginMapping_1051977980074" authMethod="LTPA" configName="WSLogin"> <callbackHandlerFactory xmi:id="CallbackHandlerFactory_1051977980081" classname="com.ibm.wsspi.wssecurity.auth.callback.WSCallbackHandlerFactoryImpl"/> <tokenValueType xmi:id="TokenValueType_1051977980081" uri="http://www.ibm.com/websphere/appserver/tokentype/5.0.2" localName="LTPA"/> </loginMappings>
L'interface com.ibm.wsspi.wssecurity.auth.callback.CallbackHandlerFactory est une fabrique pour javax.security.auth.callback.CallbackHandler.
- L'environnement d'exécution de la sécurité des Services Web initie la classe d'implémentation de fabrique et transmet les informations d'authentification de l'en-tête de sécurité des Services Web à la classe de la fabrique via les méthodes définies.
- L'environnement d'exécution de la sécurité des Services Web appelle la méthode newCallbackHandler() afin d'obtenir l'objet javax.security.auth.CallbackHandler, qui génère le jeton de sécurité requis.
- Lorsque le gestionnaire de sécurité reçoit un élément BinarySecurityToken LTPA,
il utilise la configuration JAAS WSLogin et la méthode
newCallbackHandler() pour valider le jeton de sécurité.
Si aucun des types de jeton attendus n'est trouvé dans l'en-tête de sécurité des services Web du message
SOAP, la demande est rejetée avec une erreur SOAP. Sinon, le type de jeton permet d'effectuer un
mappage vers une configuration de connexion JAAS pour la validation du jeton. Si l'authentification a abouti, un sujet JAAS est créé et associé à l'unité d'exécution en cours. Sinon, la demande est rejetée
avec une erreur SOAP.Le tableau suivant affiche les méthodes d'authentification et les configurations de connexion JAAS.
Tableau 1. Méthodes d'authentification et configurations des connexions JAAS. Les méthodes d'authentification se mappent à la configuration de connexion JAAS pour la validation du jeton. Méthode d'authentification Configuration de connexion JAAS BasicAuth (authentification de base) WSLogin Signature system.wssecurity.Signature LTPA WSLogin IDAssertion (assertion d'identité) system.wssecurity.IDAssertion La figure 2 affiche le gestionnaire de sécurité du destinataire dans le processus du message du destinataire de la demande.Figure 2. Processus du message SOAP du destinataire de la demandeLa valeur par défaut <LoginMapping> est définie dans les fichiers suivants :- ws-security.xml au niveau de la cellule et ws-security.xml au niveau du serveur
- Le client lit les informations de liaison par défaut du fichier ${rép_install}/properties/ws-security.xml.
- Le composant d'exécution du serveur charge les fichiers suivants, s'ils existent.
- ws-security.xml au niveau de la cellule et ws-security.xml au niveau du serveur. Les deux fichiers sont fusionnés dans l'environnement d'exécution afin de former un ensemble d'informations de liaison par défaut.
Sur un serveur d'applications de base, le composant d'exécution du serveur charge uniquement le fichier ws-security.xml du niveau serveur. Le fichier ws-security.xml de niveau serveur et les informations de liaison de sécurité des Services Web d'applications sont gérés à l'aide de la console d'administration. Vous pouvez définir les informations de liaison lors du déploiement des applications, à l'aide de la console d'administration. La stratégie de sécurité des services Web est définie dans l'extension du descripteur de déploiement (ibm-webservicesclient-ext.xmi) et les liaisons sont stockées dans l'extension de liaison IBM® (ibm-webservicesclient-bnd.xmi). Toutefois, le fichier ${rép_install}/properties/ws-security.xml définit la valeur de liaison par défaut pour le client. Si les informations de liaison ne sont pas spécifiées dans le fichier de liaisons, l'environnement d'exécution lit les informations de liaison du fichier par défaut ${rép_install*}/properties/ws-security.xml.