Mapping LDAP
Un référentiel LDAP contient plusieurs entrées. Chaque entrée représente un objet dans le répertoire identifié comme nom unique (DN, Distinguished Name) et peut contenir un ou plusieurs attributs. Un référentiel LDAP standard contient généralement une entrée pour les utilisateurs et une autre pour les groupes. La connexion entre les utilisateurs et les groupes peut être implémentée de deux façons différentes :
-
Les utilisateurs appartenant à un groupe sont définis dans un attribut spécial à plusieurs valeurs dans l'entrée Groupe.
-
Les groupes auxquels un utilisateur appartient sont définis dans un attribut spécial à plusieurs valeurs dans l'entrée Utilisateur.
Le mapping entre les objets de sécurité LDAP et les objets de sécurité de base est stocké dans un document XML pouvant être traité par le traitement batch d'import LDAP. Dans le cadre de la configuration de votre système pour l'import LDAP, vous devez définir ce mapping. L'installation standard fournit un fichier de mapping exemple appelé ldapdef.xml que vous pouvez utiliser comme point de départ et modifier selon les besoins de votre activité et de votre référentiel LDAP spécifique.
Une fois que vous avez défini le document XML de mapping, celui-ci est configuré en tant que paramètre dans le traitement batch F1-LDAP .
Structure XML :
-
L'élément LDAPEntry mappe les entrées LDAP sur les objets système (Utilisateur ou Groupe). Le fichier de mapping doit contenir un seul et unique élément LDAPEntry pour l'entrée Utilisateur et un autre pour l'entrée Groupe.
-
L'élément LDAPCDXAttrMapping contenu dans l'élément LDAPEntry mappe les attributs contenus dans l'entrée LDAP sur les attributs de l'objet système.
-
L'élément LDAPEntryLinks décrit les objets liés à l'entrée LDAP. Lors du mapping de l'entité utilisateur, vous devez décrire de quelle façon les groupes auxquels l'utilisateur appartient sont extraits. Lors du mapping de l'entité groupe, vous devez décrire de quelle façon les utilisateurs contenus dans le groupe sont extraits.
Le tableau suivant décrit les attributs à définir pour chaque élément.
|
Elément |
Attribut |
Description |
|---|---|---|
|
LDAPEntry |
nom |
Nom de l'entrée LDAP : - Groupe - Utilisateur |
|
baseDN |
Nom de base unique dans LDAP pour cette entrée. |
|
|
cdxEntity |
Nom de l'entité de l'installation standard à laquelle l'entrée LDAP est mappée : - Groupe - Utilisateur |
|
|
searchFilter |
Filtre de recherche LDAP utilisé pour localiser des entrées LDAP. Une chaîne %searchParm% de ce filtre est remplacée par la valeur provenant du paramètre Utilisateur ou Groupe de la soumission de traitement batch F1-LDAP . |
|
|
Scope |
Définit le cadre de la recherche. Les valeurs valides sont : - onelevel (valeur normalement utilisée) - subtree |
|
|
LDAPCDXAttrMapping |
ldapAttr |
Nom de l'attribut LDAP à mapper. Notez qu'il peut être référencé plusieurs fois pour permettre à un élément LDAP de se mapper sur plusieurs éléments de l'installation standard. Par exemple, si une adresse email doit être utilisée à la fois comme ID de connexion et comme adresse email. |
|
cdxName |
Nom de l'attribut de l'installation standard à mapper. Pour l'entrée Utilisateur, il s'agit de l'élément contenu dans l'objet métier F1-IDMUser. Pour l'entrée Groupe, il s'agit soit du "groupe" soit de la "description". |
|
|
default |
Valeur par défaut qui sera affectée à l'élément référencé dans l'attribut cdxName dans l'une des situations suivantes : - L'attribut LDAP contient une valeur nulle ou vide. - L'attribut LDAP n'existe pas ou n'est pas spécifié. Les valeurs par défaut sont appliquées uniquement lors de la création d'une entité et ne sont pas appliquées aux entrées mises à jour. |
|
|
autoGenerate |
Définissez cet attribut sur vrai pour activer la génération automatique de l'ID utilisateur. Le système définira alors l'ID utilisateur comme suit : <initiale du prénom>+<nom> tout en majuscules, avec un maximum de 8 caractères. Si l'ID généré correspond à un utilisateur existant, un nombre remplacera les huit caractères (ou sera ajouté à la fin). Le système incrémentera le nombre jusqu'à ce qu'il trouve un ID unique. |
|
|
transform |
Utilisez cet attribut pour indiquer si une transformation des données est nécessaire. Les valeurs valides sont : uppercase|truncate. Notez que cet attribut ne doit pas être utilisé conjointement avec l'attribut autoGenerate. |
|
|
LDAPEntryLink |
linkedToLDAPEntity |
Nom de l'entité associée (User ou Group). Utilisez User pour la description de l'entité Group. Utilisez Group pour la description de l'entité User. |
|
linkingLDAPAttr |
Nom de l'attribut à plusieurs valeurs dans l'entité LDAP qui contient l'entité associée. |
|
|
linkingSearchFilter |
Filtre de recherche à appliquer pour extraire la liste des objets associés, par exemple : (&(objectClass=group)(memberOf=%attr%)) Le filtre de recherche peut contenir la chaîne % attr % qui sert de chaîne de substitution et qui est remplacée à l'exécution par la valeur de l'attribut "attr" de l'entité importée. Si l'entrée LDAP que vous décrivez est un groupe et si la chaîne est %name%, elle est remplacée par la valeur de l'attribut "name" du groupe que vous importez. Si l'entrée LDAP que vous décrivez est un utilisateur et si la chaîne est %dn%, elle est remplacée par l'attribut "dn" de l'utilisateur que vous importez. |
|
|
linkingSearchScope |
Définit le cadre de la recherche. Les valeurs valides sont : - onelevel (valeur normalement utilisée) - subtree |
Exemple de mapping
L'extrait XML suivant décrit un exemple de mapping. L'exemple prend en compte les hypothèses suivantes :
-
L'attribut de l'installation standard displayProfileCode prend la valeur par défaut "NORTHAM" lors de l'ajout d'un nouvel utilisateur.
-
L'entrée Groupe LDAP contient la liste des utilisateurs appartenant au groupe dans l'attribut departmentNumber.
-
Les groupes auxquels un utilisateur appartient sont extraits en appliquant un filtre de recherche.
<LDAPEntries>
<LDAPEntry name=" User" baseDN="ou=people,dc=example,dc=com" cdxEntity="
user" searchFilter=" (&(objectClass=inetOrgPerson)(uid=%searchParm%))">
<LDAPCDXAttrMappings>
<LDAPCDXAttrMapping ldapAttr="uid" cdxName=" user" />
<LDAPCDXAttrMapping ldapAttr="cn" cdxName="externalUserId" />
<LDAPCDXAttrMapping cdxName="language" default=" ENG" />
<LDAPCDXAttrMapping ldapAttr="givenName" cdxName="firstName"/>
<LDAPCDXAttrMapping ldapAttr="sn" cdxName= "lastName"/>
<LDAPCDXAttrMapping cdxName="displayProfileCode" default="NORTHAM" />
<LDAPCDXAttrMapping cdxName="toDoEntriesAge1" default="30" />
<LDAPCDXAttrMapping cdxName="toDoEntriesAge2" default="90" />
<LDAPCDXAttrMapping cdxName="userEnable" default="ENBL"/>
</LDAPCDXAttrMappings>
<LDAPEntryLinks>
<LDAPEntryLink linkedToLDAPEntity="Group" linkingLDAPAttr="departmentNumber" />
</LDAPEntryLinks>
</LDAPEntry>
<LDAPEntry name="Group" baseDN="ou=people,dc=example,dc=com" cdxEntity="
Group" searchFilter=" (&(objectClass=organizationalUnit)(ou=%searchParm%))">
<LDAPCDXAttrMappings>
<LDAPCDXAttrMapping ldapAttr="name" cdxName="Group" />
<LDAPCDXAttrMapping ldapAttr="description" cdxName=" Description" default="Unknown" />
</LDAPCDXAttrMappings>
<LDAPEntryLinks>
<LDAPEntryLink linkedToLDAPEntity="User" linkingSearchFilter="
(&(objectClass=inetOrgPerson)(departmentNumber=%distinguishedName%))"
linkingSearchScope="onelevel" />
</LDAPEntryLinks>
</LDAPEntry>
</LDAPEntries>
