Téléchargement des produits


Version anglaise


 

Un AdeliaLoginModule permet de faire appel à un programme Visual Adélia Batch pour la gestion de l'authentification à un Realm.

Le programme a également en charge la gestion du changement de mot de passe et la gestion d'une méthode IsUserRole permettant de savoir si l'utilisateur authentifié fait partie d'un rôle (ou groupe) spécifique.

 

Paramétrage du module

Extrait du fichier wagon.xml :

 

 

<realms>

<!-- Définition d'un Realm "adelia" de type BasicRealm utilisant un LoginModule nommé AdeliaLoginModule -->

<realm name="adelia" loginModuleName="AdeliaLoginModule"

className="com.hardis.adelia.cloud.security.realms.BasicRealm"/>

</realms>

<loginModules>

<!-- Définition d'un LoginModule AdeliaLoginModule dont la classe d'implémentation est com.hardis.adelia.cloud.security.loginmodules.adelia.AdeliaLoginModule -->

<!-- i.e; classe d'implémentation d'un LoginModule faisant appel à un programme VAB adélia -->

<!-- Paramètres :  -->

<!-- VAAuthProgram : Programme Visual Adélia Batch en charge de la gestion de l'authentification -->

<!-- SSOEnabled      : Activation ou non du "pseudo" Single Sign On -->

<!-- Unicode          : Indique si oui ou non le programme a été généré en UNICODE -->

<loginModule name="AdeliaLoginModule" className="com.hardis.adelia.cloud.security.loginmodules.adelia.AdeliaLoginModule">

        <parameters>

        <item key="VAAuthProgram" value="fr.hardis.VAAUTH" />

        <item key="SSOEnabled" value="true" />

        <item key="Unicode" value="false" />

        </parameters>

</loginModule>

</loginModules>

 

 

Note : L'activation du SSO permet d'éviter de prompter l'utilisateur si, dans la configuration d'un serveur physique associé à un serveur logique utilisé dans l'application, les credentials sont manquants.

Ces derniers sont alors automatiquement substitués par ceux du Realm.

Le SSO est également pris en charge pour le programme VAB d'authentification.

↑ Haut de page

Programme Visual Adélia Batch fr.hardis.VAAUTH

Le programme Visual Adelia Batch peut être généré en UNICODE ; il faut alors ajouter l'item <item key="Unicode" value="true" /> dans la définition du loginModule.

 

Le programme Visual Adelia Batch doit être généré pour la plate-forme Cloud avec l'option de génération java Interface Bean cochée.

 

Remarques :

    • Le programme d'authentification VAB n'a pas accès au VFS. Le File System standard est utilisé.

    • Le programme d'authentification VAB ne peut pas être deboggué.

    • Le programme d'authentification VAB ne peut pas interagir avec le desktop.

Le programme en charge de l'authentification du Realm doit respecter les règles suivantes :

 

LoginModule:checkAuthentification

La méthode checkAuthentification du LoginModule est assurée par le corps du programme VAB.

Le programme doit déclarer les paramètres suivants :

 

Nom du paramètre

Type

Genre

Description

LstAttrRealm

LISTE (ALPHA, ALPHA)

E

Liste des attributs/paramètres du Realm.

L'attribut nommé 'login" retourne le user utilisé.

L'attribut nommé 'password' retourne le password utilisé.

LstAttrLoginModule

LISTE (ALPHA, ALPHA)

E

Liste des attributs/paramètres du LoginModule.

nbAttempt

NUM_BIN_4

E

Numéro de la tentative de connexion.

retAuthChecked

NUM_BIN_2

S

Valeur retournée indiquant si l'authentification a réussi ou non :

0  : authentification réussie.

-1 : authentification échouée  : abort.

-2 : authentification échouée : retry.

-3 : mot de passe expiré.

retExtendedUser

ALPHA

S

Valeur du user utilisé pour le mot réservé Adélia *USER.

Si non renseignée, le mot réservé Adélia *USER retourne le user associé à l'attribut "login".

RetErrMsg

ALPHA(1024)

S

En cas d'échec, message explicatif de l'échec est affiché dans le boite de connexion.

 

LoginModule:changePassword

La méthode changePassword du LoginModule est assurée par la procédure publique CHANGE_PASSWORD.

La procédure doit déclarer les paramètres suivants :

 

Nom du paramètre

Type

Genre

Description

User

ALPHA

E

Nom du user dont le mot de passe doit être modifié.

oldPwd

ALPHA

E

Ancien mot de passe.

newPwd

ALPHA

E

Nouveau mot de passe.

RetSuccess

BOOL

S

Valeur retournée indiquant si le changement a réussi ou non.

RetErrMsg

ALPHA(1024)

S

En cas d'échec, message explicatif de l'échec => sera affiché dans le boite de connexion.

 

IsUserInRole

La VaToolBx fournit une méthode VaToolBxCloudIsUserInRole qui est disponible en génération Cloud.

Cette méthode fait appel au programme Visual Adelia Batch en charge de l'authentification du Realm via la procédure publique IS_USER_IN_ROLE.

La procédure doit déclarer les paramètres suivants :

 

Nom du paramètre

Type

Genre

Description

RoleName

ALPHA

E

Nom du rôle à tester (l'utilisateur authentifié fait-il partie de ce rôle/groupe).

RetInRole

BOOL

S

Valeur retournée indiquant si l'appartenance est vérifiée ou non.

 

Précisions à propos de l'implémentation

En cas de réussite de l'authentification, le AdeliaLoginModule retourne un objet AdeliaUserIdentity. Ce dernier contient les informations suivantes :

 

Nom de l'attribut

Type

Description

m_UserName

String

Nom du user authentifié.

m_ExtUserName

String

Nom du user pour le mot réservé Adélia *USER.

m_Pwd

String

Password utilisé pour l'authentification du User.

m_SSOEnabled

boolean

Indique si le SSO est activé pour le realm.

m_hInstPgm

aProgram

Instance du programme VAB d'authentification : ce programme peut être sollicité dans le cas d'un appel à la méthode VaToolBxCloudIsUserInRole.

↑ Haut de page

 

Informations sur le SSO

Utilisation pour tous les programmes du Realm hormis le programme d'authentification

La méthode makeConnection du MwServer.java fait appel à un IConnectionInfoProvider pour assurer la connexion à serveur physique si les credentials sont absentes du fichier de configuration MWCLIENT.ini.

 

Le WagonConnectionInfoProvider a été enrichi pour prendre en compte le SSO du AdeliaLoginModule. Avant de prompter l'utilisateur, ce provider récupère le UserIdentity du Realm et vérifie :

    • que le UserIdentity est un AdeliaUserIdentity,
    • que le SSO est activé.

Une fois ces vérifications faites, les credentials du AdeliaUserIdentity sont utilisées pour alimenter le ConnectionInfo de la connexion MW.

 

Utilisation pour le programme d'authentification

Dans le cas du programme d'authentification, l'authentification n'est évidemment pas encore validée et par conséquent aucun AdeliaUserIdentity n'est disponible.

 

Pour palier ce problème, un objet ConnectionInfo (avec les credentials à valider du Realm) est stocké momentanément dans la map d'attribut du contexte d'application.

 

Le nom de l'attribut est composé comme suit : (IConnectionInfoProvider.VAAuthConnectionInfoAttrName + ((IApplicationContext)Thread.currentThread()).getThreadWUID()).

 

Le WagonConnectionInfoProvider a été enrichi pour prendre en compte cet objet ConnectionInfo temporaire dans le cas où aucun UserIdentity n'est trouvé.

L'attribut est supprimé en retour d'appel du programme VAB d'authentification.

 

↑ Haut de page

  • Aucune étiquette