Vous pouvez configurer un module de connexion JAAS (Java™ Authentication and Authorization
Service) personnalisé avant ou après avoir configuré le module de connexion du serveur de profil Liberty.
Avant de commencer
Assurez-vous de disposer d'un fichier JAR contenant le module de connexion JAAS personnalisé qui implémente l'interface javax.security.auth.spi.LoginModule, comme décrit dans Développement de modules de connexion JAAS personnalisés pour une configuration de connexion système. Dans cette rubrique, le module de connexion personnalisé JAAS utilise une table de hachage, des rappels ou des variables d'état partagé fournis par le serveur de profil Liberty pour transmettre les données d'authentification au module de connexion du système.
Pourquoi et quand exécuter cette tâche
L'utilisation d'un module de connexion personnalisé permet de prendre des décisions
d'authentification supplémentaires ou d'ajouter des informations au sujet afin de prendre des décisions
d'autorisation plus fines à l'intérieur même de votre application. Voir Configuration JAASet Modules de connexion JAAS pour une présentation plus détaillée.
Vous pouvez aussi utiliser les outils de développement pour
configurer un module de connexion JAAS personnalisé. Voir Configuration de JAAS dans le profil Liberty avec les outils de développement. Le site Web WASdev.net propose plusieurs exemples de configuration de sécurité pour votre référence lorsque vous configurez la sécurité pour vos applications dans le profil Liberty. Voir Configuration de JAAS dans le profil Liberty avec les outils de développement.
Pour configurer un module de connexion personnalisé JAAS, procédez comme suit :
Procédure
- Activez la fonction Liberty
appSecurity-2.0 dans le fichier server.xml.
<featureManager>
<feature>appSecurity-2.0</feature>
</featureManager>
- Créez une classe com.sample.CustomLoginModule qui
implémente l'interface LoginModule et conditionnez-la dans le
fichier CustomLoginModule.jar.
- Créez un élément <library> incorporant un élément <fileset> indiquant
où se trouve le fichier CustomLoginModule.jar. Dans cet exemple, l'id de la bibliothèque est customLoginLib.
<library id="customLoginLib">
<fileset dir="${server.config.dir}" includes="CustomLoginModule.jar"/>
</library>
- Créez un élément <jaasLoginModule>.
Dans cet exemple,
l'id du module a pour valeur custom.
- Configurez le module de connexion personnalisé de manière à exiger
une authentification réussie en associant l'attribut controlFlag à la valeur REQUIRED.
- Associez l'attribut libraryRef à la valeur customLoginLib,
c'est-à-dire l'id de l'élément <library> configuré à l'étape
précédente. Ce module de connexion a également deux options : UserRegistry, dont la valeur est ldap, et mapToUser, dont la
valeur est user1.
<jaasLoginModule id="myCustom"
className="com.sample.CustomLoginModule"
controlFlag="REQUIRED" libraryRef="customLoginLib">
<options myOption1="value1" myOption2="value2"/>
</jaasLoginModule>
- Créez un élément <jaasLogincontextEntry>
avec des attributs id et un élément
name unique désignant tous les deux la
configuration
JAAS définie par le système : system.WEB_INBOUND. Vous pouvez également spécifier system.DEFAULT, WSLogin, ou votre propre configuration JAAS. Dans la liste de valeurs de l'attribut loginModuleRef, ajoutez custom,
c'est-à-dire l'id de l'élément jaasLoginModule créé à l'étape
précédente. En plaçant cet id en premier dans la liste de valeurs,
vous faites en sorte que le module de connexion JAAS "custom" soit le premier
à être appelé. Vous devez aussi répertorier les autres modules de connexion par défaut : hashtable, userNameAndPassword, certificate et token.
<jaasLoginContextEntry id="system.WEB_INBOUND" name="system.WEB_INBOUND"
loginModuleRef="myCustom, hashtable, userNameAndPassword, certificate, token" />
Remarque : Le nom d'option ne doit pas commencer par un point
(.), config. ou par
service et il doit être unique. Par ailleurs, le nom de propriété id ou ID n'est pas
autorisé.
Pour plus d'informations sur les éléments <jaasLoginContextEntry>, <jaasLoginModule>, <options> et <library>, voir Eléments de configuration dans le fichier server.xml.