Aller au contenu principal
Version : 5.7

Synchronisation LDAP

La souscription professionnelle BlueMind permet d'accéder à des outils facilitant l'intégration de BlueMind dans un système d'informations.

En effet, si la console d'administration permet de créer et gérer des entités directement dans BlueMind, les systèmes d'information disposent souvent d'un annuaire centralisé, de type LDAP ou Active Directory, sur lequel il est préférable de s'appuyer.

Cette section décrit le fonctionnement et la mise en place du module d'accès à un annuaire LDAP.

Le fonctionnement de l'outil​

Les fonctionnalités​

Avec le plugin LDAP, la gestion des utilisateurs est déléguée à un annuaire LDAP et la création des comptes est automatisée grâce à la synchronisation avec BlueMind.

Cette synchronisation permet :

  • l'import de la base utilisateurs et groupes de l'annuaire :
    BlueMind importe et permet d'utiliser les utilisateurs et les groupes depuis un système LDAP. L'import est réalisé pour chaque domaine côté BlueMind, de manière incrémentale.
  • l'authentification des utilisateurs BlueMind :
    Lorsque le Type d'authentification du domaine est configuré en authentification interne et que la synchronisation LDAP est activée, alors l'authentification des utilisateurs importés de l'annuaire se fait sur l'annuaire LDAP. Les mots de passe des utilisateurs importés sont alors validés auprès du serveur LDAP. BlueMind ne stocke aucun mot de passe.
  • la connexion de nouveaux utilisateurs :
    Un nouvel utilisateur peut se connecter à un serveur BlueMind même s'il n'a pas encore été importé. Son compte BlueMind sera créé automatiquement si le processus d'authentification réussit.

Cet outil évite ainsi la gestion d'une base utilisateurs dans BlueMind et les problèmes de multiplication de mots de passe. Le mot de passe est centralisé dans l'annuaire LDAP et n'est ni connu, ni importé par BlueMind.

Principes de la synchronisation​

Le provisioning (création ou modification) d'un utilisateur ou d'un groupe depuis LDAP vers BlueMind a lieu :

  • lors la configuration du serveur, avec l'import initial
  • régulièrement au cours d'une journée, via les tâches planifiées
  • ou lorsqu'un utilisateur se connecte, automatiquement, à la volée.

Pour cela, le plugin LDAP fonctionne de 3 façons complémentaires :

  1. Synchronisation globale
    Parcourt l'intégralité des utilisateurs et groupes de LDAP (en tenant compte de la racine l'annuaire et des filtres) et les importe dans BlueMind. Ceux qui n'existent pas sont créés, ceux qui existaient déjà sont modifiés si nécessaire.
    Le mode global s'exécute automatiquement à la première exécution, lors de l'import initial. Par la suite, c'est uniquement en cliquant sur le bouton "Démarrer synchronisation globale" de la console d'administration (voir le paragraphe "Configuration" ci-après) qu'on le déclenche.

    ⚠️ En fonction du nombre d'entrées de l'annuaire, la synchronisation globale peut être très longue. Cette action ne doit être lancée que dans des cas exceptionnels.

  2. Synchronisation incrémentale
    Parcourt uniquement les utilisateurs modifiés depuis le dernier import sans erreurs. Seules les données qui ont été créées, supprimées ou modifiées dans LDAP depuis la date du dernier import réussi sont importées dans BlueMind.
    Le mode incrémental s'exécute automatiquement et régulièrement via la tâche planifiée ImportLdapJob, créée lors de l'installation du plugin. Pour plus d'informations sur la gestion des tâches planifiées consulter la page La planification des tâches.

    💡 Grâce à ce système la synchronisation est optimisée.

  3. Synchronisation en temps réel
    Recherche l'utilisateur dans LDAP lorsqu'il n'est pas connu dans BlueMind ; s'il le trouve, il l'importe et l'authentifie sur LDAP pour lui donner accès immédiatement à BlueMind.

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 ImportLdapJob dans La planification des tâches.

Pour configurer la connexion LDAP :

  • Se connecter en tant qu'administrateur global admin0@global.virt
  • Se rendre dans Gestion du système > Domaines supervisés > choisir le domaine > onglet Import LDAP :
  • Cocher la case "Activer l'import LDAP"
  • Remplir les informations demandées avec les paramètres de l'annuaire :
    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.
    Les utilisateurs importés ne peuvent pas changer leur mot de passe depuis BlueMind : l'opération doit se faire dans l'annuaire LDAP.
    Pour plus d'informations sur la gestion des mots de passe, consulter le paragraphe Configurer le cache des mots de passe
    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 (entryUUID). 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.
    Statut du dernier importDate et statut 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 dans La planification des tâches
    Démarrer synchronisation incrémentaleForcer une exécution de l'import LDAP en mode incrémental.
    Seul les changements effectuées 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, consultable dans La planification des tâches
    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.

Méthode de connexion​

info

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

Par défaut, l'ensemble des utilisateurs et des groupes sont récupérés de LDAP. Des filtres permettant d'interroger une partie de l'annuaire peuvent être configurés avec les informations suivantes :

  • la racine de l'annuaire
  • les filtres à utiliser pour la synchronisation des utilisateurs et des groupes, permettant de restreindre les données importées

Un dernier paramètre permet d'indiquer le groupe de segmentation du domaine.


Tester la connexion

Le bouton "Tester la connexion" permet de vérifier directement si l'annuaire est bien accessible et l'accès correctement configuré.

Pour des raisons de sécurité, il est nécessaire de renseigner le mot de passe d'accès à l'annuaire LDAP avant chaque test de connexion, même si celui-ci a précédemment été renseigné et enregistré.

Mapping LDAP - BlueMind​

Attributs des utilisateurs​

Champ BlueMindAttribut(s) LDAPNotes
loginuidObligatoire
Un 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 '_'
externalIdconfigurable (entryUUID par défaut)Obligatoire
archived—Toujours false
identification.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 (voir Ajouter des contacts)
identification.name.givenNamesgivenName
identification.name.familyNamessn
explanatory.notedescription
organizational.titletitle
organizational.org.companyo
organizational.org.divisionou
organizational.org.departmentdepartmentNumber
photojpegPhotoPhoto de l'utilisateur : le contenu de cet attribut est importé comme photo du compte correspondant
emailsmail, mailLocalAddress, mailAlternateAddress, gosaMailAlternateAddressL'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>
quotamailQuotaSize, mailQuota, gosaMailQuotaDoivent être exprimés en octets dans LDAP et sont convertis en KiB à l'import
Le premier de ces attributs LDAP trouvé est utilisé : mailQuotaSize > mailQuota > gosaMailQuota
memberOfmemberOfListe des groupes dont l'utilisateur est membre.
L'utilisateur BlueMind ne peut être ajouté qu'à des groupes LDAP déjà importés
address.localityl
address.postalCodepostalCode
address.countryNamestPiège de nommage : l'attribut state alimente le pays
address.streetAddresspostalAddress$ remplacé par \n
address.postOfficeBoxpostOfficeBox
tél. travailtelephoneNumber
tél. domicilehomePhone
tél. mobilemobile
faxfacsimileTelephoneNumber
pagerpager

Attributs des groupes​

Champ BlueMindAttribut(s) LDAPNotes
externalIdconfigurable (entryUUID par défaut)Obligatoire
namecnObligatoire
descriptiondescription
emailsmail, mailLocalAddress, gosaMailAlternateAddressSi 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

BlueMind supporte 3 modes de gestion des groupes, par ordre de priorité :

  1. member+memberOf
  2. member sans memberOf
  3. memberUid

La tâche d'import identifie le type de représentation des membres dès son lancement et détermine ainsi le mode utilisé pour l'import des groupes. Le mode détecté est affiché au début des logs de la tâche planifiée.

Un import ne peut utiliser qu'un seul mode. Il n'est pas possible de mélanger les modes dans un même import.

Par exemple, si l'annuaire contient :

  • 1 groupe grp1 avec ses membres représentés par member+memberOf
  • 1 groupe grp2 avec ses membres représentés par memberUid

=> L'import va se mettre en mode member+memberOf et les membres de grp2 seront ignorés.

À noter qu'il est possible, sur un même BlueMind, d'avoir 2 domaines distincts, chacun avec son import LDAP spécifique.
=> Le domaine 1 utilise la repésentation member+memberOf et le domaine 2 memberUid.

Gestion des comptes​

Donner l'accès aux applications​

L'accès aux applications passe par les 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 LDAP, attribuer un groupe commun aux utilisateurs (ou plusieurs, si souhaité)
  • lancer un 1er import : le ou les groupe(s) sont importés dans BlueMind avec les utilisateurs
  • se rendre dans la console d'administration BlueMind et affecter les rôles souhaités au(x) groupe(s)

Pour plus d'informations sur les rôles et leur attribution à des groupes consulter les pages :

Mise à jour

Lors des imports et synchronisations suivants, les rôles seront conservés.

Par la suite, pour les nouveaux utilisateurs, il suffit 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.

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 de LDAP comme étant des groupes par défaut.
Pour plus d'informations sur la gestion des groupes consulter la page Éditer les groupes.

Suspendre un compte​

Les comptes importés d'un annuaire LDAP respectant le filtre configuré sont automatiquement activés.

À noter que les comptes désactivés ou supprimés dans l'annuaire LDAP - afin que l'accès à la messagerie leur soit interdit - ainsi que les comptes ne respectant pas le filtre configuré, ne sont pas supprimés mais simplement suspendus dans BlueMind.

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 LDAP puis enregistrer.

Les informations de l'utilisateur seront synchronisées avec l'annuaire LDAP à la prochaine exécution de la tâche ImportLdapJob, consultable dans La planification des tâches.

Préfixe

L'ExternalID doit être préfixé par "ldap://".

Par exemple :

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

Configurer le cache des mots de passe​

À la connexion d'un utilisateur importé depuis un annuaire LDAP, BlueMind vérifie le mot de passe auprès de l'annuaire.
En cas de succès, le résultat est mis en cache pendant une durée limitée. Par défaut cette durée est de 20 minutes.

sécurité

Le cache est valable pour toutes les connexions (webmail, DAV, EAS, IMAP/POP/SMTP) et ne stocke jamais le mot de passe en clair, seulement une empreinte HMAC-SHA256 dont la clé n'existe qu'en mémoire.

Quand un mot de passe modifié dans l'annuaire LDAP, il n'est pas détecté par le cache : l'ancien mot de passe reste accepté jusqu'à l'expiration de l'entrée en cache, soit la durée configurée. Pour réduire ce délai, diminuer la durée du cache.

💡 Pour rappel, le mot de passe ne peut pas être modifié depuis BlueMind, il doit l'être dans l'annuaire LDAP.

Pour modifier la durée du cache :

  • aller dans /etc/bm/core.conf

  • indiquer la valeur souhaitée, entre 0 et 20 minutes

    ℹ️ en sachant que :

    • les unités acceptées sont ms, s, m, h, d
    • 0 désactive le cache

    exemple : core.security.directory-password-cache-ttl = 5m

  • redémarrer bm-core à l'aide la commande suivante :

    bmctl restart

Pour aller plus loin​

Consultez la documentation BlueMind en relation