Aller à : navigation, rechercher

Maarch Courrier/latest/fr/Manuel administrateur/Fonctionnalités/Gestion du ldap

Résumé

Maarch Courrier permet d'exploiter un annuaire de type ADLDAP ou OPENLDAP afin de centraliser la gestion des utilisateurs et des entités.


Deux niveaux d'exploitation possibles:

  • Authentification LDAP :

La vérification des mots de passe des utilisateurs se fait dans l'annuaire dans ce cas.

  • Synchronisation des données de l'annuaire dans la base Maarch

Il est préférable, dans un premier temps, de paramétrer uniquement l'authentification LDAP.

Pré-Requis

Il est important d'avoir un annuaire cohérent et à jour . Notamment pour la synchronisation. Cela peut alourdir inutilement l'application Maarch .

Seuls les Active Directory (ADLDAP ou OPENLDAP) sont pris en compte.

Fonctionnement

Le module ldap de Maarch permet de configurer les éléments de l'AD. Un script (à exécuter en tâche planifiée) permet de récupérer le contenu de l'annuaire et l'intègre dans la base Maarch. Ce process synchronise les utilisateurs et les entités depuis un serveur AD. La mise en place de la synchronisation peut-être intéressante si vous avez beaucoup d'utilisateurs à gérer dans Maarch Courrier et/.ou si vous souhaitez uniformiser les mots de passe des utilisateurs avec divers autres applications connectées.

Authentification LDAP

Pour ce 1er mode, le processus est schématiser comme suit :

Ldap.png

  • Demande à la base Maarch si l'utilisateur existe. L'identifiant de l'utilisateur dans Maarch doit être identique à celui de l'AD.
  • Si l'utilisateur existe dans Maarch et dans l'AD, la communication avec l'annuaire est faite pour vérifier le mot de passe renseigné par l'utilisateur.

Synchronisation LDAP

Dans ce 2ème mode, les données utilisateur vont être extraites directement de l'AD (tout en gardant le principe du 1er mode). Cela va se faire grâce au script syn_ldap.sh ( à mettre sous forme de tâche planifiée) . Le script syn_ldap.sh contient plusieurs commandes.

  • La première commande va permettre d'extraire toutes les informations du LDAP avec en retour 2 fichiers xml :
    • ldap_users.xml
    • ldap_entities.xml
php modules/ldap/process_ldap_to_xml.php /modules/ldap/xml/config.xml
  • Les autres commandes vont insérer ces nouvelles données dans l’application (insertion, mise à jour, suppression) utilisant suivants:
    • process_entities_to_maarch.php
    • process_users_to_maarch.php
    • process_users_entities_to_maarch.php
      • ex n°1 : L'adresse d'un utilisateur a changé => mise à jour des données de cet utilisateur
      • ex n°2 : Un utilisateur est parti de la structure, il a été supprimé du LDAP => mise en status 'DEL' dans la base Maarch
php modules/ldap/process_entities_to_maarch.php modules/ldap/xml/config.xml


php modules/ldap/process_users_to_maarch.php modules/ldap/xml/config.xml


php modules/ldap/process_users_entities_to_maarch.php modules/ldap/xml/config.xml
Manipuler les entités depuis un LDAP peut être plus dommageable pour l'application.


Ex : Supprimer un service qui avait encore des sous-services rattachés !

Paramétrage

Connexion LDAP

Le module ldap se situe :

modules/
 |- ldap/

Le fichier de configuration se situe :

modules/
 |- ldap/
     |- xml/
        |- config.xml

Voici la partie à configurer :

<config>
       <type_ldap>adLDAP</type_ldap>
       <group_prefix_ldap>LDAP</group_prefix_ldap>
       <domain>192.168.1.1</domain>
       <prefix_login>MAARCH</prefix_login>
       <login_admin>Administrateur</login_admin>
       <pass>ThePassword</pass>
       <ssl>false</ssl>
       <purge_log>1</purge_log>
       <lost_users>false</lost_users>
       <pass_is_login>true</pass_is_login>
</config>

type_ldap : defini quel annuaire est utilisé (ADLAP ou OPENLDAP)

group_prefix_ldap : n'est plus utilisé

domain : adresse ip de l'annuaire

prefix_login : préfixe utilisé pour les connexion. Généralement le nom du domaine.

Ex : WORKGROUP\\user

login_admin : compte pour pouvoir visualiser l'annuaire

pass : mot de passe du compte

ssl : à true si un cryptage ssl est actif

pass_is_login : permet de pouvoir se connecter à Maarch même si le lien avec l'annuaire n'est plus actif (le mot de passe sera le login utilisateur)


Le mode d'authentification est à préciser dans la configuration générale de Maarch. Pour cela, il suffit de passer la balise <ldap> à true du fichier de configuration :

apps/
 |- maarch_entreprise/
     |- xml/
        |- config.xml

Synchronisation LDAP

En plus, du paramétrage de la connexion ldap, il faut définir dans le fichier de configuration, les informations de connexion de la base données :

<config_base>
       <databaseserver>localhost</databaseserver>
       <databaseserverport>5432</databaseserverport>
       <databasetype>POSTGRESQL</databasetype>
       <databasename>maarch_entreprise</databasename>
       <databaseuser>postgres</databaseuser>
       <databasepassword>maarch</databasepassword>
</config_base>

Ensuite nous devons définir les informations à extraire du LDAP :

<mapping>
       <user ext_id="objectguid">
           <user_id>samaccountname</user_id>
           <firstname>givenname</firstname>
           <lastname>sn</lastname>
           <phone>telephonenumber</phone>
           <mail>mail</mail>
           <fonction>title</fonction>
           <enabled>useraccountcontrol</enabled>
           <user_entity role="">memberof</user_entity>
       </user>
       <entity>
           <ldap_id>objectguid</ldap_id>
           <entity_label>samaccountname</entity_label>
           <parent_entity>memberof</parent_entity>
       </entity>
</mapping>

(En générale, cela n'est pas susceptible de changer).

Et enfin, la partie essentielle à la synchronisation qui permet de préciser les noeuds de l'AD qu'on souhaite récupérer:

<filter>
        <dn id="OU=Utilisateurs,OU=Maarch-les-Bains,DC=maarch,DC=com" type="users">
           <user>(cn=*)</user>
           <group>(cn=*)</group>
       </dn>
       <dn id="OU=Services,OU=Maarch-les-Bains,DC=maarch,DC=com" type="entities">
           <user>(cn=*)</user>
           <group>(cn=*)</group>
       </dn>
</filter>

Ldap users.jpg Ldap entities.jpg

Une fois ces fichiers configurés, on peut lancer le script syn_ldap.sh qui permettra d'exécuter les commandes précisées ci-dessus. Le fichier se situe dans

modules/
  |- ldap/
     |- script/