La configuration de la sécurité est constituée de couples realm/LoginModule.
Un realm permet de définir la manière de récupérer les informations de sécurité (credentials) pour un realm donné (nom défini dans le point d'entrée d'un programme).
Un LoginModule permet de valider les informations de sécurité saisies au niveau du realm.
Trois implémentations de realm sont proposées :
com.hardis.adelia.cloud.security.realms.AnonymousRealm | => | Aucune information de sécurité n'est demandée. Tous les utilisateurs seront logués en "anonymous". |
com.hardis.adelia.cloud.security.realms.BasicRealm | => | Déclenche une boite classique de saisie utilisateur/mot de passe. |
com.hardis.adelia.cloud.security.realms.JavaEERealm | => | Utilisé lorsque la sécurité est liée à une authentification JEE. |
com.hardis.adelia.cloud.security.realms.RequestRealm | => | Les informations de sécurité sont passées en paramètre d'appel de la servlet principale. |
<realms> <realm name="adelia" loginModuleName="AnonymousLoginModule" className="com.hardis.adelia.cloud.security.realms.AnonymousRealm"/> <realm name="myname" loginModuleName="MyLdapModule" className="com.hardis.adelia.cloud.security.realms.BasicRealm"/> </realms> |
Dans la configuration ci-dessus, l'accès au bureau s'effectue sans demander de credentials à l'utilisateur.
Toutes les applications dont le point d'entrée utilise le realm de nom name="myname" demanderont des informations de sécurité au travers du BasicRealm.
Les informations de sécurité saisies dans le BasicRealm seront validées par le loginModule déclaré par loginModuleName.
Attribut |
Valeur par défaut |
Remarques |
name |
"adelia" |
Nom du realm défini dans le point d'entrée du programme Visual Adélia. |
loginModuleName |
"myname" |
Nom du login module myname déclaré dans la balise <loginModule> . il est possible d'effectuer un chaînage des loginModule en séparant les noms par une virgule. Exemple : loginModuleName="LdapLoginModule,MyAdeliaLoginModule" permet d'effectuer une authentification technique de type LDAP suivi d'une authentification fonctionnelle au travers de l'appel d'un programme Visual Adélia Batch défini dans MyAdeliaLoginModule |
className |
com.hardis.adelia.cloud.security.realms.AnonymousRealm ou com.hardis.adelia.cloud.security.realms.BasicRealm ou com.hardis.adelia.cloud.security.realms.RequestRealm |
Classe associée realm. |
Scope |
optionnel "session" (valeur par défaut) ou "process" |
Définit la portée de l'authentification. Une portée session permet une authentification unique pour la durée de vie de la session. Une portée process permet de conserver l'authentification pour la durée de vie du programme et de ses descendants. |
userNameValidator |
optionnel expression régulière, "" par défaut. |
Permet de valider en fin d'authentification la forme du nom d'utilisateur. Si ce paramètre est renseigné et que le nom d'utilisateur ne vérifie pas l'expression, l'authentification échoue. Non renseigné par défaut. Par exemple :
|
com.hardis.adelia.cloud.security.realms.AnonymousRealm
Ce realm ne déclenche aucune interface utilisateur. Il permet d'anonymiser la connexion à l'application. Tous les utilisateurs sont authentifiés avec le même profil anonymous.
com.hardis.adelia.cloud.security.realms.BasicRealm
Ce realm déclenche une interface utilisateur. Il permet de gérer la saisie d'un profil et d'un mot de passe, ainsi que le changement de mot de passe. Ce realm est compatible avec l'utilisation d'un secureID.
<realm name="adelia" loginModuleName="...." className="com.hardis.adelia.cloud.security.realms.BasicRealm"> <parameters> <item key="description" value="-- Welcome -- ???? -- Willkommen -- Bienvenido -- Benvenuti -- " /> </parameters> </realm> |
ou
<realm name="adelia" loginModuleName="...." className="com.hardis.adelia.cloud.security.realms.BasicRealm"> <parameters> <item key="description" value="-- Welcome -- ???? -- Willkommen -- Bienvenido -- Benvenuti -- " /> <item key="description_fr" value="-- Bienvenue -- " /> <item key="description_en" value="-- Welcome -- " /> <item key="description_cn" value="-- ???? -- " /> </parameters> </realm> |
com.hardis.adelia.cloud.security.realms.JavaEERealm
Ce realm ne déclenche aucune interface utilisateur. Il est destiné à une utilisation avec une gestion de la sécurité faite au niveau JEE par le serveur d'applications.
Il peut optionnellement tester une liste de rôles applicatifs fournis en paramètre (applicationRoles) pour le support de la fonction "isUserInRole"; dans le login module JavaEELoginModule.
Dans ce cas, tous les rôles déclarés sont testés un par un pour alimenter la liste des rôles de l'utilisateur.
Il peut être utilisé avec le login module JEE basique (com.hardis.adelia.cloud.security.loginmodules.jee.JavaEELoginModule) ou avec les extensions de sécurité JEE (com.hardis.adelia.jee.security.loginmodules.WagonLoginModule). Dans le second cas, le paramètre "applicationRoles"; n'est pas nécessaire car les rôles seront fournis par l'extension.
<realm name="adelia" loginModuleName="...." className="com.hardis.adelia.cloud.security.realms.JavaEERealm"> <parameters> <item key="applicationRoles" value="wagon-administrator,wagon-monitor,...." /> </parameters> </realm> |
com.hardis.adelia.cloud.security.realms.RequestRealm
Ce realm ne déclenche aucune interface utilisateur. Il est destiné à une utilisation exclusive depuis un appel externe par appel d'URL. Ce realm est compatible avec l'utilisation d'un secureID.