Intégration de LDAP dans Openfire

De Wiki JabberFR
Aller à la navigation Aller à la recherche

Tutoriels Openfire

  1. Installation du serveur Jabber Openfire
  2. Configuration de base du serveur Openfire
  3. Création des comptes avec Openfire
  4. Configuration des ports de Openfire
  5. Configuration avancée de Openfire
  6. Configuration de Openfire et Coturn
  7. Intégration de LDAP dans Openfire
  8. Configurer les passerelles pour Openfire
  9. server2server (s2s) de Openfire
  10. Plugins de Openfire

Openfire 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/openfire.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.openfire.ldap.LdapUserProvider</className>
     </user>
     <auth>
       <className>org.jivesoftware.openfire.ldap.LdapAuthProvider</className>
     </auth>
     <group>
       <className>org.jivesoftware.openfire.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.openfire.ldap.LdapUserProvider</className>
 </user>

Configuration de l'authentification

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

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

Configuration de la gestion des groupes

Openfire peut aller chercher la liste des groupes depuis un annuaire LDAP. Une fois l'utilisateur authentifié, Openfire 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.openfire.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 openfire. 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.openfire.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