Maarch Courrier permet d'exploiter un annuaire de type ADLDAP ou OPENLDAP afin de centraliser la gestion des utilisateurs.
Deux niveaux d'exploitation possibles:
Il est préférable, dans un premier temps, de paramétrer uniquement l'authentification LDAP. La synchronisation LDAP nécessitant beaucoup plus de temps à mettre en place car elle est dépendante de la maturité d'organisation de votre annuaire.
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.
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.
Pour ce 1er mode, le processus est schématiser comme suit :
Le module ldap se situe :
modules/
_|- ldap/
Le fichier de configuration se situe :
modules/
__|- ldap/
__|- xml/
__|- config.xml
ce fichier est à copier dans le répertoire idoine de votre custom, ex :
custom/
_|cs\idcustom/
__|modules/
__|- ldap/
__|- xml/
__|- config.xml
Voici la partie à configurer :
<config>
<ldap>
<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>
<standardConnect>false</standardConnect>
</ldap>
</config>
Pour ajouter un ou plusieurs serveur(s) ldap en série, il suffit de dupliquer la balise ldap et son contenu et de remplir avec la configuration du ou des serveur(s) en plus.
<config>
<ldap>
configuration premier serveur
</ldap>
<ldap>
configuration second serveur
</ldap>
<ldap>
configuration troisième serveur
</ldap>
.
.
.
</config>
L'application tentera alors de se connecter via le premier serveur ldap puis le second et ainsi de suite jusqu'à la réussite de la connexion sur l'un des serveur ou le refus de tous.
Le mode d'authentification est à préciser dans la configuration des méthodes de connexion de Maarch. Pour cela, il suffit de passer la balise enabled à true de la méthode ldap du fichier de configuration :
custom/
_|cs\idcustom/
__|apps/
__|maarch_entreprise/
__|xml/
__|login_method.xml
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 et 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:
les commandes :
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 ! |
En plus, du paramétrage de la connexion ldap vu précédement, 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>
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>
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/