Aller à : navigation, rechercher

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

Résumé

Maarch Courrier propose une manière d'exploiter l'anuaire un serveur (ADLDAP ou OPENLDAP) afin de centraliser la gestion des utilisateurs et des entités.

(Un gain de temps non négligeable si beaucoup d'utilisateur sont suceptible d'utiliser l'application !)


Elle peut se faire sur 2 niveaux :

  • Simple connexion ldap
  • Synchronisation des données ldap dans la base Maarch

Il est préférable, dans un premier temps, de paramétrer la simple connexion 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 !

Fonctionnement

Un module pouvant synchroniser les utilisateurs groupes et entités depuis une base LDAP. Cette méthode peut être intéressante si vous avez beaucoup d'utilisateurs à enregistrer dans Maarch Courrier ou si vous voulez synchroniser les mots de passes avec divers outils connectés.

Connexion LDAP

Pour ce 1er mode, il n'y a aucun script à paramétrer. Pour chaque connexion utilisateur, voici le processus :

Ldap.png

  • Demande à la base Maarch si l'utilisateur existe
  • Si l'utilisateur existe, communication avec l'annuaire pour verifier le mot de passe rentré par l'utilisateur.

Synchronisation LDAP

Dans ce 2ème mode, les données vont être extraites directement du LDAP (tout en gardant le principe du 1er mode). Cela va se faire avec différents scripts lancés en tâche planifiée :

  • Le 1er script va permettre d'extraire toutes les informations du LDAP dans 2 fichiers xml :
    • ldap_users.xml
    • ldap_entities.xml
  • Les autres scripts vont insérer ses nouvelles données dans l’application (insertion, mise à jour, suppression) utlisant :
    • process_entities_to_maarch.php
    • process_users_to_maarch.php
    • process_users_entities_to_maarch.php
      • ex n°1 : L'adresse d'un utilisateur à 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
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éfix utilisé pour les connexion ex : WORKGROUP\\user

login_admin : compte pour pouvoir visualiser l'annuaire

pass : mot de pass du compte

ssl : à true si un cryptage ssl est actif

pass_is_login : permet de pouvoir se connecter à l'appli même si Maarch ne peut plus communiquer avec l'annuaire (le mot de passe sera le login utilisateur)


Ensuite, pour basculer sur la connexion LDAP, 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 configurer 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 essentiel à la synchronisation :

<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