Vous pouvez sécuriser des services Web en configurant l'ensemble de règles de sécurité de services Web et des liaisons pour un jeton de sécurité autonome LTPA (Lightweight Third Party Authentication) ou un jeton de nom d'utilisateur.
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 documentation relative à l'accès aux exemples. Indiquez la spécification de trace suivante pour vous permettre 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:
Si des jetons LTPA sont utilisés, vous devez activer la sécurité des applications sur les serveurs d'applications utilisés pour le client
et le service.
Pourquoi et quand exécuter cette tâche
Cette rubrique explique comment configurer un ensemble de règles de sécurité de services Web pour un jeton de nom d'utilisateur (Username) ou LTPA. Pour
des raisons de simplicité, cette procédure explique comment supprimer les attributs d'horodatage, de signature numérique et de chiffrement de la règle. Cependant, si vous le souhaitez, vous pouvez les inclure dans votre configuration finale.
Pour plus d'informations, reportez-vous à la documentation relative à la configuration d'un ensemble de règles et
de liaisons pour la signature numérique XML asymétrique ou le chiffrement XML à l'aide de liaisons spécifiques aux applications client et fournisseur.
Dans cette tâche, des liaisons générales de fournisseur par défaut sont utilisées pour l'application fournisseur afin de consommer les jetons. Si une configuration d'appelant est requise, une liaison spécifique à une application sera ajoutée pour le fournisseur.
Procédure
- Créez l'ensemble de règles personnalisé.
- Dans la console d'administration, cliquez sur Services > Ensembles de règles > Ensembles de règles d'application.
- Cliquez sur Nouveau.
- Indiquez Name = OneTokenPolicy.
- Cliquez sur Apply.
- Sous Règles, cliquez sur Ajouter > WS-Security.
- Editez l'ensemble de règles personnalisé.
- Supprimez la signature numérique, le chiffrement et l'horodatage.
- Dans la console d'administration, cliquez sur WS-Security > Règle principale.
- Désélectionnez Protection au niveau des messages.
- Cliquez sur Apply.
- Ajoutez le jeton UsernameToken ou LTPA.
- Sous Détails des règles, cliquez sur Règles de jeton de demande.
- Sélectionnez Ajouter un type de jeton.
- Si vous souhaitez utiliser un jeton UsernameToken, sélectionnez Nom d'utilisateur.
Si vous souhaitez utiliser un jeton LTPA, sélectionnez LTPA.
Token
name=myToken.
- Cliquez sur OK.
- Configurez le client pour qu'il utilise l'ensemble de règles OneTokenPolicy.
- 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.
- Sélectionnez la ressource de client de services Web.
- Cliquez sur Lier un ensemble de règles.
- Sélectionnez OneTokenPolicy .
- Créez une liaison personnalisée pour le client.
- Sélectionnez de nouveau la ressource de services Web.
- Cliquez sur Affecter une liaison.
- Cliquez sur Nouvelle liaison spécifique à l'application pour créer une liaison spécifique à l'application.
- Indiquez le nom de configuration des liaisons : oneTokenClientBinding
- Cliquez sur Ajouter > WS-Security.
- Si le panneau Liaisons principales de stratégie de sécurité des messages ne s'affiche pas, sélectionnez WS-Security.
- Editez la liaison personnalisée du client.
- Cliquez sur Authentification et protection
- Editez le générateur de jeton d'identité pour envoyer le nom d'utilisateur d'identité.
- Cliquez sur request:myToken.
- Cliquez sur Apply.
- Cliquez sur Gestionnaire d'appel. User
name=(mon_nom_utilisateur) Password=(mon_mot_de_passe)
Eviter les incidents: Il s'agit d'un nom d'utilisateur/mot de passe valide dans le registre d'utilisateurs sur le système du fournisseur. Si vous utilisez des jetons LTPA, le nom d'utilisateur/mot de passe doit être valide dans les registres du consommateur et du fournisseur.
gotcha
- (Facultatif) Si vous configurez un jeton UsernameToken, ajoutez les propriétés personnalisées de sécurité de services Web suivantes :
*com.ibm.wsspi.wssecurity.token.username.addNonce=true
*com.ibm.wsspi.wssecurity.token.username.addTimestamp=true
Ces propriétés personnalisées sont ajoutées car elles sont spécifiées dans les liaisons générales par défaut de consommateur UsernameToken. Si vous n'indiquez pas ces propriétés ici, vous devrez les supprimer des liaisons générales par défaut du fournisseur ou créer des liaisons propres à l'application pour le fournisseur qui n'inclut pas ces propriétés.
- Cliquez sur OK.
- Cliquez sur Sauvegarder
- Configurez le fournisseur pour l'utilisation de l'ensemble de règles OneTokenPolicy.
- 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.
- Sélectionnez la ressource de fournisseur de services Web (OneTokenPolicy).
- Cliquez sur Lier un ensemble de règles.
- Sélectionnez OneTokenPolicy
Remarque : Comme aucune liaison n'est associée à l'application du fournisseur, celle-ci utilisera les liaisons générales de fournisseur pour les consommateurs de jeton.
- (Facultatif) Si vous souhaitez créer une configuration d'appelant pour le fournisseur, créez des liaisons personnalisées pour le fournisseur.
- Sélectionnez de nouveau la ressource de fournisseur de services Web.
- Cliquez sur Affecter une liaison.
- Cliquez sur Nouvelle liaison spécifique à l'application pour créer une liaison spécifique à l'application.
- Spécifiez Nom de configuration des liaisons:oneTokenProvBinding.
- Cliquez sur Ajouter > WS-Security.
- Si le panneau Liaisons principales de stratégie de sécurité des messages ne s'affiche pas, sélectionnez WS-Security.
- (Facultatif) Si une configuration d'appelant sera créée, éditez les liaisons personnalisées pour le fournisseur.
- Cliquez sur Appelant > Nouveau. Nom :
monAppelant.
- Si vous utilisez un jeton UsernameToken, entrez ce qui suit :
- Nom local de l'identité de l'appelant : http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken
- Si vous utilisez un jeton LTPA, entrez ce qui suit :
- Nom local de l'identité de l'appelant : LTPAv2
- Identificateur URI local de l'identité de l'appelant : http://www.ibm.com/websphere/appserver/tokentype
- Cliquez sur OK.
- Cliquez sur Sauvegarder pour sauvegarder les modifications apportées à la configuration.
- Redémarrez le client et le fournisseur.
- Arrêtez le client et le fournisseur.
- Redémarrez le client et le fournisseur.
- Testez le service.
- Pointez votre navigateur Web vers JaxWSServicesSamples : http://localhost:9080/wssamplesei/demo
Eviter les incidents: Veillez à fournir le nom d'hôte et le port corrects si votre profil ne figure pas sur la même machine ou si le port n'est pas 9080.
gotcha
- Sélectionnez Message Type Synchronous Echo
- Assurez-vous que l'option Use SOAP 1.2 n'est pas sélectionnée.
- Entrez un message, puis cliquez sur Send Message.
L'exemple d'application doit répondre avec JAXWS==>Message.
Résultats
L'application de services Web JaxWSServicesSamples est configurée pour générer et consommer un jeton UsernameToken ou LTPA dans le message de demande.