Trois types de mécanismes d'authentification de connexion Web
permettent de configurer une application Web : l'authentification de base,
l'authentification par formulaire et l'authentification par certificat. Protégez les ressources Web dans une application Web en affectant des rôles de
sécurité à ces ressources.
Pourquoi et quand exécuter cette tâche
Pour sécuriser des applications Web, déterminez les ressources Web à
protéger et la méthode à suivre pour y parvenir.
Remarque : Cette procédure peut ne pas correspondre aux étapes requises lors de l'utilisation de votre
outil d'assemblage, ou à la version de l'outil d'assemblage que vous utilisez. Respectez les instructions correspondant à l'outil et à la version que vous utilisez.
Les étapes ci-dessous décrivent en détail la sécurisation d'une application Web
à l'aide d'un outils d'assemblage :
Procédure
- Dans un outil d'assemblage, importez le fichier WAR ou un fichier EAR
contenant un ou plusieurs modules Web.
- Dans le dossier Explorateur de projets, recherchez l'application Web.
- A l'aide du bouton droit de la souris, cliquez sur le descripteur de
déploiement et sélectionnez Ouvrir avec > Editeur de descripteur de déploiement. La fenêtre Descripteur de déploiement s'affiche. Pour accéder à l'aide en ligne de l'éditeur, appuyez sur la touche F1 et cliquez sur le nom de l'éditeur. Si vous sélectionnez un fichier WAR, un éditeur de descripteur de
déploiement Web s'affiche.
Si vous sélectionnez un fichier EAR, un éditeur de descripteur de
déploiement d'application s'affiche.
- Créez des rôles de sécurité au niveau de l'application ou du module Web. Si un rôle de sécurité est créé au niveau du module Web, le rôle
s'affiche également au niveau de l'application. Si un rôle de sécurité est créé
au niveau de l'application, le rôle ne s'affiche pas dans tous les modules Web. Vous pouvez copier et coller un rôle de sécurité au niveau de
l'application dans un ou plusieurs rôles de sécurité du
module Web.
- Créez un rôle au niveau du module Web. Dans un éditeur de descripteur
de déploiement Web, cliquez sur l'onglet Sécurité. Dans Rôles de sécurité, cliquez sur Ajouter.
Entrez le nom du rôle de sécurité, la description associée et cliquez sur Terminer.
- Créez un rôle au niveau de l'application. Dans un éditeur de descripteur de
déploiement d'application, cliquez sur l'onglet Sécurité. Sous la liste des rôles de sécurité, cliquez sur
Ajouter. Dans l'assistant d'ajout de rôles de sécurité, indiquez le nom et la
description du rôle de sécurité, puis cliquez sur Fin.
- Créez des contraintes de sécurité. Les contraintes de sécurité correspondent au mappage d'une ou de
plusieurs ressources Web à un ensemble de rôles.
- Dans la page Sécurité d'un éditeur de descripteur de déploiement Web,
cliquez sur Contraintes de sécurité. La page Contraintes de
sécurité permet d'effectuer les actions suivantes :
- Dans Contraintes de sécurité, cliquez sur Ajouter.
- Dans Nom de la contrainte, indiquez un nom d'affichage pour la
contrainte de sécurité et cliquez sur Suivant.
- Entrez le nom et la description de la collection de ressources Web.
- Sélectionnez une ou plusieurs méthodes HTTP. Les options des méthodes HTTP sont les suivantes :
GET, PUT, HEAD, TRACE, POST, DELETE et OPTIONS.
- Dans la zone Masques URL, cliquez sur Ajouter.
- Indiquez un masque d'URL. Par exemple, entrez - /*, *.jsp, /hello. Consultez la spécification des servlets version 2.4 pour déterminer
comment mapper les masques d'URL vers les servlets. Le module d'exécution utilise d'abord la correspondance exacte pour mapper l'URL entrante avec les modèles d'URL. Si la correspondance exacte n'existe pas, le module de sécurité utilisera la correspondance la plus longue. La concordance du
masque d'URL par caractère générique (*.,*.jsp) est
utilisée en dernier.
- Cliquez sur Terminer.
- Répétez ces étapes pour créer plusieurs contraintes de sécurité.
- Mappez les éléments security-role-ref et role-name vers l'élément role-link. Lors du développement d'une application Web, vous pouvez créer l'élément
security-role-ref. Cet élément comporte uniquement la zone role-name. La zone role-name contient le nom du rôle référencé dans le code du servlet ou de la page
JSP (JavaServer Pages) pour déterminer si l'appelant est associé à un rôle indiqué. Les
rôles de sécurité étant créés lors de la phase d'assemblage, le développeur utilise un
nom de rôle logique dans la zone Role-name et fournit une description suffisante
dans la zone Description pour que l'assembleur puisse mapper le rôle réel. L'élément security-role-ref se trouve au niveau du servlet.
Un servlet ou un fichier JSP (JavaServer Pages) peut comporter aucun, un ou plusieurs
éléments security-role-ref.
- Accédez à l'onglet Références d'un éditeur de descripteur de déploiement
Web. Dans la page Références, vous pouvez ajouter ou supprimer le nom d'une
référence de bean enterprise au descripteur de déploiement.
Dans cette page, vous
pouvez ajouter cinq types de référence :
- Référence EJB
- Référence de service
- Référence de ressource
- Référence de destination de message
- Référence de rôle de sécurité
- Référence d'environnement de ressource
- Sous la liste des références EJB (Enterprise
JavaBeans), cliquez sur Ajouter.
- Indiquez un nom ou un type pour la référence dans les zones Nom et Type de réf.
- Sélectionnez Beans enterprise dans l'espace de travail ou Beans enterprise hors de l'espace de travail.
- Facultatif : Si vous sélectionnez Beans enterprise hors de l'espace de travail, sélectionnez le type de bean enterprise dans la zoneType. Vous pouvez indiquer un bean entity ou un bean session.
- Facultatif : Cliquez sur Parcourir pour définir les valeurs de l'interface locale home et l'interface locale dans les zones Interface home locale Local, puis cliquez sur Suivant.
- Mappez chaque role-name utilisé lors du développement au rôle
en suivant les étapes ci-dessus. Chaque nom de rôle utilisé lors du
développement est mappé vers le rôle réel.
- Définissez l'identité d'exécution (RunAs) pour les servlets et les fichiers JSP. L'identité RunAs d'un servlet permet d'appeler les beans enterprise
à partir du code du servlet. Lorsque les beans entreprise sont appelés, l'identité RunAs est transmise
au bean enterprise pour contrôler l'autorisation sur les beans enterprise. Si l'identité RunAs n'est pas indiquée, l'identité du client est propagée
aux beans enterprise. L'identité RunAs est affectée au niveau du
servlet.
- Dans la page Servlets d'un éditeur de descripteur de déploiement Web,
cliquez sur Servlets et fichiers JSP, puis sur Ajouter. L'assistant d'ajout d'un servlet ou d'un fichier JSP s'affiche.
- Définissez les paramètres des servlets ou des pages JSP (JavaServer Pages)
et notamment le nom, les paramètres d'initialisation et les mappages d'URL, puis cliquez
sur Suivant.
- Indiquez la destination du fichier de classe.
- Cliquez sur Suivant pour indiquer des paramètres supplémentaires ou cliquez sur Terminer.
- Cliquez sur Exécuter en tant que dans la page Servlets,
sélectionnez le rôle de sécurité et décrivez-le.
- Indiquez une identité RunAs pour chaque servlet et fichier JSP utilisé par
votre application Web.
- Configurez le mécanisme de connexion du module Web. Ce mécanisme de
connexion configuré s'applique à tous les servlets, les fichiers JSP
(JavaServer Pages) et les ressources HTML du module Web.
- Cliquez sur l'onglet Pages d'un éditeur de descripteur de
déploiement Web, puis sur Connexion. Sélectionnez la méthode d'authentification
requise. Les valeurs admises pour les méthodes sont les suivantes :
Unspecified (Non spécifié), Basic (De base), Digest (Simplifié), Form (Formulaire) et
Client-Cert (Certificat client).
- Indiquez un nom de domaine.
- Si vous avez sélectionné la méthode d'authentification par formulaire,
choisissez une page de connexion et l'adresse Web d'une page d'erreur. Par exemple, /login.jsp ou /error.jsp. Les pages de connexion et d'erreur indiquées se trouvent dans le fichier .war.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
Installez le certificat client dans le navigateur ou le client Web et
placez-le dans le fichier de clés du serveur si vous avez sélectionné
ClientCert.
Installez le certificat client sur le client Web du navigateur et
placez-le dans le fichier de clés des tiers dignes de confiance du serveur si
vous avez sélectionné le certificat ClientCert. Le certificat public de l'autorité de certification des clients doit être
placé dans le fichier de clés RACF des serveurs. Si le registre est un registre du système d'exploitation local, utilisez la commande RACDCERT MAP ou la commande SAF (System Authorization Facility)
équivalente pour autoriser la création d'une entité MVS à l'aide du
certificat du client.
- Fermez l'éditeur du descripteur de déploiement et, à l'invite, cliquez sur Oui pour sauvegarder les modifications.
Résultats
Une fois que vous avez sécurisé une application Web, le fichier
d'archive W (WAR), qui en résulte, contient des informations de sécurité dans
son descripteur de déploiement.
Les informations de sécurité du module Web sont enregistrées dans le fichier
web.xml.
Lorsque vous utilisez l'éditeur de descripteur de déploiement Web, vous pouvez
également modifier d'autres descripteurs de déploiement dans le projet Web, y
compris des informations relatives aux liaisons et aux extensions IBM®
dans les fichiers
ibm-web-bnd.xmi et
ibm-web-ext.xmi.
Configurations prises en charge: Pour les
fichiers de liaison et d'extension IBM, l'extension
de nom de fichier .xmi ou .xml est différente selon que vous utilisiez un module ou une application antérieure à
Java EE 5 ou un module ou une application ultérieure à Java EE 5. Un fichier de liaison ou d'extension
IBM porte le nom ibm-*-ext.xmi ou ibm-*-bnd.xmi où * correspond au fichier
d'extension ou de liaison, tel app, application, ejb-jar ou web. Les conditions suivantes s'appliquent :
- Pour une application ou un module qui utilise une version Java EE antérieure à la
version 5, l'extension de fichier doit être .xmi.
- Pour une application ou un module qui utilise Java EE 5 ou version ultérieure, l'extension
de fichier doit être .xml. Si des fichiers .xmi sont inclus dans l'application ou le module, le produit les ignore.
Toutefois, un module Java EE
5 ou version ultérieure peut exister dans une application qui inclut des fichiers
antérieurs à Java EE 5 et utilise l'extension de nom de fichier .xmi.
Les fichiers ibm-webservices-ext.xmi, ibm-webservices-bnd.xmi, ibm-webservicesclient-bnd.xmi, ibm-webservicesclient-ext.xmi et ibm-portlet-ext.xmi continuent d'utiliser les extensions de fichier .xmi.
sptcfg
Que faire ensuite
Après avoir utilisé les outils d'assemblage pour sécuriser une
application Web, vous pouvez installer l'application Web à l'aide de la console
d'administration.
Pendant l'installation de l'application Web, complétez les étapes de
Déploiement d'applications sécurisées pour compléter la sécurisation de
l'application Web.