Fichier de configuration LDAP

Les paramètres LDAP sont définis dans le fichier de configuration LDAP :

univiewer_server\<nom de noeud>\data\ldap.xml

Ce fichier doit être adapté manuellement pour indiquer les paramètres de connexion au serveur LDAP. Sa modification n'est prise en compte que lors du démarrage d'UVMS. Il n'est pas mis à jour par un upgrade d'UVMS.

Plusieurs répertoires LDAP peuvent être utilisés pour vérifier l'authentification, il faut créer une section <instance name> par répertoire LDAP dans ldap.xml.

Tous les champs du fichier sont décrits ci-dessous :

Étiquette

Valeurs

Description

instance name

Obligatoire

Une instance définit un ensemble de paramètres pour un serveur de répertoire. Lorsque plusieurs instances sont définies, l’authentification est testée pour la première instance, puis pour la deuxième si l’authentification a échoué pour la première, puis pour la troisième si l’authentification a échoué pour la deuxième, etc.

host

localhost (par défaut)

Nom d’hôte du serveur de répertoire LDAP.

port

Obligatoire

Numéro de port du serveur de répertoire LDAP. Par exemple, 389 ou 636 (SSL)

SSL

NO (par défaut)
YES

Active le protocole ldaps. Reportez-vous à la section : Configuration SSL pour plus d’informations.

connectionPool YES (par défaut)
NO

La valeur YES permet à UVMS d'utiliser un cache de connexion (utilisation standard par défaut). Reportez-vous à la section LDAP en mode bascule pour plus d'informations.

BaseDN

 

Ce paramètre est obsolète.

memberAttribute

Member

Mode Synchronisation uniquement.
Attribut utilisé pour lier les groupes et les utilisateurs.

memberAttributeOf

memberOf

Mode Synchronisation uniquement.
Attribut utilisé pour lier les groupes et les utilisateurs si le serveur LDAP supporte ce type de requête. Pour de meilleures performances utiliser de préférence ce champ à memberAttribute. Si ce champ ne doit pas être utilisé, il doit être vide.

useMemberOfAttribute

NO (par défaut)
YES

Mode Synchronisation uniquement.
Indique si UVMS peut utiliser le champ memberAttributeOf (valeur Yes) ou non (valeur No) : si le serveur LDAP supporte une requête memberOf ou pas.

followReferral

NO (par défaut)
YES

Si des serveurs LDAP esclaves sont déclarés, la valeur Yes permet de rechercher l'information sur les serveurs esclaves si elle n'est pas trouvée sur le serveur maître.
La valeur No permet d'ignorer les serveurs esclaves.

securityPrincipal

Anonymous (par défaut)

Compte utilisateur de service (au format DN) utilisé par UVMS pour rechercher des utilisateurs dans le répertoire LDAP. Cette entrée doit disposer des droits de recherche sur l’arborescence secondaire du répertoire dans laquelle se trouvent les utilisateurs. Exemples :
uid=foo,o=myCompany
CN=Eca,CN=Users,DC=automic,DC=com

clearCredential

YES (par défaut)

NO

Spécifie si SecurityCredential est au format clair ou crypté. (Reportez-vous à la section : Cryptage des mots de passe). Par défaut, les mots de passe ne sont pas cryptés.

securityCredential

Obligatoire

Mot de passe de l’entrée LDAP définie dans securityPrincipal.

securityProtocol

plain

Seul le protocole de sécurité « plain » (brut) est accepté.

securityAuthentication

simple (par défaut)

Type d’authentification.
La valeur DIGEST-MD5 peut être saisie pour supporter SASL. Reportez-vous à la section "Configuration SASL".

usersSearchBase

Obligatoire

Nom DN de l’entrée d’arborescence secondaire contenant toutes les entrées utilisateurs. Par exemple : ou=users,dc=AUTOMIC,dc=com

Pour des raisons de performances, cette valeur n'est utilisée que lors de la connexion (authentification). Lors de la synchronisation des groupes, chaque utilisateur correspondant à usersListSearchFilter sera créé dans UVMS même s'il ne correspond pas à usersSearchBase ou usersSearchDepth. Ces comptes ne pourront pas se connecter à UVMS.

usersAttributeId

CN

Mode synchronisation uniquement.
Attribut utilisé pour créer l'utilisateur, il doit être unique. Par exemple:
LDAP: uid
Active Directory: userPrincipalName.

usersListSearchFilter

 

Mode synchronisation uniquement.
Filtre appliqué pour retrouver tous les utilisateurs. Par exemple : objectclass=Person

usersSearchFilter

Obligatoire

Filtre appliqué pour retrouver l’utilisateur à partir de son login. Par exemple : LDAP: (&(objectclass=Person)(uid=!login!))

Active Directory :

(&(objectclass=Person)(samaccountname=!login!))

UVMS remplace automatiquement la variable !login! par le login fourni par l’utilisateur connecté.

usersSearchDepth

SUBTREE_SCOPE (par défaut)

OBJECT_SCOPE ONELEVEL_SCOPE

Étendue de la recherche

Pour des raisons de performances, cette valeur n'est utilisée que lors de la connexion (authentification). Lors de la synchronisation des groupes, chaque utilisateur correspondant à usersListSearchFilter sera créé dans UVMS même s'il ne correspond pas à usersSearchBase ou usersSearchDepth. Ces comptes ne pourront pas se connecter à UVMS

groupsSearchBase

 

Mode synchronisation uniquement.
Nom DN de l'arborescence contenant tous les groupes du premier niveau. Par exemple : ou=groups,dc=AUTOMIC,dc=com

groupsAttributeId

CN

Mode synchronisation uniquement.
Attribut utilisé pour créer le groupe, il doit être unique. Par exemple : CN

groupsListSearchFilter

 

Mode synchronisation uniquement.
Filtre appliqué pour trouver tous les groupes de premier niveau. Par exemple (tous les groupes commençant par AUTOMIC) :

LDAP: (&(objectClass=groupOfNames)(CN=AUTOMIC*))

Active Directory: (&(objectClass=group)(CN=AUTOMIC*))

groupsSearchDepth

SUBTREE_SCOPE (par défaut)

OBJECT_SCOPE ONELEVEL_SCOPE

Mode synchronisation uniquement.
Étendue de la recherche

nestedGroups

NO (par défaut)
YES

Mode synchronisation uniquement.
Support des groupes imbriqués (YES) ou pas (NO). Reportez-vous à la section "Groupes imbriqués".

nestedGroupsSearch
Base

 

Mode synchronisation uniquement.
Nom DN de l'arborescence contenant tous les groupes du premier niveau. Par exemple : ou=groups, dc=AUTOMIC, dc=com

nestedGroupsList
SearchFilter

 

Mode synchronisation uniquement.
Filtre appliqué pour trouver tous les groupes imbriqués. Par exemple :

LDAP: (objectClass=groupOfNames)

Active Directory: (objectClass=group)

nestedGroupsSearch
Depth

SUBTREE_SCOPE (par défaut)

OBJECT_SCOPE ONELEVEL_SCOPE

Mode synchronisation uniquement.
Étendue de la recherche pour les groups imbriqués

Les caractères génériques, lorsqu'ils sont utilisables ne peuvent être saisis qu'en fin de chaîne, par exemple "AUTOMIC*". Les caractères spéciaux doivent être représentés avec une syntaxe différente. Par exemple :
Plus petit que (<) par : &lt;
Plus grand que (>) par : &gt;
Les guillemets (") par : &quot;
L'apostrophe (') par : &apos;
L'esperluette (&) par : &amp;

Pour plus de détails à propos de securityCredentials et userSearchFilter, reportez-vous à la section "Droits de sécurité et filtre de recherche d’utilisateur".

Exemple d'un fichier de configuration LDAP générique (Open LDAP par exemple)

<?xml version="1.0" encoding="UTF-8"?>

<ldap version="1.0">

   <instance name="LDAP Repository">

      <!-- general configuration -->

      <host></host>

      <port>389</port>

      <SSL>NO</SSL>

      <memberAttribute>member</memberAttribute>

      <memberOfAttribute>memberOf</memberOfAttribute>

      <useMemberOfAttribute>NO</useMemberOfAttribute>

      <followReferral>NO</followReferral>     

      <!-- security -->

      <securityPrincipal></securityPrincipal>

      <clearCredential>YES</clearCredential>

      <securityCredential><![CDATA[]]></securityCredential>

      <securityProtocol>plain</securityProtocol>

      <securityAuthentication>simple</securityAuthentication>

      <!-- users -->

      <usersSearchBase>ou=users,dn=yourdomain,dc=com</usersSearchBase>

      <usersAttributeId>CN</usersAttributeId>

      <usersListSearchFilter><![CDATA[objectClass=person]]></usersListSearchFilter>

      <usersSearchFilter><![CDATA[(&(objectClass=person)(cn=!login!))]]></usersSearchFilter>

      <usersSearchDepth>SUBTREE_SCOPE</usersSearchDepth>

      <!-- groups -->

      <groupsSearchBase>ou=groups,dn=yourdomain,dc=com</groupsSearchBase>

      <groupsAttributeId>CN</groupsAttributeId>

      <groupsListSearchFilter><![CDATA[(&(objectClass=groupOfNames)(CN=AUTOMIC*))]]></groupsListSearchFilter>

      <groupsSearchDepth>SUBTREE_SCOPE</groupsSearchDepth>

      <!-- nested groups -->

      <nestedGroups>NO</nestedGroups>

      <nestedGroupsSearchBase>ou=groups,dn=yourdomain,dc=com</nestedGroupsSearchBase>

      <nestedGroupsListSearchFilter><![CDATA[objectClass=groupOfNames]]></nestedGroupsListSearchFilter>

      <nestedGroupsSearchDepth>SUBTREE_SCOPE</nestedGroupsSearchDepth>

   </instance>

</ldap>

Exemple d'un fichier de configuration LDAP pour Active directory

<?xml version="1.0" encoding="UTF-8"?>

<ldap version="1.0">

   <instance name="Active Direcoty">

      <!-- general configuration -->

      <host></host>

      <port>389</port>

      <SSL>NO</SSL>

      <memberAttribute>member</memberAttribute>

      <memberOfAttribute>memberOf</memberOfAttribute>

      <useMemberOfAttribute>YES</useMemberOfAttribute>

      <followReferral>NO</followReferral>     

      <!-- security -->

      <securityPrincipal></securityPrincipal>

      <clearCredential>YES</clearCredential>

      <securityCredential><![CDATA[]]></securityCredential>

      <securityProtocol>plain</securityProtocol>

      <securityAuthentication>simple</securityAuthentication>

      <!-- users -->

      <usersSearchBase>ou=users,dn=yourdomain,dc=com</usersSearchBase>

      <usersAttributeId>userPrincipalName</usersAttributeId>

      <usersListSearchFilter><![CDATA[objectClass=person]]></usersListSearchFilter>

      <usersSearchFilter><![CDATA[(&(objectClass=person)(userPrincipalName=!login!))]]></usersSearchFilter>

      <usersSearchDepth>SUBTREE_SCOPE</usersSearchDepth>

      <!-- groups -->

      <groupsSearchBase>ou=groups,dn=yourdomain,dc=com</groupsSearchBase>

      <groupsAttributeId>CN</groupsAttributeId>

      <groupsListSearchFilter><![CDATA[(&(objectClass=group)(CN=AUTOMIC*))]]></groupsListSearchFilter>

      <groupsSearchDepth>SUBTREE_SCOPE</groupsSearchDepth>

      <!-- nested groups -->

      <nestedGroups>NO</nestedGroups>

      <nestedGroupsSearchBase>ou=groups,dn=yourdomain,dc=com</nestedGroupsSearchBase>

      <nestedGroupsListSearchFilter><![CDATA[objectClass=group]]></nestedGroupsListSearchFilter>

      <nestedGroupsSearchDepth>SUBTREE_SCOPE</nestedGroupsSearchDepth>

   </instance>

</ldap>