Annuaire utilisateur LDAP et SSO
Principes de base
La gestion des authentifications et accès aux solutions basées sur la technologie SAFE X3 repose sur deux principes complémentaires :
1) La centralisation des données d’authentification
Afin de gérer de façon centralisée l’authentification des utilisateurs dans les progiciels en technologie SAFE X3, il est possible de stocker certaines informations dans un annuaire LDAP ( Lightweight Directory Access Protocol). Cette centralisation peut être faite quel que soit le type de connexion.
2) Le « single sign on » (SSO)
Il est possible de considérer qu'un utilisateur qui se connecte sur son poste de travail sous Windows s'est déjà signé (il a saisi son mot de passe), et qu'en conséquence il ne souhaite pas qu'aux prochaines connexions de SAFE X3 il se signe à nouveau en ressaisissant son code utilisateur et son mot de passe.
Le fait de se signer une seule fois s'appelle SSO (Single Sign-On).
Limitations
Le SSO fonctionne aujourd’hui dans deux cas :
- pour les connexions en client-serveur, dès lors que les paramètres ont été correctement implémentées
- en mode Web, à condition que l'on soit en réseau sécurisé (réseau privé ou interne) et que le protocole NTLM over http ait été implémenté (ceci se définit au niveau de la console).
- en passant par le SSO Sage (ceci est possible en web service pour Netvibes; dans ce cas, le service Sage certifie une adresse e-mail qui va servir de point d'entrée. Les paramètres de l'annuaire ne serviront alors que pour une vérification complémentaire et une mise à jour des champs de l'ERP stockés dans l'annuaire.
Ces fonctionnalités peuvent être implémentées pour Sage X3, à l’aide d’un ensemble de paramètres.
Processus de connexion résumé
Le processus de connexion tel qu’il est décrit ici correspond à ce qui se passe en client-serveur, dès lors que les paramètres correspondants décrits dans les paragraphes qui suivent ont été définis.
Les différentes étapes se déroulent de la façon suivante :
1 - L’utilisateur s’authentifie (sous Windows, par exemple avec un compte tel que ‘john_doe’; en Web, parce que la couche NTLM renvoie le compte).
2 - L’utilisateur ouvre une session d’un progiciel SAFE X3 en double cliquant sur l’icône de lancement (ou par un lien en Web). En client-serveur, la fenêtre de connexion s’ouvre (au moins la première fois : en cliquant sur la case « utiliser ces paramètres lors de la prochaine connexion », la boite de connexion n'apparaîtra plus par la suite, sauf à appuyer sur la touche [Shift] au lancement).
3 - Si on est en client-serveur, l’utilisateur saisit son code utilisateur tel qu’il est connu dans le progiciel. Ce code peut être JOHN, DOE, ADMIN, ou n’importe quel autre code, mais si on veut mettre en œuvre le SSO, il faut que ce soit JOHN_DOE.
4 - Le progiciel vérifie que JOHN_DOE existe bien dans la table des utilisateurs (le champ testé est le champ Login défini dans la table des utilisateurs). Ce code correspond par exemple au code utilisateur JOHND. C’est le code JOHND (de 5 caractères maximum) qui est stocké dans toutes les tables où le type de données AUS est utilisé.
5 - A partir du moment où le SSO a été activé et que le code JOHN_DOE (correspondant au login d’origine) a été saisi, le contrôle du mot de passe n’est plus fait (il l’est de façon bloquante si le code utilisateur ne correspond pas au login système).
6) Le système utilise alors le champ Référence Active Directory de l’utilisateur pour interroger l’annuaire centralisé (LDAP, Active directory… selon les paramètres globaux de connexion fournis), et récupère un ensemble de valeurs en retour (valeurs de champs de la table des utilisateurs, valeurs de paramètres au niveau utilisateur). Il met à jour ces valeurs dans le progiciel si elles ont été changées dans l’annuaire (puisque c’est l’annuaire qui fait référence).
Description du paramétrage
Valeurs paramètres au niveau dossier
Pour mettre en place l'annuaire utilisateur, on doit renseigner les valeurs paramètres suivantes au niveau dossier.
Connexion SSO
La valeur paramètre SSOCONNECT permet d'activer la fonction SSO/ LDAP d'X3 (c'est-à-dire la connexion à l'annuaire centralisé).
Les valeurs possibles sont :
- Non : la connexion SSO/LDAP est inactive,
- Interactif : La connexion SSO/LDAP est active uniquement en interactif ( C/S et Web)
- Interactif et Web service : La connexion SSO/LDAP est active en interactif et aussi pour les Web services.
Code annuaire
La valeur paramètre SSODIRECT contient le code annuaire lorsque le paramètre SSOCONNECT est actif. Il fait référence à la table qui définit les annuaires et les connexions possibles.
MAJ utilisateur à la connexion
La valeur paramètre SSOMAJ (Oui/Non) permet de déterminer si la mise à jour de la fiche utilisateur et des valeurs paramètres utilisateur doivent être faite à chaque connexion de l'utilisateur X3.
Si sa valeur est Non, et si les autres paramètres sont actifs, le système vérifiera l’existence de l’utilisateur dans l’annuaire sans déclencher la mise à jour des paramètres et valeurs utilisateur à chaque connexion. La mise à jour pourra être faite de façon batch grâce à la tâche batch ASSOMAJ qui devra être abonnée.
Contrôle mot de passe SSO
La valeur paramètre SSOPASSWD (Oui/Non) permet de forcer le contrôle (et donc d’imposer la saisie) du mot de passe en client-serveur même si le code utilisateur saisi dans la boîte de connexion est égal au login Windows de l’utilisateur.
En Web, le contrôle est fait systématiquement.
Valeurs paramètres au niveau utilisateur
Un seul paramètre peut être modifié au niveau utilisateur.
Domaine
La valeur paramètre SSODOMAIN, s'il est non vide, permet de restreindre la possibilité de connexion d'un utilisateur à partir du domaine ainsi donné. S'il est vide, seul le contrôle du code utilisateur est fait, et pas le contrôle du domaine.
Référence pour mise à jour utilisateur
Les informations d'un annuaire LDAP sont représentées à l'aide d'un arbre graphique.
Chaque noeud de l'arbre est un objet abstrait ou réel ( une personne, un groupe de personne, une imprimante, des paramètres,...).
Le DN (Distinguished Name) d'un objet est un moyen d'identifier de façon unique un objet dans la hiérarchie.
C'est ce premier identifiant qui est stocké dans la fiche utilisateur. Le champ est AUTILIS.ADDNAM.
Un deuxième identifiant est paramétré dans l'annuaire est, en principe, le login.
Un exemple d'arborescence LDAP est présenté ci-dessous. On notera que les hiérarchies sont définissables librement, et qu'un tel annuaire peut référencer aussi bien des utilisateurs, des groupes, des ressources (comme des imprimantes). L'interrogation d'une telle arborescence se fait en indiquant une racine de recherche, et en demandant ensuite une recherche sur le noeud lui-même, sur ses descendants directs, ou sur tout le sous-arbre à partir de la racine indiquée. Le noeud de départ et la façon de rechercher l'information sont indiqués dans le paramétrage de l'annuaire.
Principe à la connexion
Supposons que le mode SSO soit actif et qu'un utilisateur X3 se connecte pour la première fois à l'application SAFE X3.
L'aplication X3 à la connexion vérifie que le login saisi est bien référencé dans l'annuaire. Si oui il récupère le DN (Distinguished Name) qui est mis à jour dans le champ ADDNAM de la table utilisateur AUTILIS.
Si la valeur paramètre SSOMAJ est à Oui tous les champs mappés sont mis à jour dans la fiche utilisateur et dans les valeurs paramètres X3.
Fonction annuaire utilisateur
Accès au serveur LDAP
La fonction "Annuaire" permet de définir la configuration pour que l'application X3 puisse lire les informations de l'annuaire LDAP.
Le mapping des champs
Une correspondance est faite entre les champs de la table utilisateur, la table des valeurs paramètres utilisateur et les champs de l'annuaire LDAP.
Fonctions complémentaires en batch
La tâche ASSOMAJ permet de mettre à jour les utilisateurs par rapport à l'annuaire LDAP.
Seuls les utilisateurs déjà existants dans la table AUTILIS seront mis à jour ; cet utilitaire ne crée en aucun cas de nouveaux utilisateurs en lisant des données de l’annuaire LDAP.
Le lien se fait par le DN (Distinguished Name) s'il est déjà renseigné dans la table utilisateur. Sinon c'est le deuxième identifiant paramétré ( en général le login) qui est utilisé pour retrouver le DN.
Processus de connexion en détail
Le schéma ci-dessous décrit en détail les différents cas possibles de connexion, et les procédures de contrôles correspondantes.