Aller au contenu principal
Version : 5.7

Synchronisation Active Directory

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 Active Directory.

Le fonctionnement de l'outil​

Les fonctionnalités​

Avec le plugin Active Directory, la gestion des utilisateurs est déléguée à un annuaire Active Directory 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 Active Directory. 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 Active Directory est activée, alors l'authentification des utilisateurs importés de l'annuaire se fait sur l'annuaire Active Directory. Les mots de passe des utilisateurs importés sont alors validés auprès du serveur Active Directory. 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 Active Directory 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 Active Directory 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 Active Directory fonctionne de 3 façons complémentaires :

  1. Synchronisation globale
    Parcourt l'intégralité des utilisateurs et groupes de Active Directory (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 Active Directory 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 ImportADJob, 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 Active Directory lorsqu'il n'est pas connu dans BlueMind ; s'il le trouve, il l'importe et l'authentifie sur Active Directory pour lui donner accès immédiatement à BlueMind.

Les modes d'import AD​

BlueMind supporte 2 modes d'import :

  • le mode Domain catalog (DC)
  • le mode Global catalog (GC)

Spécificités​

Ces modes présentent plusieurs différences :

Domain CatalogGlobal Catalog
login (identifiant)sAMAccountNameUserPrincipalName
Le login (partie gauche de l'UPN) doit être unique : un seul compte foo, tous domaines confondus. En cas de doublon, le second compte échoue à la création et l'import reste en échec à chaque exécution tant que le doublon existe.
Sans login, l'entrée est ignorée avec un log d'information ; l'import reste au statut « succès », donc l'absence ne se voit que dans les logs de la tâche
mot de passeLe changement de mot de passe n'est pas possible, le GC est en lecture seule.
port3893268
nom ou adresse IP absentrecherche de _ldap._tcp.dc._msdcs.DOMAINrecherche de _gc._tcp.<domaine>
groupesnom inchangénom suffixé par le nom du domaine
Par exemple le nom du groupe "bar" du domaine "ad.domain.tld" dans l'AD devient "bar (ad.domain.tld)" dans BlueMind
groupe de segmentation du domainemasqué et ignoré
Doublons d'identifiantPas de gestion des doublons :
Si un même nom d'utilisateur est présent dans plusieurs domaines, un seul utilisateur sera créé dans BlueMind, le ou les doublons suivants seront en erreur already exists.
synchronisation en temps réelEn cas de préfixe d'UPN partagé entre deux domaines, c'est le premier compte trouvé qui est utilisé.

💡 Pour plus d'informations concernant la gestion des groupes avec le mode Global Catalog, consulter la section Gérer les groupes dans le mode Global Catalog.

Changement de mode​

Il est possible de modifier le mode d'import utilisé :

  • Passer du mode DC au mode GC : pas de limitation.

    ⚠️ Effets de bord du passage en GC liés au PAS : les photos des utilisateurs sont supprimées et les membres des groupes globaux peuvent être retirés, faute de réplication dans le Global Catalog.

  • Passer du mode GC au mode DC : les utilisateurs des sous-domaines seront suspendus et les groupes des sous-domaines supprimés.

    ⚠️ Un avertissement est affiché dans la console d'administration pour prévenir des risques liés cette modification.

Dans les deux cas, une synchronisation globale est conseillée suite au changement.

Un changement de mode renomme les groupes. Basculer de DC vers GC et inversement ajoute ou retire le suffixe (domaine) sur tous les groupes importés, y compris leur nom de mailbox.

Installation​

Afin d'accéder aux fonctionnalités de synchronisation avec un annuaire AD, il est nécessaire d'installer le plugin ad-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-ad-import bm-plugin-core-ad-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 Active Directory pour un domaine.

Les administrateurs de domaine peuvent quant à eux voir les paramètres et lancer la tâche d'import ImportADJob dans La planification des tâches.

Pour configurer la connexion Active Directory :

  • 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 AD :
  • Cocher la case "Activer l'import AD"
  • Remplir les informations demandées avec les paramètres Active Directory :
    Paramètres demandésValeur Active Directory
    Mode d'importSélectionner le mode d'import dans la liste. Voir ci-dessus
    ❗ À la mise à jour de BlueMind, les domaines dont l'import AD est actif sont automatiquement positionnés en mode DC.
    Nom ou IP du serveur ADAdresse IP ou FQDN du serveur Active Directory. Le protocole TLS est utilisé en priorité si l'annuaire le permet.
    ⚠️ Ce champ n'accepte pas de numéro de port. Le port découle du mode d'import (389 en DC, 3268 en GC)
    💡 Ce champ peut être vide s'il est possible de déterminer la localisation du serveur en utilisant l'enregistrement DNS de type SRV :
    _ldap._tcp.dc._msdcs.DOMAIN
    par exemple _ldap._tcp.dc._msdcs.ad-domain.tld

    Pour plus d'informations sur l'enregistrement DNS, voir le site de Microsoft :
    - DNS et services AD DS
    - Comment vérifier que les enregistrements DNS SRV ont été créés pour un contrôleur de domaine
    Racine de l'annuaireRacine pour la recherche Active Directory. Si vide, les recherches sont effectuées en utilisant le DN racine. Utilisé pour limiter la recherche à une sous-partie de l'arborescence Active Directory 
    UtilisateurLogin utilisé pour effectuer des requêtes sur le serveur Active Directory. Il est possible d'utiliser n'importe quel compte utilisateur ayant les droits de parcours de l'arborescence Active Directory en mode lecture seule.
    Le login est de la forme login@DOMAIN par exemple admin@ad-domain.ltd
    Mot de passeMot de passe associé au compte renseigné dans le champ AD user login.
    Pour plus d'informations sur la gestion des mots de passe, consulter le paragraphe Configurer le cache des mots de passe
    Filtre des utilisateurs AD1Filtre pour la recherche des entrées utilisateurs dans l'AD. Seuls les utilisateurs correspondants au filtre appliqué sont importés. La syntaxe LDAP des filtres, décrite par la RFC 4515, peut être utilisée.
    Filtre des groupes AD1Filtre pour la recherche des entrées de type groupe dans l'AD. Seuls les groupes correspondants au filtre appliqué sont importés. La syntaxe LDAP des filtres, décrite par la RFC 4515, peut être utilisée.
    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.
    En GC, le groupe de segmentation du domaine est masqué et ignoré.
    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).
    Autoriser le changement de mot de passe ADAutorise les utilisateurs à modifier leur mot de passe AD depuis BlueMind.
    La police de mot de passe définie dans AD s'applique.
    ❗ L'utilisateur doit avoir le droit "Autoriser le changement de mot de passe AD" dans AD et avoir le rôle "Changer son mot de passe" côté BlueMind (voir Les rôles : droits d'accès et d'administration).
    ⚠️ En mode GC cette option n'est pas active, ne pas cocher la case.
    Pour plus d'informations sur la gestion des mots de passe, consulter le paragraphe Configurer le cache des mots de passe
    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 AD depuis cette date.
    Statut du dernier importDate et statut de la dernière exécution de l'import AD.
    En cas d'erreurs, les logs de la tâche planifiée de l'import AD de ce domaine donnent plus d'informations dans La planification des tâches
    Démarrer synchronisation incrémentaleForcer une exécution de l'import AD en mode incrémental.
    Seuls les changements effectués depuis la date de Dernière exécution réussie sont pris en compte dans AD.
    Cette opération correspond à l'exécution de la tâche planifiée d'import AD de ce domaine, consultable dans La planification des tâches
    Démarrer synchronisation globaleForcer une exécution de l'import AD 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 AD à traiter.
Ports et méthodes de chiffrement

En mode DC, la connexion se fait uniquement sur le port 389, il n'est pas possible d'utiliser un autre port, notamment le port SSL 636.
Le mode GC utilise le port 3268 (ou le port porté par l'enregistrement SRV).

Pour le chiffrement, BlueMind utilise la fonctionnalité STARTTLS s'il la détecte comme supportée par le serveur AD.

Méthode de connexion​

Le plugin BlueMind pour Active Directory n'impose aucune contrainte particulière ou aucun schéma particulier. Il suffit d'indiquer les informations suivantes :

  • le nom d'hôte (ou l'adresse IP) du serveur Active Directory
  • un couple "nom d'utilisateur" / "mot de passe" sur l'annuaire AD permettant d'opérer des connexions

Par défaut, l'ensemble des utilisateurs et des groupes sont récupérés de Active Directory. 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 Active Directory avant chaque test de connexion, même si celui-ci a précédemment été renseigné et enregistré.

Mapping Active Directory - BlueMind​

Attributs des utilisateurs​

Groupe primaire

L'import AD BlueMind se base sur member et memberOf pour déterminer les appartenances et ne supporte donc pas la gestion du groupe primaire.

D'autre part, il semble déconseillé de modifier le groupe primaire des utilisateurs sauf pour un besoin particulier.

Champ BlueMindAttribut(s) ADNotes
loginsAMAccountName (DC) / userPrincipalName (GC)Obligatoire
En GC seule la partie gauche de l'UPN est reprise. Le login doit être unique : : un seul compte foo, tous domaines confondus. En cas de doublon, le second compte échoue à la création et l'import reste en échec à chaque exécution tant que le doublon existe — aucun repli automatique.
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 '_'
externalIdobjectGuidObligatoire
archivedUserAccountControltrue si compte désactivé
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.prefixespersonalTitleTitre de civilité : Monsieur, Madame, Mademoiselle...
identification.name.givenNamesgivenName
identification.name.familyNamessn (fallback : sAMAccountName)
explanatory.notedescription
organizational.titletitleTitre professionnel : chef de service, DSI, etc.
organizational.org.companycompany, o (premier trouvé)
organizational.org.divisiondivision
organizational.org.departmentdepartment
organizational.roleemployeeType
photothumbnailPhotoPhoto de l'utilisateur : le contenu de cet attribut est importé comme photo du compte correspondant
Hors PAS : non remonté en GC (voir plus haut)
emailsmail, otherMailbox + proxyAddresses (préfixe SMTP:)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. la première valeur du champ otherMailbox
  3. proxyAddresses, selon les règles suivantes :
    1. la première préfixée par "SMTP:"
    2. si pas d'adresse préfixée par "SMTP:", la première préfixées par "smtp:"

Les suivantes sont utilisées comme alias.

NB : seules les adresses préfixées par "SMTP:" ou "smtp:" sont prises en compte (syntaxe définie par Microsoft).

⚠️ Si aucun de ces attributs n'est renseigné ou valide, il sera attribué une adresse de la forme : login@<domaine par défaut>
quota—Pas d'attribut standard, aucun quota importé depuis AD
memberOfmemberOfListe des groupes dont l'utilisateur est membre. L'utilisateur BlueMind n'est ajouté qu'aux groupes déjà importés
address.localityl
address.postalCodepostalCode
address.countryNameco, puis st si présentst écrase co — les deux écrivent dans le même champ
address.streetAddressstreet, streetAddress
tél. travailtelephoneNumber, otherTelephone
tél. domicilehomePhone, otherHomePhone
tél. mobilemobile, otherMobile
faxfacsimileTelephoneNumber, otherFacsimileTelephoneNumber
pagerpager, otherPager
entrées systématiquement exclues

Seuls les comptes utilisateurs normaux sont importés. Les comptes machine, comptes de confiance inter-domaines et les comptes systèmes sont exclus.

Attributs des groupes​

BlueMindAttribut Active DirectoryNote
namesAMAccountName
descriptiondescription
mailmail
proxyAdresses
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. proxyAddresses, selon les règles suivantes :
    1. la première préfixée par "SMTP:"
    2. si pas d'adresse préfixée par "SMTP:", la première préfixées par "smtp:"
NB : seules les adresses préfixées par "SMTP:" ou "smtp:" sont prises en compte (syntaxe définie par Microsoft).

⚠️ Si aucun de ces champs n'est renseigné alors le groupe n'aura pas de messagerie dans BlueMind.

otherMailbox n'existe pas pour les groupes. La solution pour ajouter une messagerie alias à un groupe est d'utiliser des groupes locaux ou de créer autant de groupes que nécessaire dans l'AD, chacun avec un alias, puis ajouter les groupes et/ou utilisateurs souhaités comme membres.
membermemberSeuls les groupes et utilisateurs synchronisés sont ajoutés aux membres du groupe BlueMind
entrées systématiquement exclues

Seuls les groupes de sécurité/distribution normaux sont importés. Les groupes locaux non distribués et les groupes systèmes sont exclus.

très grands groupes

Les groupes de plus de 1500 membres sont lus par lots successifs, ce qui peut provoquer des lenteurs.

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 Active Directory 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 Active Directory, 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 Active Directory 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 Active Directory respectant le filtre configuré sont automatiquement activés.

À noter que les comptes désactivés ou supprimés dans l'annuaire Active Directory - 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 Active Directory puis enregistrer.

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

Préfixe

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

Par exemple :

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

Configurer le cache des mots de passe​

À la connexion d'un utilisateur importé depuis un annuaire Active Directory, 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 le mot de passe est modifié :

  • dans BlueMind, par l'utilisateur, l'entrée en cache est supprimée : l'ancien mot de passe est immédiatement refusé et le nouveau écrit dans l'AD.

    ❗ À condition que l'import AD soit actif, que la mise à jour du mot de passe soit autorisée pour le domaine (import_ad_passwordupdate_allowed) et que la politique de mots de passe de l'AD soit respectée.

  • dans l'AD directement, 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 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

Gérer les groupes dans le mode Global Catalog​

Peut-on avoir un groupe avec des membres provenant de 2 domaines (ad.domain.tld et sub.ad.domain.tld) ?​

Oui, mais uniquement avec un groupe universel (Universal Security Group), les autres groupes n'acceptant des membres que du domaine dont ils font partie.

À noter :

  • Les groupes universels peuvent contenir des membres de n’importe quel domaine de l'installation.
  • Leur attribut member est répliqué dans le Global Catalog.

Les membres d’un groupe global remontent-ils dans le Global Catalog ?​

Oui, mais avec des restrictions :

  • Le groupe global apparaît dans le Global Catalog.
  • Son attribut member n’est PAS répliqué (comportement normal).
  • Un groupe global ne peut contenir que des membres de son propre domaine.
  • Les photos des utilisateurs sont supprimées

Comment activer la réplication de l’attribut member pour les groupes globaux ?​

L'activation est possible via la modification de l'attribut member dans le Partial Attribute Set (PAS) :

  • Ouvrir la console Active Directory Schema
  • Naviguer vers Attributes → member
  • Dans les propriétés de l'attribut, cocher "Replicate this attribute to the Global Catalog" ("Répliquer cet attribut dans le catalogue global")
  • Valider et attendre la réplication du schéma
Activation déconseillée

La modification du PAS doit d'abord être testée en environnement de pré-production.

L'activation de cet attribut en particulier est déconseillée en raison de son lourd impact sur le Global Catalog (augmentation massive du GC ⇒ trafic réseau accru ⇒ latence).

Pour aller plus loin​

Consultez la documentation BlueMind en relation

Footnotes​

  1. Filtres : Pour plus d'informations sur les filtres de groupes et utilisateurs, consulter :
    - l'article de Microsoft : LDAP Syntax Filters
    - les exemples de filtres de groupes et utilisateurs LDAP sur la page Synchronisation LDAP > Configuration* ↩ ↩2