Aller au contenu principal

Synchronisation LDAP

BlueMind permet d'importer les utilisateurs et groupes depuis un annuaire LDAP (par exemple OpenLDAP). L'import LDAP est incrémental (les nouvelles entrées sont ajoutées, les données modifiées sont prises en compte). L'import LDAP se configure et s'exécute par domaine.

Les mots de passe des utilisateurs importés sont alors validés auprès du serveur LDAP.

Un nouvel utilisateur peut se connecter à BlueMind même s'il n'a pas encore été importé. Son compte BlueMind sera créé à la volée si l'authentification aboutit.

Le peuplement des utilisateurs et groupes BlueMind à partir de l'annuaire  LDAP est donc fait :

  • lors de l'installation et la configuration, lors de l'import initial,
  • régulièrement de manière automatique via les tâches planifiées
  • et lorsqu'un utilisateur se connecte, à la volée, lorsqu'il n'existe pas.
info

La synchronisation LDAP est conçue pour s'appuyer sur un schéma d'annuaire de type InetOrgPerson.

Installation

Afin d'accéder aux fonctionnalités de synchronisation avec un annuaire ldap, il est nécessaire d'installer le plugin ldap-import.

Pour cela, se connecter sur le serveur et utiliser les commandes suivantes pour lancer l'installation du plugin :

sudo aptitude update
sudo aptitude install bm-plugin-admin-console-ldap-import bm-plugin-core-ldap-import

Une fois l'installation terminée, redémarrer le composant bm-core à l'aide de la commande suivante :

bmctl restart

Configuration

Seul l'administrateur global peut configurer la synchronisation LDAP pour un domaine. Les administrateurs de domaine peuvent quant à eux voir les paramètres et lancer la tâche d'import.

  • Se connecter en tant qu'administrateur global admin0@global.virt
  • Aller dans le menu Gestion du système > Domaines supervisés et sélectionner le domaine à configurer
  • Aller sur l'onglet "Import LDAP"

ChampNote
Nom ou IP du serveur LDAPIP ou FQDN du serveur LDAP de la forme: ip-ou-fqdn[:port]
Si le port n'est pas spécifié, le port utilisé dépend du protocole sélectionné dans Protocole.
ProtocoleChoisir le protocole à utiliser:
- PLAIN, port par défaut1: 389
- SSL, port par défaut1: 636
- SSL/accepter tous les certificats, port par défaut1: 636
- TLS, port par défaut1: 389
- TLS/accepter tous les certificats, port par défaut1: 389

1: le port indiqué dans le champ Nom ou IP du serveur LDAP est utilisé en priorité. Si le port n'est pas précisé dans le champ Nom ou IP du serveur LDAP, le port par défaut correspondant au Protocole est utilisé.
Racine de l'annuaireSpécifier la racine LDAP (un accès en ReadOnly est un prérequis)
DN de l'utilisateurDN de l'utilisateur root utilisé pour se connecter au serveur LDAP
Mot de passeMot de passe de l'utilisateur utilisé pour se connecter au serveur LDAP
Filtre des utilisateurs LDAPSeuls les utilisateurs correspondants au filtre appliqué sont importés dans BlueMind. La syntaxe des filtres LDAP est décrite par la RFC 4515. Par exemple :
- pour afficher toutes les personnes ayant leur numéro de téléphone renseigné dans la base :
(&(objectclass=person)(telephoneNumber=\*))
- pour afficher tous les comptes qui ont le accountStatus "MAIL" et qui ne sont pas dans la branche MAILSHARE de l'annuaire : (&(!(ou:dn:=MAILSHARE))(&(objectClass=posixAccount)(accountStatus=MAIL)))
Filtre des groupes LDAPSeuls les groupes correspondants au filtre appliqué sont importés dans BlueMind. La syntaxe des filtres LDAP est décrite par la RFC 4515. Par exemple :
- pour afficher les groupes des branches dont le dn contient cn=system ou cn=users :
(&(objectClass=group)((cn:dn:=System)(cn:dn:=Users)))
- pour afficher les groupes ayant une description :
(&(objectCategory=group)(description=\*))
ID externeAttribut correspondant à un identifiant d'entrée LDAP invariant et unique. Utilisé pour faire le lien entre une entrée LDAP et une entrée BlueMind
Groupe de segmentation du domaineCe champ peut être vide.
Ce champ sera ignoré si la fonctionnalité de segmentation de domaine n'est pas configurée pour BlueMind.
Les mails destinés aux utilisateurs membres de ce groupe sont redirigés vers un autre serveur de messagerie du même domaine (configuré via la segmentation de domaine).
Dernière exécution réussieDate du dernier import exécuté sans rencontrer d'erreurs.
Le mode incrémental de l'import prend en compte les modifications faites dans LDAP depuis cette date.
Status du dernier importDate et status de la dernière exécution de l'import LDAP.
En cas d'erreurs, les logs de la tâche planifiée de l'import LDAP de ce domaine donnent plus d'informations
Démarrer synchronisation incrémentaleForcer une exécution de l'import LDAP en mode incrémental.
Seuls les changements effectués depuis la date de Dernière exécution réussie sont pris en compte dans LDAP.
Cette opération correspond à l'exécution de la tâche planifiée d'import LDAP de ce domaine.
Démarrer synchronisation globaleForcer une exécution de l'import LDAP en mode global.
Dans ce mode, la date de Dernière exécution réussie n'est pas prise en compte. L'ensemble des entrées correspondantes aux paramètres de l'import sont traitées.
Cette opération peut-être longue en fonction du nombre d'entrée LDAP à traiter.

Mapping LDAP - BlueMind

Attributs des utilisateurs

BlueMindAttribut LDAPNote
loginuidUn mapping (remplacement de caractères) est réalisé lors de l'import pour des raisons de compatibilité :
- remplacement des lettres accentuées par la lettre non accentuée correspondante
- passage en minuscule
- remplacement des espaces par des '_'
firstnamegivenName
lastnamesn
formatedNamedisplayNameSi l'attribut displayName est absent, le champ sera généré par BlueMind par concaténation des différentes parties non vides de prénom, nom, titre, etc. de la même façon que le Nom complet dans les fiches contacts.
descriptiondescription
mailmail
mailLocalAddress
mailAlternateAddress
gosaMailAlternateAddress
L'adresse BlueMind par défaut est définie par la première des valeurs trouvées dans les champs suivants (dans l'ordre) :
  1. mail
  2. mailLocalAddress
  3. mailAlternateAddress
  4. gosaMailAlternateAddress

Les suivantes sont utilisées comme alias.

⚠️ Si aucun de ces attributs n'est renseigné ou valide, il sera attribué une adresse de la forme : login@<domaine par défaut>
user mail quotamailQuotaSize
mailQuota
gosaMailQuota
Doivent être exprimé en octets dans LDAP.
Le premier de ces attributs LDAP trouvé est utilisé : mailQuotaSize > mailQuota > gosaMailQuota
work phonestelephoneNumber
home phoneshomePhone
mobile phonesmobile
faxfacsimileTelephoneNumber
pagerpager
memberOfmemberOfListe des groupes dont l'utilisateur est membre.
L'utilisateur BlueMind ne peut être ajouté qu'à des groupes LDAP déjà importés
photoIDjpegPhotoPhoto de l'utilisateur : le contenu de cet attribut est importé comme photo du compte correspondant
user.value.contactInfos.organizational.titletitle
user.value.contactInfos.organizational.org.companyo
user.value.contactInfos.organizational.org.divisionou
user.value.contactInfos.organizational.org.departmentdepartmentNumber
address.localityl
address.postalCodepostalCode
address.countryNamest
address.streetAddresspostalAddress
address.postOfficeBoxpostOfficeBox

Attributs des groupes

BlueMindAttribut LDAPNote
namecn
descriptiondescription
mailmailSi ce champ n'est pas renseigné alors le groupe n'aura pas de messagerie dans BlueMind
membermemberUid
(méthode Unix)
Le groupe dans l'annuaire contient autant d'attributs memberUid qu'il a de membres. Contrairement à l'attribut member des annuaires AD, il contient l'uid en mode unix de l'utilisateur. Avec ce mode de fonctionnement memberOf n'est pas possible.
Seuls les utilisateurs et groupes déjà importés dans BlueMind sont ajoutés aux membres du groupe
membermember
(méthode de Synchronisation Active Directory)
Le groupe dans l'annuaire contient autant d'attributs member qu'il a de membres. Optionnellement l'annuaire peut fournir les memberOf. Cet attribut est contenu dans l'utilisateur et pointe vers tous les groupes dont il fait partie.
Seuls les groupes et utilisateurs synchronisés sont ajoutés aux membres du groupe BlueMind
méthode de gestion des groupes

Les deux méthodes de gestion de groupe (Active Directory ou Unix) peuvent être utilisées indifféremment mais une seule à la fois :

  • soit en utilisant l'attribut member (et memberOf si disponible)
  • soit en utilisant l'attribut memberUid

Si l'annuaire utilise les deux, la synchronisation ne se fait pas correctement.

Attribution des droits

L'accès aux applications passe par la gestion des rôles qui sont attribués aux utilisateurs. L'import LDAP ne gérant pas les rôles, les utilisateurs n'en ont donc aucun une fois qu'ils ont été importés et n'accèdent pas aux applications (webmail, contacts, calendrier).

La façon la plus simple et efficace de gérer cela est de passer par les groupes :

  • dans le ldap, attribuer un groupe commun aux utilisateurs (ou plusieurs, si souhaité)
  • lancer un 1er import : le(s) groupe(s) est importé dans BlueMind avec les utilisateurs
  • se rendre dans l'administration et affecter les rôles souhaités au groupe
Mise à jour

Lors des imports et mises à jour suivants, les rôles seront conservés.

Par la suite, pour les nouveaux utilisateurs, il suffira de les affecter à ce(s) groupe(s) afin de leur attribuer les rôles souhaités.

Modification des rôles

Lors de sorties de nouvelles versions, BlueMind est régulièrement amené à apporter de nouveaux rôles, notamment pour gérer des fonctionnalités existantes. Par exemple, la version 3.5.9 de BlueMind a permis à l'administrateur d'activer ou désactiver la possibilité de se connecter à Thunderbird via un nouveau rôle. Jusqu'à cette version tous les utilisateurs avaient cette possibilité.

Afin de s'assurer que lors de la mise à jour le nouveau droit sera bien activé chez les utilisateurs déjà existants, il convient de désigner le ou les groupes dans lesquels on a placé les utilisateurs provenant du LDAP comme étant des groupes par défaut.

Pour cela, se rendre sur la fiche d'administration du groupe, cocher la case ad hoc et enregistrer la fiche :

Forcer ou corriger un UID

L'UID d'un utilisateur peut être renseigné ou corrigé sur la fiche d'administration de l'utilisateur dans BlueMind.

Pour cela, se rendre dans la console d'administration > Annuaires > Entrées d'annuaire > choisir la fiche de l'utilisateur > onglet Maintenance : renseigner le champ ExternalID avec l'UID de l'utilisateur dans le LDAP puis enregistrer.

Les informations de l'utilisateur seront synchronisées avec l'annuaire LDAP à la prochaine exécution de la tâche ImportLDAPJob.

Préfixe

L'ExternalID doit être préfixé de "ldap:" Par exemple :

ldap://5d6b50-399a6-1e6f2-d01267d1f-0fbecb