Intégration de LDAP dans Openfire

De Wiki JabberFR
Aller à la navigation Aller à la recherche

Modèle:Tutos wildfire

Wildfire permet d'utiliser un annuaire LDAP pour :

  • authentifier les utilisateurs.
  • stocker les groupes
  • déterminer les groupes d'appartenance d'un utilisateur.

La configuration de la partie LDAP ne se fait pas via la console d'administration, mais en modifiant le fichier conf/wildfire.conf.

   <ldap>
     <host>localhost</host>
     <port>389</port>
     <usernameField>uid</usernameField>
     <nameField>cn</nameField>
     <emailField>mail</emailField>
     <baseDN>dc=mycompany</baseDN>
     <adminDN>uid=jive,ou=people,dc=mycompany</adminDN>
     <adminPassword>password</adminPassword>
     <groupNameField>cn</groupNameField>
     <groupMemberField>member</groupMemberField>
     <groupDescriptionField>description</groupDescriptionField>
     <groupSearchFilter>(member={0})</groupSearchFilter>
     <posixMode>false</posixMode>
     <clientSideSorting>true</clientSideSorting>
     <debugEnabled>true</debugEnabled>
     <connectionPoolEnabled>false</connectionPoolEnabled>
   </ldap>
   <provider>
     <user>
       <className>org.jivesoftware.wildfire.ldap.LdapUserProvider</className>
     </user>
     <auth>
       <className>org.jivesoftware.wildfire.ldap.LdapAuthProvider</className>
     </auth>
     <group>
       <className>org.jivesoftware.wildfire.ldap.LdapGroupProvider</className>
     </group>
   </provider>

Configuration de la gestion des utilisateurs

Il faut indiquer :

  • host : la machine sur laquelle votre annuaire LDAP tourne.
  • port : le port de l'annuaire.
  • usernameField : le champs dans l'objet utilisateur qui sera utilisé comme identifiant de l'utilisateur.
  • nameField : le champs qui ldap qui contient le nom de la personne.
  • emailField : le nom du champs ldap qui contient l'email de la personne.
  • baseDN : le dn de base pour les recherches.
  • adminDN : le dn du compte qui sera utilisé comme compte administrateur de Wildfire.
  • adminPassword : mot de passe du compte administrateur.

Il faut aussi ajouter le provider qui permet d'accèder à l'annuaire pour la partie gestion des utilisateur :

 <user>
   <className>org.jivesoftware.wildfire.ldap.LdapUserProvider</className>
 </user>

Configuration de l'authentification

Elle est activée via l'ajout de cette ligne :

 <auth>
      <className>org.jivesoftware.wildfire.ldap.LdapAuthProvider</className>
 </auth>

Configuration de la gestion des groupes

Wildfire peut aller chercher la liste des groupes depuis un annuaire LDAP. Une fois l'utilisateur authentifié, Wildfire requête l'annuaire pour savoir à quel(s) groupe(s) la personne appartient.

  • groupNameField : le champs qui contient le nom du groupe
  • groupMemberField : le champs qui indique les personnes appartenant au groupe.
  • groupDescriptionField : le champs qui contient la description du groupe.
  • groupSearchFilter : filtre de recherche d'un utilisateur dans un groupe.
  • posixMode : true si l'utilisateur est stocké sous forme de DN dans l'attribut groupMemberField du groupe. False s'il est juste stocké par son groupNameField.

Il faut aussi ajouter le provider qui permet d'accèder à l'annuaire pour la recherche des groupes :

 <user>
   <className>org.jivesoftware.wildfire.ldap.LdapGroupProvider</className>
 </user>

Filtres sur les groupes

Le champs groupSearchFilter permet de filtrer les recherches dans l'annuaire.

Stockage de la vCard dans l'annuaire

Par défaut, les vcards sont stockées dans la base de données de wildfire. Il est possible récupérer les informations nécessaire à celle-ci depuis l'annuaire LDAP.

Dans le fichier de configuration, ajoutez le LdapVCardProvider

 <vcard>
    <className>org.jivesoftware.wildfire.ldap.LdapVCardProvider</className>
 </vcard>

puis les informations de mapping :

 <vcard-mapping><![CDATA[
 <vCard xmlns="vcard-temp">
 <N>
   <GIVEN>{cn}</GIVEN>
 </N>
 <EMAIL>
   <INTERNET/>
   <USERID>{mail}</USERID>
 </EMAIL>
 <FN>{displayName}</FN>
 <NICKNAME>{uid}</NICKNAME>
 <ADR>
   <HOME/>
   <STREET>{homePostalAddress}</STREET>
 </ADR>
 <ADR>
   <WORK/>
   <STREET>{postalAddress}</STREET>
   <LOCALITY>{l}</LOCALITY>
   <REGION>{st}</REGION>
   <PCODE>{postalCode}</PCODE>
 </ADR>
 <TEL>
   <HOME/>
   <VOICE/>
   <NUMBER>{homePhone}</NUMBER>
 </TEL>
 <TEL>
   <WORK/>
   <VOICE/>
   <NUMBER>{telephoneNumber}</NUMBER>
 </TEL>
 <TEL>
   <WORK/>
   <CELL/>
   <NUMBER>{mobile}</NUMBER>
 </TEL>
 <TEL>
   <WORK/>
   <PAGER/>
   <NUMBER>{pager}</NUMBER>
 </TEL>
 <TITLE>{title}<ORG>
   <ORGUNIT>{departmentNumber}</ORGUNIT>
 </ORG>
 </vCard>]]></vcard-mapping>
 </TITLE>

Bien sûr vous pouvez choisir d'ajouter ou d'enlever des paramètres en fonction des informations qui doivent être vues par les utilisateurs.

Autres paramètres

  • clientSideSorting : indique si la buddy list de l'utilisateur doit être triée ou pas.
  • debugEnabled : si à true, le mode debug est activé. Les traces sont stockées dans le fichier log/debug.log
  • connectionPoolEnabled : si à true, indique qu'on utilise un pool de connexions pour accèder à l'annuaire, au lieu d'une seule connexion.

Liens externes