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 de données Maarch.
Ce processus 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 d'autres applications connectées.
Pour ce 1er mode, le processus est schématisé comme ceci :
Le module ldap se situe :
modules/
_|- ldap/
Le fichier de configuration se ici : 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>
<domain>192.168.1.1</domain>
<baseDN></baseDN>
<prefix_login>MAARCH</prefix_login>
<suffix_login>@maarch-les-bains.com</suffix_login>
<ssl>false</ssl>
<standardConnect>false</standardConnect>
<login_admin>Administrateur</login_admin>
<pass>ThePassword</pass>
</ldap>
</config>
Pour ajouter un ou plusieurs serveurs 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 serveurs 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 pour 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 utilisateurs vont être extraites de l'AD pour les intégrées dans la base de données Maarch.
Cela va se faire grâce au script bin/ldap/synchronization.sh (à mettre sous forme de tâche planifiée) .
En plus du paramétrage de la connexion LDAP vu précédemment, il faut définir certaines informations dans le fichier de configuration :
Les informations de l'utilisateur Rest Maarch :
<userWS>superadmin</userWS>
<passwordWS>superadmin</passwordWS>
Les synchronisations à effectuer :
<synchronizeUsers>true</synchronizeUsers>
<synchronizeEntities>true</synchronizeEntities>
Le mapping à effectuer :
<mapping>
<user>
<user_id>samaccountname</user_id>
<firstname>givenname</firstname>
<lastname>sn</lastname>
<phone>telephonenumber</phone>
<mail>mail</mail>
<user_entity>memberof</user_entity>
<defaultEntity>PJS</defaultEntity>
</user>
<entity>
<entity_id>objectguid</entity_id>
<entity_label>samaccountname</entity_label>
<parent_entity_id>memberof</parent_entity_id>
</entity>
</mapping>
La balise <user_entity>
permet de lier un utilisateur à une entité. Balise optionnelle.
La balise <defaultEntity>
permet de spécifier une entité dans le cas où l'entité dans la balise <user_entity>
n'existe pas. Balise optionnelle.
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>
</dn>
<dn id="OU=Services,OU=Maarch-les-Bains,DC=maarch,DC=com" type="entities">
<user>(cn=*)</user>
</dn>
</filter>