Autres versions

Vous êtes ici : Développer dans K-SupConnecteurs SIConnecteur LDAP

Synchronisation des groupes depuis le LDAP

Documentation de paramétrage pour la synchronisation des utilisateurs depuis un annuaire LDAP

Cette page détaille comment configurer le connecteur LDAP pour synchroniser une arborescence de groupes (à partir de votre organisation ou de vos groupes) depuis votre annuaire vers votre application K-Portal ou K-Sup.

Introduction

Il existe deux façons de faire des regroupements de personnes dans un annuaire LDAP :
  • soit en utilisant des groupes : ces groupes contiennent la liste de leurs membres. Les membres des groupes peuvent être des sous-groupes ou bien des personnes, elles-mêmes des entrées de l'annuaire ;
  • soit en utilisant les organisations de la hiérarchie : chaque personne possède un ou plusieurs attributs qui contiennent les DN des organisations auxquelles elle appartient.
Le connecteur LDAP offre la possibilité de synchroniser les deux types de groupes que nous appellerons GON (GroupOfNames) pour les groupes et OU (OrganizationalUnit) pour les regroupements issus de la hiérarchie.

Note : la synchronisation des groupes peut se faire au même titre que les utilisateurs sur plusieurs annuaires LDAP, vous avez donc la possibilité de créer plusieurs configurations pour la récupération des groupes, en utilisant le même mécanisme d'alias que pour la synchronisation d'utilisateurs : "ldapPers", "ldapEtu"...
 

Types de synchronisation

Il est tout d'abord indispensable de pouvoir identifier le paramétrage propre à chacune des synchronisations. Pour cela, si vous avez plusieurs synchronisations de groupes à créer sur le même alias LDAP, renseignez le paramètre suivant :
Propriété Valeurs possibles Valeur par défaut Exemple
ldap.groupe.alias Liste d'alias séparés par une virgule. Ce paramètre n'est pas requis si vous n'avez qu'une configuration à déclarer. Si vous n'avez qu'un alias à déclarer, le nom de l'alias sera "groupe". ldap.groupe.alias=synchro-gon,synchro-ou

Ainsi, votre configuration pour les groupes GON sera toujours préfixée de la façon suivante :
ldap.synchro-gon.parametre1=...
Et pour les groupes de type OU :
ldap.synchro-ou.parametre1=...

Si vous n'avez qu'un alias, votre configuration sera de la forme :
ldap.groupe.parametre1=
Note : Et si vous avez plusieurs alias LDAP (plusieurs annuaires), pensez à remplacer "ldap" par votre alias.

Ajoutez ensuite le paramètre suivant pour définir le type de synchronisation :
Propriété Valeurs possibles Exemple
ldap.groupe.typesynchro GON (pour les groupes dit "GroupOfNames")
OU (pour les groupes de type OrganizationalUnit)
ldap.synchro-ou.typesynchro=OU
ldap.synchro-gon.typesynchro=GON

Sélection des groupes

Pour la synchronisation des groupes, il est indispensable de connaître quels sont les groupes de l'annuaire que l'on souhaite importer. Ainsi, il faut définir :
Propriété Valeurs possibles Exemple
ldap.groupe.searchdn La classe d'objet i.e. le type d'objet LDAP définissant un groupe ldap.synchro-gon.searchdn=ou=GroupOfName,dc=marmotte,c=fr
ldap.synchro-ou.searchdn=ou=structures,o=orga,dc=marmotte,c=fr
ldap.groupe.objectsearchdn Le domaine de recherche i.e. le domaine de la hiérarchie où sont situés les groupes à synchroniser ldap.synchro-gon.objectsearchdn=GroupOfNames
ldap.synchro-ou.objectsearchdn=organizationalUnit
ldap.groupe.searchcritere Pour affiner la séléction des groupes, il est également possible de définir une requête LDAP comportant des critères supplémentaires (facultatif)
ldap.groupe.resultatparpage Pour des raisons de performance, il est possible d'utiliser la pagination des résultats. Valeur attendue : un nombre (facultatif) ldap.groupe.resultatparpage=500

Paramétrage des attributs à synchroniser

Vous pouvez ensuite définir un ensemble de paramètres qui vont permettre l'alimentation automatique des données de chaque groupe :
Propriété Valeurs possibles Exemple
ldap.groupe.libelle nom de l'attribut LDAP pour renseigner le nom du groupe ldap.groupe.libelle=cn
ldap.groupe.type nom de l'attribut LDAP pour renseigner le type du groupe (*)
ldap.groupe.code_page_tete nom de l'attribut LDAP pour renseigner le code de la page d'accueil (*)
ldap.groupe.roles nom de l'attribut LDAP pour renseigner les rôles (*)
ldap.groupe.code_structure nom de l'attribut LDAP pour renseigner la structure de rattachement du groupe
(*) Pour ces attributs, il est courant de passer par l'attribution d'une valeur par défaut, car l'information n'est généralement pas définie dans l'annuaire. Voir ci-après pour définir une valeur par défaut.

! Important Le code du groupe sera alimenté automatiquement à partir de son DN.

Pour chacun de ces paramètres, il est possible d'appliquer des règles :
  • Définition d'une valeur par défaut si l'attribut n'est pas renseigné
  • Récupération de la première valeur si jamais l'attribut est multivalué dans l'annuaire
  • Concaténation de plusieurs attributs pour composer la valeur souhaitée
  • Création d'une table de correspondance si les attributs du LDAP doivent être transformés avant d'être importés dans votre application
  • Découpage de la valeur récupérée avant de l'importer
Toutes ces options sont détaillées dans l'article suivant : Options de récupération des attributs LDAP
 

Définition de la hiérarchie

Cas des groupes de type "GON"

Dans l'annuaire LDAP, à l'inverse de K-Sup ou K-Portal, chaque groupe dispose de la liste des ses membres : personnes et groupes fils.Ainsi, le connecteur a besoin des informations suivantes :
Propriété Valeurs possibles Exemple
ldap.groupe.membreUtilisateur Nom de l'attribut LDAP des groupes qui renseigne les membres d'un groupe ldap.synchro-gon.membreUtilisateur=member
ldap.groupe.membreGroupe Nom de l'attribut LDAP des groupes qui renseigne les sous-groupes d'un groupe ldap.synchro-gon.membreGroupe=member
ldap.groupe.personnclass Classe d'objet définissant une personne ldap.synchro-gon.personnclass=person
ldap.groupe.userid L'attribut LDAP qui désigne l'identifiant d'un utilisateur ldap.synchro-gon.userid=employeeNumber

Cas des groupes de type "OU"

Dans l'annuaire LDAP, les organisations sont également hiérarchisées. Afin de générer les rattachements entre les utilisateurs et les organisations, le connecteur a besoin de connaître la liste des attributs d'un utilisateur LDAP qui renseigne le DN des organisations auxquelles appartient la personne :
Propriété Valeurs possibles Exemple
ldap.groupe.attributsutilisateur Liste des attributs LDAP qui désigne les organisations auxquelles sont rattachés les utilisateurs ldap.synchro-ou.attributsutilisateur=eduPersoOrgUnitDn

Autres options

Propriété Valeurs possibles Exemple
ldap.groupe.code_racine Code d'un groupe existant dans votre application K-Portal ou K-Sup ldap.groupe.code_racine=GRPLDAP

Options spécifiques aux synchronisations de type GON

Propriété Valeurs possibles Exemple
ldap.groupe.groupeuid Il est possible de spécifier un attribut du LDAP pour remplacer le DN comme identifiant du groupe. ldap.synchro-gon.groupeuid=attributid
ldap.groupe.recursiveMember Il est possible de synchroniser uniquement le premier niveau de groupe ( i.e. uniquement ceux répondant à la requête de recherche), tout en collectant récursivement les membres dans l'ensemble des sous-groupes.
Valeur possible : 1
ldap.synchro-gon.recursiveMember=1
ldap.groupe.rangeMember Dans le cas d'un annuaire Active Directory et de groupe ayant un nombre de membres très important, Active Directory utilise un type d'attribut « range ». Cet attribut permet de renvoyer les membres d'un groupe par paquet de 1000 membres. Ceci permet de ne pas surcharger le serveur. Pour activer ce paramètre, il suffit de positionner ce paramètre avec la valeur 1. ldap.synchro-gon.rangeMember=1

Groupes dynamiques

Si vous souhaitez activer et gérer des groupes dynamiques LDAP, veuillez vous reporter à la documentation correspondante.
 

Mis à jour le 19 décembre 2017