« Authentification LDAP » : différence entre les versions

De MoodleDocs
Aller à :navigation, rechercher
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 79 : Ligne 79 :
| Type d'utilisateur
| Type d'utilisateur
| Choisir :  
| Choisir :  
* '''Annuaire électronique Novel''' si votre serveur LDAP exécute le répertoire électronique Novell.
* '''Novell eDirectory''' si votre serveur LDAP exécute Novell eDirectory.
* '''posixAccount (rfc2307)''' si votre serveur LDAP exécute un serveur LDAP compatible RFC-2307 (choisissez si votre serveur exécute OpenLDAP, y compris le serveur Mac OS X).
* '''posixAccount (rfc2307)''' si votre serveur LDAP exécute un serveur LDAP compatible RFC-2307 (choisissez si votre serveur exécute OpenLDAP, y compris le serveur Mac OS X).
* '''posixAccount (rfc2307bis)''' si votre serveur LDAP exécute un serveur LDAP compatible RFC-2307bis.
* '''posixAccount (rfc2307bis)''' si votre serveur LDAP exécute un serveur LDAP compatible RFC-2307bis.
Ligne 120 : Ligne 120 :


Voici les valeurs par défaut pour chacune des valeurs ''ldap_user_type'' :
Voici les valeurs par défaut pour chacune des valeurs ''ldap_user_type'' :
* '''(objectClass=user)''' pour l'annuaire électronique Novel
* '''(objectClass=user)''' pour Novell eDirectory
* '''(objectClass=posixAccount)''' pour  RFC-2037 et RFC-2037bis
* '''(objectClass=posixAccount)''' pour  RFC-2037 et RFC-2037bis
* '''(objectClass=sambaSamAccount)''' pour l'extension SAMBA 3.0.x LDAP
* '''(objectClass=sambaSamAccount)''' pour l'extension SAMBA 3.0.x LDAP
Ligne 148 : Ligne 148 :
Gardez à l'esprit que changer vos mots de passe LDAP depuis Moodle peut nécessiter une connexion LDAPS (c'est en fait une exigence pour MS-AD). En outre, l'utilisateur bind spécifié ci-dessus doit avoir les droits nécessaires pour changer les mots de passe des autres utilisateurs.  
Gardez à l'esprit que changer vos mots de passe LDAP depuis Moodle peut nécessiter une connexion LDAPS (c'est en fait une exigence pour MS-AD). En outre, l'utilisateur bind spécifié ci-dessus doit avoir les droits nécessaires pour changer les mots de passe des autres utilisateurs.  


De plus, le code pour changer les mots de passe de Moodle pour tout ce qui n'est pas l'annuaire électronique Novell et l'annuaire Active n'est presque pas testé, donc cela peut fonctionner ou non pour d'autres serveurs LDAP.
De plus, le code pour changer les mots de passe de Moodle pour tout sauf Novell eDirectory et Active Directory n'est presque pas testé, donc cela peut fonctionner ou non pour d'autres serveurs LDAP.
|-
|-
| Format du mot de passe
| Format du mot de passe
Ligne 159 : Ligne 159 :
====LDAP password expiration settings====
====LDAP password expiration settings====
{| border="1" cellspacing="0" cellpadding="5"
{| border="1" cellspacing="0" cellpadding="5"
! Field name
! Nom du champ
! Value to fill in
! Valeur à remplir
|-
|-
| Expiration
| Expiration
|  
|  
* Setting this to ''No'' will make Moodle not to check if the password of the user has expired or not.
* Si vous réglez ce paramètre sur ''Non'', Moodle ne vérifiera pas si le mot de passe de l'utilisateur est expiré ou non.
* Setting this to ''LDAP'' will make Moodle check if the LDAP password of the user has expired or not, and warn them a number of days before the password expires. When the password has expired, a "Your password has expired" message is displayed, and if the user is able to change their password from Moodle, they are offered the option to do so.
* Si vous réglez ce paramètre sur ''LDAP'', Moodle vérifiera si le mot de passe LDAP de l'utilisateur a expiré ou non, et l'avertira quelques jours avant que le mot de passe n'expire. Lorsque le mot de passe a expiré, un message "Votre mot de passe a expiré" s'affiche et si l'utilisateur a la capacité de changer son mot de passe depuis Moodle, il a la possibilité de le faire.


Current code only deals with Novell eDirectory LDAP server and MS-AD.
Le code actuel ne concerne que les serveurs Novell eDirectory, LDAP et MS-AD.


<u>So unless you have Novell eDirectory server or MS-AD, choose ''No'' here.</u>
<u>Donc, à moins que vous n'ayez un serveur Novell eDirectory ou MS-AD, choisissez "Non" ici.</u>
|-
|-
| Expiration warning
| Avertissement d'expiration
| This value sets how many days in advance of password expiration the user is warned that her password is about to expire.
| Cette valeur définit combien de jours avant l'expiration du mot de passe l'utilisateur est averti que son mot de passe est sur le point d'expirer.
|-
|-
| Expiration attribute.
| Attribut d'expiration
| The LDAP user attribute used to check password expiration. This option takes a default value based on the ''User type'' value you chose above. <u>So unless you need something special, you don't need to fill this in.</u>
| L'attribut utilisateur LDAP utilisé pour vérifier l'expiration du mot de passe. Cette option prend une valeur par défaut basée sur la valeur "Type d'utilisateur" que vous avez choisie ci-dessus. <u>Alors à moins que vous n'ayez besoin de quelque chose de spécial, vous n'avez pas besoin de remplir ce champ.</u>
|-
|-
| Grace logins
| Grace login
| This setting is specific to Novell eDirectory. If set to ''Yes'', enable LDAP gracelogin support. After password has expired the user can login until gracelogin count is 0.
| Ce paramètre est spécifique à Novell eDirectory. Si ce paramètre a la valeur ''Oui'', activez la prise en charge de l'authentification LDAP. Après l'expiration du mot de passe, l'utilisateur peut se connecter jusqu'à ce que le compteur gracelogin est 0.


<u>So unless you have Novell eDirectory server and want to allow gracelogin support, choose ''No'' here.</u>
<u>Ainsi, à moins que vous ne disposiez d'un serveur Novell eDirectory et que vous souhaitiez autoriser le support de gracelogin, choisissez "Non" ici.</u>
|-
|-
| Grace login attribute
| Attribut Grace login
| This setting is currently not used in the code (and is specific to Novell eDirectory).  
| Ce paramètre n'est actuellement pas utilisé dans le code (et est spécifique à Novell eDirectory).


<u>So you don't need to fill this in.</u>
<u>Vous n'avez donc pas besoin de remplir ce champ.</u>
|}
|}


====Enable user creation====
====Permettre la création d'utilisateurs====
 
{| border="1" cellspacing="0" cellpadding="5"
{| border="1" cellspacing="0" cellpadding="5"
! Field name
! Nom du champ
! Value to fill in
! Valeur à remplir
|-
|-
| Create users externally
| Créer des utilisateurs en externe
| New (anonymous) users can self-create user accounts on the external LDAP server and confirm them via email. If you enable this, remember to also configure module-specific options for user creation and to fill in some instructions in ''auth_instructions'' field in ''Site administration > Plugins > Authentication > Manage authentication''. Otherwise the new users won't be able to self-create new accounts.
| Les nouveaux utilisateurs (anonymes) peuvent créer eux-mêmes des comptes utilisateurs sur le serveur LDAP externe et les confirmer par e-mail. Si vous activez cette option, n'oubliez pas de configurer également les options spécifiques aux modules pour la création d'utilisateurs et de remplir certaines instructions dans le champ ''auth_instructions'' du champ ''Administration du site > Plugins > Authentification > Gestion de l'authentification''. Sinon, les nouveaux utilisateurs ne pourront pas créer eux-mêmes de nouveaux comptes.


Novell eDirectory and MS-AD can create users externally. You can also create users in RFC-2307 compliant servers.  
Novell eDirectory et MS-AD peuvent créer des utilisateurs externes. Vous pouvez également créer des utilisateurs dans des serveurs compatibles RFC-2307.  
|-
|-
| Context for new users
| Contexte pour les nouveaux utilisateurs
| Specify the context where users are created. This context should be different from other users' contexts to prevent security issues.  
| Spécifiez le contexte dans lequel les utilisateurs sont créés. Ce contexte devrait être différent de celui des autres utilisateurs afin de prévenir les problèmes de sécurité.  
|}
|}


====Assign system roles====
====Attribution des rôles système====
 
{| border="1" cellspacing="0" cellpadding="5"
{| border="1" cellspacing="0" cellpadding="5"
! Field name
! Nom du champ
! Value to fill in
! Valeur à remplir
|-
|-
| System role mapping
| Mappage des rôles système
| This section lists all roles that have can be assigned in the System context - by default this will be "Manager context" and "Course creator context", but can be customisable in the [[Creating custom roles|role definitions]].
| Cette section liste tous les rôles qui peuvent être attribués dans le contexte Système, par défaut, il s'agira du "Contexte gestionnaire" et du "Contexte créateur de cours", mais peuvent être personnalisés dans la section [[Création de rôles personnalisés]].


To assign LDAP users to any of the roles, specify the DN containing all users who should be granted that role at the system level.
Pour affecter des utilisateurs LDAP à l'un des rôles, spécifiez le DN contenant tous les utilisateurs auxquels ce rôle doit être attribué au niveau système.


Thie DN is typically a posixGroup with a "memberUid" attribute for each user you want to be a creator. If your group is called ''creators'', type '''cn=creators,ou=moodleusers,dc=my,dc=organization,dc=domain''' here. Each memberUid attribute contains the CN of a user who is authorized to be a creator. Do not use the user's full DN (e.g., not '''memberUid: cn=JoeTeacher,ou=moodleusers,dc-my,dc=organizations,dc=domain''', but rather '''memberUid: JoeTeacher''').
Ce DN est typiquement un posixGroup avec un attribut "memberUid" pour chaque utilisateur que vous voulez créer. Si votre groupe s'appelle ''créateurs'', tapez ici '''cn=créateurs,ou=moodleusers,dc=my,dc=organization,dc=domain'''. Chaque attribut memberUid contient le CN d'un utilisateur autorisé à être créateur. N'utilisez pas le nom de domaine complet de l'utilisateur (par exemple, pas '''memberUid : cn=JoeTeacher,ou=moodleusers,dc-my,dc=organizations,dc=domain''', mais plutôt '''memberUid : JoeTeacher''').


In eDirectory, the objectClass for a group is (by default) not '''posixGroup''' but '''groupOfNames,''' whose member attribute is '''member,''' not '''memberUid,''' and whose value is the full DN of the user in question. Although you can probably modify Moodle's code to use this field, a better solution is just to add a new '''objectClass''' attribute of '''posixGroup''' to your creators group and put the CNs for each creator in a '''memberUid''' attribute.
Dans eDirectory, l'objectClass d'un groupe n'est pas (par défaut) "'posixGroup'" mais '"groupOfNames'" dont l'attribut membre est "'member'", pas "'memberUid'" et dont la valeur est le DN complet de l'utilisateur en question. Bien que vous puissiez probablement modifier le code de Moodle pour utiliser ce champ, une meilleure solution est d'ajouter un nouvel attribut '''objectClass''' de '''posixGroup''' à votre groupe de créateurs et de mettre les CN pour chaque créateur dans un attribut '''memberUid'''.


In MS Active Directory, you will need to create a security group for your creators to be part of and then add them all. If your ldap context above is 'ou=staff,dc=my,dc=org' then your group should then be 'cn=creators,ou=staff,dc=my,dc=org'. If some of the users are from other contexts and have been added to the same security group, you'll have to add these as separate contexts after the first one using the same format.
Dans MS Active Directory, vous devrez créer un groupe de sécurité dont vos créateurs feront partie, puis les ajouter tous. Si votre contexte ldap ci-dessus est "ou=staff,dc=my,dc=org" alors votre groupe devrait être "cn=creators,ou=staff,dc=my,dc=org". Si certains utilisateurs proviennent d'autres contextes et ont été ajoutés au même groupe de sécurité, vous devrez les ajouter comme contextes séparés après le premier en utilisant le même format.


This section replaces the "Course creator" section found in Moodle 3.3. The upgrade process should migrate any DN specified to the new approach.
Cette section remplace la section "Créateur de cours" de Moodle 3.3. Le processus de mise à niveau doit migrer tout DN spécifié vers la nouvelle approche.


|}
|}
Ligne 224 : Ligne 226 :
====User account syncronisation====
====User account syncronisation====
{| border="1" cellspacing="0" cellpadding="5"
{| border="1" cellspacing="0" cellpadding="5"
! Field name
! Nom du champ
! Value to fill in
! Valeur à remplir
|-
|-
| Removed ext user
| Utilisateur externe supprimé
| Specify what to do with internal user account during mass synchronization when user was removed from external source. Only suspended users are automatically revived if they reappear in ext source.
| Spécifiez ce qu'il faut faire avec le compte utilisateur interne pendant la synchronisation de masse lorsque l'utilisateur a été supprimé de la source externe. Seuls les utilisateurs suspendus sont automatiquement réactivés s'ils réapparaissent en source externe.
|}
|}


====NTLM SSO====
====NTLM SSO====
{| border="1" cellspacing="0" cellpadding="5"
{| border="1" cellspacing="0" cellpadding="5"
! Field name
! Nom du champ
! Value to fill in
! Valeur à remplir
|-
|-
| Enable
| Activer
| If you want to use NTLM SSO (see details at [[NTLM_authentication]]), choose ''Yes'' here. Otherwise, choose ''No''.
| Si vous voulez utiliser NTLM SSO (voir les détails à [[Authentification NTLM]]), choisissez ''Oui'' ici. Sinon, choisissez ''Non''.
|-
|-
| Subnet
| Subnet
| Specify the subnets of the clients that will use NTLM SSO (see details at [[NTLM_authentication]]).
| Spécifiez les sous-réseaux des clients qui utiliseront NTLM SSO (voir détails à [[Authentification NTLM]]).
|-
|-
| MS IE Fast Path?
| MS IE Voie rapide ?
| If all of you clients (or most of them) are using MS Internet Explorer, you can set this option to bypasses certain steps of the SSO login and speed up login times. This only works with MS Internet Explorer, but deals with other browsers in a sensible way (they are automatically sent to the plain login page).
| Si tous vos clients (ou la plupart d'entre eux) utilisent MS Internet Explorer, vous pouvez définir cette option pour contourner certaines étapes de la connexion SSO et accélérer les temps de connexion. Ceci ne fonctionne qu'avec MS Internet Explorer, mais traite les autres navigateurs d'une manière raisonnable (ils sont automatiquement envoyés à la page de connexion simple).
|}
|}


====Data Mapping====
====Mappage de données====
 
{| border="1" cellspacing="0" cellpadding="5"
{| border="1" cellspacing="0" cellpadding="5"
! Field name
! Nom du champ
! Value to fill in
! Valeur à remplir
|-
|-
| First name
| Prénom
| The name of the attribute that holds the first name of your users in your LDAP server. This is usually '''givenName''' or '''displayName'''
| Le nom de l'attribut qui contient le prénom de vos utilisateurs dans votre serveur LDAP. Il s'agit généralement de '''givenName''' ou '''displayName'''.


<u>This setting is optional</u>
<u>Ce réglage est optionnel</u>
|-
|-
| Surname
| Nom de famille
| The name of the attribute that holds the surname of your users in your LDAP server. This is usually '''sn'''.
| Le nom de l'attribut qui contient le nom de famille de vos utilisateurs dans votre serveur LDAP. C'est généralement "'sn"'.


<u>This setting is optional</u>
<u>Ce réglage est optionnel</u>
|-
|-
| Email address
| Adresse de courriel
| The name of the attribute that holds the email address of your users in your LDAP server. This is usually '''mail'''.
| Le nom de l'attribut qui contient l'adresse de courriel de vos utilisateurs dans votre serveur LDAP. C'est généralement '''mail'''.
 
<u>Ce réglage est optionnel</u>
<u>This setting is optional</u>
|-
|-
| City/town
| Ville/village
| The name of the attribute that holds the city/town of your users in your LDAP server. This is usully '''l''' (lowercase L) or '''localityName''' (not valid in MS-AD).
| Le nom de l'attribut qui contient la ville de vos utilisateurs dans votre serveur LDAP. C'est généralement "l". (L minuscule) ou '''localityName''' (non valide dans MS-AD).


<u>This setting is optional</u>  
<u>Ce réglage est optionnel</u>  
|-
|-
| Country
| Pays
| The name of the attribute that holds the country of your users in your LDAP server. This is usully '''c''' or '''countryName''' (not valid in MS-AD).
| Le nom de l'attribut qui contient le pays de vos utilisateurs dans votre serveur LDAP. C'est généralement '''c''' ou '''countryName''' (non valide dans MS-AD).


<u>This setting is optional</u>
<u>Ce réglage est optionnel</u>
|-
|-
| Language
| Langue
| '''preferredLanguage'''
| '''preferredLanguage'''


<u>This setting is optional</u>
<u>Ce réglage est optionnel</u>
|-
|-
| Description
| Description
| '''description'''
| '''description'''


<u>This setting is optional</u>
<u>Ce réglage est optionnel</u>
|-
|-
| Webpage
| Webpage
| <u>This setting is optional</u>
| <u>Ce réglage est optionnel</u>
|-
|-
| ID Number
| ID Number
|  
|  


<u>This setting is optional</u>
<u>Ce réglage est optionnel</u>
|-
|-
| Institution
| Institution
|  
|  


<u>This setting is optional</u>
<u>Ce réglage est optionnel</u>
|-
|-
| Department
| Département
| The name of the attribute that holds the department name of your users in your LDAP server. This is usully '''departmentNumber''' (for posixAccount and maybe eDirectory) or '''department''' (for MS-AD).
| Le nom de l'attribut qui contient le nom du département de vos utilisateurs dans votre serveur LDAP. C'est généralement '''departmentNumber''' (pour posixAccount et peut-être eDirectory) ou '''department''' (pour MS-AD).


<u>This setting is optional</u>
<u>Ce réglage est optionnel</u>
|-
|-
| Phone 1
| Téléphone 1
| The name of the attribute that holds the telephone number of your users in your LDAP server. This is usually '''telephoneNumber'''.
| Le nom de l'attribut qui contient le numéro de téléphone de vos utilisateurs dans votre serveur LDAP. Il s'agit habituellement du '''numéro de téléphone'''.


<u>This setting is optional</u>
<u>Ce réglage est optionnel</u>
|-
|-
| Phone 2
| Téléphone 2
The name of the attribute that holds an additional telephone number of your users in your LDAP server. This can be '''homePhone''', '''mobile''', '''pager''', '''facsimileTelephoneNumber''' or even others.
Le nom de l'attribut qui contient un numéro de téléphone supplémentaire de vos utilisateurs dans votre serveur LDAP. Il peut s'agir de '''homePhone''','''mobile''','''pager''','''facsimileTelephoneNumber''' ou même d'autres.


<u>This setting is optional</u>
<u>Ce réglage est optionnel</u>
|-
|-
| Address
| Adresse
| The name of the attribute that holds the street address of your users in your LDAP server. This is usully '''streetAddress''' or '''street'.
| Le nom de l'attribut qui contient l'adresse municipale de vos utilisateurs dans votre serveur LDAP. C'est généralement '''streetAddress''' ou '''street'''.


<u>This setting is optional</u>
<u>Ce réglage est optionnel</u>
|}
|}


=====Custom User profile fields=====
=====Champs de profil utilisateur personnalisé=====


Any user profile fields created in ''Site administration > Users > Accounts > User profile fields'' should now automatically show up at the end of the Data mapping field list after the '''Address''' field. See example: [[File:ldapcustomuserprofilefields.jpg]]
Tous les champs de profil utilisateur créés dans ''Administration du site > Utilisateurs > Comptes > Champs de profil utilisateur'' devraient maintenant apparaître automatiquement à la fin de la liste des champs de mappage des données après le champ '''Adresse'''. Voir l'exemple : [[Fichier:.png]].


==Enabling the LDAP users sync job==
==Activation de la tâche de synchronisation des utilisateurs LDAP==


The LDAP users sync job (''\auth_ldap\task\sync_task'') [[Scheduled tasks|scheduled task]] (new in Moodle 3.0; previously there was a CLI script, see MDL-51824 for more info) is responsible for creating and updating user information, and suspending and deleting LDAP accounts.  
Le travail de synchronisation des utilisateurs LDAP (''\auth_ldap\task\sync_task'') [[Tâches planifiées|Tâche planifiée]] (nouveau dans Moodle 3.0 ; auparavant il y avait un script CLI, voir MDL-51824 pour plus d'informations) est responsable de créer et mettre à jour les informations utilisateur, suspendre et supprimer des comptes LDAP.  


After enabling LDAP server authentication, an administrator needs to enable and configure the LDAP users sync job as follows:
Après avoir activé l'authentification du serveur LDAP, un administrateur doit activer et configurer la tâche de synchronisation des utilisateurs LDAP comme suit :


# Go to ''Site administration > Server > Scheduled tasks'' and click the gear icon opposite LDAP users sync job.
# Allez dans ''Administration du site > Serveur > Tâches planifiées'' et cliquez sur l'icône d'équipement en face du travail de synchronisation des utilisateurs LDAP.
# Select the desired frequency of running and enable the task by un-ticking the disabled checkbox.
# Sélectionnez la fréquence d'exécution souhaitée et activez la tâche en décochant la case à cocher désactivée.
{{Warning|It is important to make sure that all LDAP settings are working properly before enabling the LDAP users sync job (as well as backing up your database and moodledata folders), since incorrect LDAP configuration can result in users being wrongly deleted!}}
{{Avertissement|Il est important de s'assurer que tous les paramètres LDAP fonctionnent correctement avant d'activer le travail de synchronisation des utilisateurs LDAP (ainsi que de sauvegarder votre base de données et vos dossiers de données moodledata), car une configuration LDAP incorrecte peut entraîner la suppression erronée des utilisateurs!}}.


If you find that the script is not running through all of your users properly and you have over 1000 users in each LDAP container, this is because by default some LDAP stores such as MS AD only send back 1000 users at a time and PHP versions prior to 5.4 did not implement paged support for LDAP results. If you upgrade to PHP 5.4 or higher then Moodle will obtain all your users correctly. If you can't upgrade to PHP 5.4 you may be able to follow the instructions in http://support.microsoft.com/kb/315071 to set the Active Directory MaxPageSize setting to a number higher than your total number of users (both now and in future) to fix it. This is a forest-wide setting.
Si vous constatez que le script ne fonctionne pas correctement avec tous vos utilisateurs et que vous avez plus de 1000 utilisateurs dans chaque conteneur LDAP, c'est parce que, par défaut, certaines mémoires LDAP tels que MS AD ne renvoient que 1000 utilisateurs à la fois et les versions PHP antérieures à 5.4 ne prenaient pas en charge les résultats LDAP pagés. Si vous mettez à jour vers PHP 5.4 ou supérieur, Moodle obtiendra tous vos utilisateurs correctement. Si vous ne pouvez pas mettre à niveau vers PHP 5.4, vous pouvez suivre les instructions de http://support.microsoft.com/kb/315071 pour régler le paramètre Active Directory MaxPageSize à un nombre supérieur à votre nombre total d'utilisateurs (actuel et futur) pour le corriger. Il s'agit d'un cadre forestier.


==Active Directory help==
==Aide Active Directory==
[[Active Directory]] is Microsoft's directory service. It is included in Windows 2000 Server and later versions of their operating system. For more information about subjects below, '''[[Active Directory|please go here]]'''.
[[Active Directory]] est le service annuaire de Microsoft. Il est inclus dans Windows 2000 Server et les versions ultérieures de leur système d'exploitation. Pour plus d'informations sur les sujets ci-dessous, veuillez '''[[Active Directory|consulter cette page]]'''.


*Warning: The PHP LDAP module does not seem to be present
*Avertissement: Le module PHP LDAP ne semble pas être présent
*LDAP-module cannot connect any LDAP servers
*Le module LDAP ne peut connecter aucun serveur LDAP  
*Getting correct CNs for Contexts and Creators
*Obtenir des NC corrects pour les contextes et les créateurs
*Getting the right user_attribute
*Obtenir le bon user_attribute
*Installing ldp.exe Server Tool
*Installation de l'outil serveur ldp.exe
*Example Active Directory Configuration
*Exemple de configuration Active Directory
*Child Domains and the Global Catalog in MS Active Directory
*Le Child Domain et le Global catalog dans MS Active Directory
*Enabling the Global Catalog
*Activation du Global Catalog
*Active Directory with Moodle 1.8
*Active Directory avec Moodle 1.8
*MS Active Directory + SSL
*MS Active Directory + SSL


==Advanced Scenarios - Multiple servers or locations==
==Scénarios avancés, Serveurs ou emplacements multiples==
For larger installations with  multiple LDAP servers, or multiple locations (contexts) in a LDAP tree.
 
Pour les grandes installations avec plusieurs serveurs LDAP ou plusieurs emplacements (contextes) dans une arborescence LDAP.
 
===Rendre votre connexion LDAP directory résiliente===


===Making your LDAP directory connection resilient===
* Entrer plus d'un nom dans le champ ldap_host_url peut fournir une sorte de résilience à votre système. Utilisez simplement la syntaxe :
* Entering more than one name in the ldap_host_url field can provide some sort of resilience to your system. Simply use the syntax:


  ldap://my.first.server; ldap://my.second.server; ...
  ldap://my.first.server; ldap://my.second.server; ...


Of course, this will only work if all the servers share the same directory information, if using eDirectory you would need to ensure your servers have viability of all relevant tree partitions, or if using Active Directory the servers are holding the same information you need though replication - see notes on a multi-domain environment if this applies.
Bien sûr, cela ne fonctionnera que si tous les serveurs partagent les mêmes informations d'annuaire, si vous utilisez eDirectory, vous devez vous assurer que vos serveurs ont la viabilité de toutes les partitions arborescentes pertinentes, ou si vous utilisez Active Directory, les serveurs contiennent les mêmes informations dont vous avez besoin par réplication, voir notes sur un environnement multi-domaines si cela est nécessaire.


There is one drawback in Moodle 1.5 - 1.6 implementation of LDAP authentication : the auth_ldap_connect() function processes the servers sequentially, not in a round robin mode. Thus, if the primary server fails, you will have to wait for the connection to time out before switching to the following one.
Il y a un inconvénient dans l'implémentation de Moodle 1.5 - 1.6 de l'authentification LDAP : la fonction auth_ldap_connect() traite les serveurs séquentiellement, et non en mode round robin. Ainsi, si le serveur primaire tombe en panne, vous devrez attendre que la connexion soit terminée avant de passer au serveur suivant.


See also: [http://moodle.org/mod/forum/discuss.php?d=17198 Using multiple LDAP servers - Our students are on separate domain] forum discussion
Voir aussi le forum de discussion : [http://moodle.org/mod/forum/discuss.php?d=17198 Utilisation de plusieurs serveurs LDAP, Nos étudiants sont sur un domaine séparé]  


===Using a multi-domain AD environment===
===Utilisation d'un environnement multi-domaines AD===
* If you're running Active Directory with multiple domains and you have users in more then one domain you will want to configure Moodle to look at your Global Catalog server. Specifically your top level domain Global Catalog server. Here is a simple example of this kind of Active Directory layout:
 
* Si vous exécutez Active Directory avec plusieurs domaines et que vous avez des utilisateurs dans plus d'un domaine, vous voudrez configurer Moodle pour qu'il regarde votre serveur Global Catalog. En particulier, le serveur Global Catalog de votre domaine de premier niveau. Voici un exemple simple de ce type de disposition d'Active Directory :


  my.domain.ca (Root AD Domain)
  my.domain.ca (Root AD Domain)
Ligne 379 : Ligne 385 :
  | - - - dc2.faculty.my.domain.ca (Domain Controller)
  | - - - dc2.faculty.my.domain.ca (Domain Controller)
   
   
In this example we have our top level domain (my.domain.ca) and two sub-domains. One sub-domain is for faculty accounts (faculty.my.domain.ca) and the other is for student accounts (students.my.domain.ca). Listed under each of those are two domain controllers.
Dans cet exemple, nous avons notre domaine de premier niveau (my.domain.ca) et deux sous-domaines. Un sous-domaine est pour les comptes des professeurs (faculty.my.domain.ca) et l'autre est pour les comptes des étudiants (students.my.domain.ca). Deux contrôleurs de domaine sont répertoriés sous chacun d'eux.


Using the above example you'll want to use the following for accessing the Global Catalog over SSL:
En utilisant l'exemple ci-dessus, vous voudrez utiliser ce qui suit pour accéder au Global Catalog sous SSL :


  ldaps://my.domain.ca:3269/
  ldaps://my.domain.ca:3269/


If you prefer to access your global catalog over a non-SSL connection you'll want to use:
Si vous préférez accéder à votre catalogue global par une connexion non-SSL, vous voudrez utiliser:


  ldap://my.domain.ca:3268/
  ldap://my.domain.ca:3268/
   
   
We found if you didn't configure things this way you'd get errors like:
Nous avons trouvé que si vous ne configuriez pas les choses de cette façon, vous auriez des erreurs comme :
 
  [Thu May 26 15:23:53 2011] [error] [client 192.168.xxx.xxx] PHP Avertissement:  ldap_search() [<a href='function.ldap-search'>function.ldap-search</a>]: Recherche: Résultats partiels et signalements reçus en /xxx/xxx/moodle20/lib/ldaplib.php sur la ligne 241, référent : http://moodle.my.domain.ca/moodle20/login/index.php
  [Thu May 26 15:23:53 2011] [error] [client 192.168.xxx.xxx] PHP Avertissement :  ldap_first_entry(): n'est pas une ressource de résultat ldap valide dans le fichier /xxx/xxx/moodle20/lib/ldaplib.php sur la ligne 248, référent : http://moodle.my.domain.ca/moodle20/login/index.php
 
===Utilisation de plusieurs emplacements utilisateurs (contextes) dans votre arbre LDAP===


  [Thu May 26 15:23:53 2011] [error] [client 192.168.xxx.xxx] PHP Warning:  ldap_search() [<a href='function.ldap-search'>function.ldap-search</a>]: Search: Partial results and referral received in /xxx/xxx/moodle20/lib/ldaplib.php on line 241, referer: http://moodle.my.domain.ca/moodle20/login/index.php
Il n'est pas nécessaire d'utiliser plusieurs emplacements utilisateurs si votre arborescence de répertoire est plate, c'est-à-dire si tous les comptes utilisateurs résident dans un conteneur '''ou=people,dc=my,dc=organization,dc=domain'' ou ''ou=people,o=myorg'''.  
  [Thu May 26 15:23:53 2011] [error] [client 192.168.xxx.xxx] PHP Warning:  ldap_first_entry(): supplied argument is not a valid ldap result resource in /xxx/xxx/moodle20/lib/ldaplib.php on line 248, referer: http://moodle.my.domain.ca/moodle20/login/index.php


===Using multiple user locations (contexts) in your LDAP tree===
A l'inverse, si vous utilisez le mécanisme ACL pour déléguer la gestion des utilisateurs, il y a des chances que vos utilisateurs soient stockés dans des conteneurs tels que '''ou=students,ou=dept1,o=myorg''' et ''ou=students,ou=dept2,o=myorg'''...
There is no need to use multiple user locations if your directory tree is flat, i.e. if all user accounts reside in a '''ou=people,dc=my,dc=organization,dc=domain''' or '''ou=people,o=myorg''' container.  


At the opposite, if you use the ACL mecanism to delegate user management, there are chances that your users will be stored in containers like '''ou=students,ou=dept1,o=myorg''' and '''ou=students,ou=dept2,o=myorg''' ...
Alors il y a une alternative :


Then there is an alternative :
* Regardez le niveau '''o=myorg''' avec l'attribut ldap_search_sub défini sur '''oui'''.
* Look at the '''o=myorg''' level with the ldap_search_sub attribute set to '''yes'''.
* Définissez le contexte_ldap à '''ou=students,ou=dept1,o=myorg ; ou=students,ou=dept2,o=myorg'''.
* Set the ldap_context to '''ou=students,ou=dept1,o=myorg ; ou=students,ou=dept2,o=myorg'''.


Choosing between these two solutions supposes some sort of benchmarking, as the result depends heavily on the structure of your directory tree '''and''' on your LDAP software indexing capabilities. Simply note that there is a probability in such deep trees that two users share the same ''common name'' (cn), while having different ''distinguished names''. Then only the second solution will have a deterministic result (returning allways the same user).
Choisir entre ces deux solutions suppose une sorte de benchmarking, car le résultat dépend fortement de la structure de votre arborescence d'annuaires '''et''' de vos capacités d'indexation de logiciels LDAP. Notez simplement qu'il y a une probabilité dans des arborescences si profondes que deux utilisateurs partagent le même "nom commun" (cn), tout en ayant des "noms distinctifs" différents. Seule la deuxième solution aura alors un résultat déterministe (renvoyant toujours le même utilisateur).


===Using LDAPS (LDAP over SSL)===
===Utilisation de LDAPS (LDAP sur SSL)===
====Enabling LDAPS on your directory server====
====Activer LDAPS sur votre directory serveur====


* [[Active_Directory#MS_Active_Directory_.2B_SSL|Enabling LDAPS on MS Active Directory ]]
* [[Active_Directory#MS_Active_Directory_.2B_SSL|Activation du LDAPS sur MS Active Directory]]


====Enabling LDAPS on your Moodle server====
====Activer LDAPS sur votre serveur Moodle====
Enabling LDAPS on your server can be tricky and often it is hard to pinpoint where things are going wrong. There are also differences between Windows and Linux and even different versions and distributions of Linux.


'''If you have not done so already you will need to decide upon your approach to establishing an SSL connection to your directory server:'''
L'activation de LDAPS sur votre serveur peut s'avérer délicate et il est souvent difficile d'identifier les points faibles. Il y a aussi des différences entre Windows et Linux et même entre les différentes versions et distributions de Linux.


* SSL connection with unverified self-signed certificate.
'''Si vous ne l'avez pas déjà fait, vous devrez décider de votre approche pour établir une connexion SSL à votre serveur d'annuaire :'''


You can generate your own SSL certificate, and then instruct your Moodle server to ignore the fact that it is not valid. This setup is not as secure as others since you cannot be sure the server you are connecting to is not fake.
* Connexion SSL avec certificat auto-signé non vérifié.


* SSL connection with trusted self-signed certificate.
Vous pouvez générer votre propre certificat SSL, puis demander à votre serveur Moodle d'ignorer qu'il n'est pas valide. Cette configuration n'est pas aussi sûre que les autres car vous ne pouvez pas être sûr que le serveur auquel vous vous connectez n'est pas faux.


You can generate your own SSL certificate on your directory server, and then specifically trust this certificate by installing it on your Moodle server.  
* Connexion SSL avec certificat auto-signé de confiance.


* SSL connection with verified certificate from Internet-trusted certificate authority (CA)
Vous pouvez générer votre propre certificat SSL sur votre directory serveur, puis faire spécifiquement confiance à ce certificat en l'installant sur votre serveur Moodle.


In this approach the LDAP server has an installed certificate from an Internet-based CA, this means that your directory server would have an Internet address & host name. Your Moodle server must be trusting the certificate authority and have Internet access. This approach is not often used as it usually incurs a cost for the certificate, and it requires your directory server and Moodle server to be exposed to the Internet.
* Connexion SSL avec certificat vérifié par une autorité de certification de confiance Internet (CA)


==Linux servers==
Dans cette approche, le serveur LDAP possède un certificat installé par une autorité de certification basée sur Internet, ce qui signifie que votre serveur d'annuaire aurait une adresse Internet et un nom d'hôte. Votre serveur Moodle doit faire confiance à l'autorité de certification et avoir un accès Internet. Cette approche n'est pas souvent utilisée car elle entraîne généralement un coût pour le certificat, et elle nécessite que votre serveur d'annuaire et votre serveur Moodle soient exposés à Internet.
'''These instructions are for establishing a link using a trusted self-signed certificate.'''


''Note: written for a Red Hat Enterprise Linux 6 server, other Linux distributions may differ, especially in the location of the SSL certificates and OpenLdap config files, but the core principals are the same.''
==Serveur Linux==
'''Ces instructions servent à établir un lien à l'aide d'un certificat auto-signé de confiance.'''


To check that your directory server is online and accepting SSL connections on your LDAPS port (636), you can use try:
''Remarque: écrites pour un serveur Red Hat Enterprise Linux 6, les autres distributions Linux peuvent différer, notamment en ce qui concerne l'emplacement des certificats SSL et des fichiers de configuration OpenLdap, mais les principes fondamentaux sont les mêmes.''
 
Pour vérifier que votre serveur d'annuaire est en ligne et accepte les connexions SSL sur votre port LDAPS (636), vous pouvez utiliser try :
  openssl s_client –connect <ldap server ip address>:636
  openssl s_client –connect <ldap server ip address>:636


Get your directory server’s certificate (.crt) and upload to Moodle server's ssl certificate directory, on RHEL6 this is at '''/etc/ssl/certs'''
Obtenez le certificat de votre directory serveur (.crt) et téléchargez dans le directory certificats SSL du serveur Moodle, sur RHEL6 c'est au '''/etc/ssl/certs'''


Convert your ‘DER’ X509 certificate into a ‘PEM’ public key certificate.
Convertissez votre certificat "DER" X509 en certificat de clé publique "PEM".
  openssl x509 -in my_server_certificate.cer -inform DER -out my_server_certificate.pem -outform PEM
  openssl x509 -in my_server_certificate.cer -inform DER -out my_server_certificate.pem -outform PEM


Create certificate hashes using c_rehash
Créer des hachages de certificats à l'aide de c_rehash
  c_rehash
  c_rehash
''If c_rehash is not installed install with: yum install /usr/bin/c_rehash''
''If c_rehash is not installed install with: yum install /usr/bin/c_rehash''


Ensure you are able to access your LDAPS server by a DNS name, this may mean adding an entry to your host file (/etc/hosts)
Assurez-vous que vous pouvez accéder à votre serveur LDAPS par un nom DNS, cela peut signifier ajouter une entrée à votre fichier hôte (/etc/hosts).
  <ldap server ip address>    my_server.mydomain.school
  <ldap server ip address>    my_server.mydomain.school


Verify your certificate to check that it is installed correctly
Vérifier votre certificat pour vérifier qu'il est correctement installé
  openssl verify -verbose -CApath /etc/ssl/certs /etc/ssl/certs/my_server_certificate.pem
  openssl verify -verbose -CApath /etc/ssl/certs /etc/ssl/certs/my_server_certificate.pem
  /etc/ssl/certs/my_server_certificate.pem: OK
  /etc/ssl/certs/my_server_certificate.pem: OK


You should now be able to connect to your LDAPS server over SSL without any errors
Vous devriez maintenant pouvoir vous connecter à votre serveur LDAPS via SSL sans aucune erreur
  openssl s_client –connect <ldap server DNS name>:636
  openssl s_client –connect <ldap server DNS name>:636


Edit your OpenLDAP config, on RHEL6 this is located at '''/etc/openldap/ldap.conf'''
Editez votre configuration OpenLDAP, sur RHEL6 elle se trouve à l'adresse suivante '''/etc/openldap/ldap.conf'''
  # Define location of a CA Cert
  # Définir l'emplacement d'un CA Cert
  TLS_CACERT /etc/ssl/certs/my_server_certificate.pem
  TLS_CACERT /etc/ssl/certs/my_server_certificate.pem
  TLS_CACERTDIR /etc/ssl/certs
  TLS_CACERTDIR /etc/ssl/certs


Finally, you may or may not need to restart Apache, before configuring Moodle to use ldaps://<server DNS name>
Enfin, vous pouvez ou non avoir besoin de redémarrer Apache, avant de configurer Moodle pour utiliser ldaps ://<server DNS name>
  httpd -k restart
  httpd -k restart


==Windows servers==
==Serveurs Windows==
'''These instructions are for establishing a link using an unverified self-signed certificate.'''


You can tell PHP's OpenLDAP extension to disable SSL server certificate checking to do this you must create a directory called ''''C:\OpenLDAP\sysconf\'''' In this directory, create a file called ''ldap.conf'' with the following content:
'''Ces instructions servent à établir un lien à l'aide d'un certificat auto-signé non vérifié.'''
 
Vous pouvez indiquer à l'extension OpenLDAP de PHP de désactiver la vérification du certificat de serveur SSL pour ce faire, vous devez créer un répertoire appelé '''C:\OpenLDAP\sysconf\''' Dans ce répertoire, créer un fichier appelé ''ldap.conf'' avec le contenu suivant :


  TLS_REQCERT never
  TLS_REQCERT never


''(If you are using certain versions of PHP 5.3.x you '''may need to place the file at other locations''', [http://bugs.php.net/bug.php?id=48866 see PHP bug #48866])''
''(Si vous utilisez certaines versions de PHP 5.3.x, vous devrez '''peut-être placer le fichier à d'autres emplacements''', [http://bugs.php.net/bug.php?id=48866 see PHP bug #48866])''


Now you should be able to use '''ldaps://''' when connecting to your LDAP server.
Vous devriez maintenant pouvoir utiliser '''ldaps://''' lors de la connexion à votre serveur LDAP.


==Appendices==
==Annexes==


=== Setting Resource Limits RedHat Directory Server ===
=== Définition des limites de ressources du serveur RedHat Directory===


Operational attributes can be set for the bind user DN using the command-line.  
Les attributs opérationnels peuvent être définis pour le DN utilisateur de liaison à l'aide de la ligne de commande.  
One can simply use ldapmodify to add the following attributes:
On peut simplement utiliser ldapmodify pour ajouter les attributs suivants :


{| border="1" cellspacing="0" cellpadding="5"
{| border="1" cellspacing="0" cellpadding="5"
! Attribute Name
! Nom de l'attribut
! Description
! Description
|-
|-
| nsLookThroughLimit
| nsLookThroughLimit
| Specifies how many entries are examined for a search operation. Giving this attribute a value of -1 indicates that there is no limit.
| Indique le nombre de données examinées pour une opération de recherche. Le fait de donner à cet attribut une valeur de -1 indique qu'il n'y a pas de limite.
|-
|-
| nsSizeLimit  
| nsSizeLimit  
| Specifies the maximum number of entries the server returns to a client application in response to a search operation. Giving this attribute a value of -1 indicates that there is no limit.
| Spécifie le nombre maximum de données que le serveur renvoie à une application client en réponse à une opération de recherche. Le fait de donner à cet attribut une valeur de -1 indique qu'il n'y a pas de limite.
|-
|-
| nsTimeLimit  
| nsTimeLimit  
| Specifies the maximum time the server spends processing a search operation. Giving this attribute a value of -1 indicates that there is no time limit.
| Spécifie le temps maximum que le serveur passe à traiter une opération de recherche. Le fait de donner à cet attribut une valeur de -1 indique qu'il n'y a pas de limite de temps.
|-
|-
| nsIdleTimeout          
| nsIdleTimeout          
| Specifies the time a connection to the server can be idle before the connection is dropped. The value is given in seconds. Giving this attribute a value of -1 indicates that there is no limit.
| Indique le temps pendant lequel une connexion au serveur peut être inactive avant que la connexion ne soit interrompue. La valeur est donnée en secondes. Le fait de donner à cet attribut une valeur de -1 indique qu'il n'y a pas de limite.
|}
|}


Ligne 507 : Ligne 517 :
  </pre>  
  </pre>  


==Any questions?==
==D'autres questions ?==


Please post in the [http://moodle.org/mod/forum/view.php?id=42 Authentication forum] on moodle.org.
N'hésitez pas à poster sur le [http://moodle.org/mod/forum/view.php?id=42 forum d'authentification] sur moodle.org.


==See also==
==Voir aussi==


* [[NTLM_authentication]]
* [[Authentification NTLM]]
* [[Active_Directory]]
* [[Active_Directory]]
* [[LDAP enrolment]]
* [[Inscription LDAP]]
* [http://download.moodle.org/download.php/docs/en/how-to_guides/ldap_auth_and_enrolment_set-up.pdf LDAP auth and enrolment set-up guide] (PDF 227KB)
* [http://download.moodle.org/download.php/docs/en/how-to_guides/ldap_auth_and_enrolment_set-up.pdf Guide de configuration des droits d'auteur et d'inscription LDAP] (PDF 227KB)


Forum discussions:
Forum de discussions:
* [http://moodle.org/mod/forum/view.php?id=42 User authentication forum]
* [http://moodle.org/mod/forum/view.php?id=42 Forum d'authentification des utilisateurs]
* [http://moodle.org/mod/forum/discuss.php?d=32168 PHP LDAP module does not seem to be present] forum discussion
* [http://moodle.org/mod/forum/discuss.php?d=32168 Le module PHP LDAP ne semble pas être présent] forum de discussion
* [http://moodle.org/mod/forum/discuss.php?d=140901 Syncronisation with AUTH_LDAP_SYNC_USERS.PHP produces fewer accounts than it should] forum discussion
* [http://moodle.org/mod/forum/discuss.php?d=140901 La synchronisation avec AUTH_LDAP_SYNC_USERS.PHP produit moins de comptes qu'il ne le faudrait] forum de discussion
* [http://moodle.org/mod/forum/discuss.php?d=17198 Using multiple LDAP servers] forum discussion
* [http://moodle.org/mod/forum/discuss.php?d=17198 Utilisation de plusieurs serveurs LDAP] forum de discussion


[[es:LDAP_authentication]]
[[es:LDAP_authentication]]
[[fr:Utiliser un serveur LDAP]]
[[en:LDAP authentication]]
[[ja:LDAP認証]]
[[ja:LDAP認証]]
[[de:LDAP-Server]]
[[de:LDAP-Server]]
[[en:LDAP authentication]]

Version du 10 mai 2019 à 10:19

Remarque : la traduction de cette page n'est pas terminée. N'hésitez pas à traduire tout ou partie de cette page ou à la compléter. Vous pouvez aussi utiliser la page de discussion pour vos recommandations et suggestions d'améliorations.


Ce document décrit comment configurer l'authentification LDAP (Lightweight Directory Access Protocol) dans Moodle. Nous couvrons les sections de base, avancées et quelques sections de dépannage pour aider l'utilisateur dans l'installation et l'administration de LDAP dans Moodle.

Scénario basique

L'approche simple et directe pour la plupart des installations.

Hypothèses

Moodle prend en charge plusieurs types de serveurs LDAP qui ont des structures de répertoires différentes, des paramètres de configuration spéciaux, etc. Même si vous utilisez le même type de serveur LDAP (par exemple, MS Active Directory), chaque site pourrait utiliser une structure d'annuaire complètement différente pour tenir ses comptes utilisateurs, groupes, etc. Afin de pouvoir montrer des exemples de paramètres de configuration dans les sections ci-dessous, nous allons supposer un hypothétique site Moodle et serveur LDAP avec les caractéristiques listées ci-dessous.

REMARQUE IMPORTANTE: assurez-vous de vérifier votre site Moodle et les détails du serveur LDAP (y compris sa structure de répertoire) et ajustez les paramètres pour refléter votre propre configuration.

  1. Votre site Moodle est situé à http://your.moodle.site/.
  2. Vous avez configuré votre installation PHP avec l'extension LDAP. Il est chargé et activé, et il s'affiche lorsque vous vous rendez sur http://your.moodle.site/admin/phpinfo.php. (connecté en tant qu'utilisateur "admin").
  3. Votre serveur LDAP a pour adresse IP 192.168.1.100.
  4. Vous n'utilisez pas LDAP avec SSL (aussi appelé LDAPS) dans vos paramètres. Ceci peut empêcher certaines opérations de fonctionner (par exemple, vous ne pouvez pas mettre à jour les données si vous utilisez MS Active Directory -- MS-AD à partir de maintenant --), mais devrait être OK si vous voulez juste authentifier vos utilisateurs.
  5. Vous ne voulez pas que vos utilisateurs changent leurs mots de passe la première fois qu'ils se connectent à Moodle.
  6. Vous utilisez un seul domaine comme source de vos données d'authentification au cas où vous utilisez MS-AD (plus d'informations à ce sujet dans les annexes).
  7. Vous utilisez un nom distingué de niveau supérieur (DN) de dc=my,dc=organization,dc=domain comme racine de votre arbre LDAP.
  8. Vous avez un compte utilisateur LDAP non privilégié que vous utiliserez pour vous connecter au serveur LDAP. Ce n'est pas nécessaire avec certains serveurs LDAP, mais MS-AD l'exige et cela ne fera pas de mal si vous l'utilisez même si votre serveur LDAP n'en a pas besoin. Assurez-vous que ce compte et son mot de passe n'expirent pas, et faites en sorte que ce mot de passe soit aussi fort que possible. Rappelez-vous que vous n'avez besoin de taper ce mot de passe qu'une seule fois, lors de la configuration de Moodle, alors n'ayez pas peur de le rendre aussi difficile à deviner que possible. Disons que ce compte utilisateur a un DN de 'cn=ldap-user,dc=my,dc=organization,dc=domain', et mot de passe hardtoguesspassword.
  9. Tous vos utilisateurs Moodle sont dans une unité organisationnelle (OU) appelée "moodleusers", qui se trouve juste sous votre racine LDAP. Ce OU a un DN de ou=utilisateurs de moodleusers,dc=my,dc=organization,dc=domain.
  10. Vous ne voulez pas que les mots de passe de vos utilisateurs LDAP soient stockés dans Moodle.

Activation de l'authentification LDAP

Un administrateur peut activer l'authentification LDAP comme suit :

  1. Allez dans Administration du site > Plugins > Authentification > Gérer l'authentification' et cliquez sur l'icône en regard de LDAP Server. Lorsqu'elle est activée, elle n'est plus grisée.
  2. Cliquez sur le lien Paramètres, configurez si nécessaire (voir les informations ci-dessous), puis cliquez sur le bouton "Enregistrer les modifications".
Fichier:.png

Il ne vous reste plus qu'à remplir les valeurs. Allons-y pas à pas

Paramètres du serveur LDAP

Nom du champs Valeur à remplir
URL Hôte Comme l'adresse IP de votre serveur LDAP est 192.168.1.100, tapez "ldap://192.168.1.100". (sans les guillemets), ou simplement "192.168.1.100" (certaines personnes ont du mal à se connecter à la première syntaxe, surtout sur les serveurs MS Windows).
Version A moins que vous n'utilisiez un très vieux serveur LDAP, version 3 est celui que vous devriez choisir.
Codage LDAP Spécifiez le codage utilisé par le serveur LDAP. Probablement de l'Utf-8.

Table des Matières

Paramètres de liaison

Nom du champ Valeur à remplir
Ne mettez pas les mots de passe en cache Comme vous ne voulez pas stocker le mot de passe de l'utilisateur dans la base de données Moodle, choisissez "'Oui'" ici.
Nom distinctif C'est le nom distinctif de l'utilisateur bind défini ci-dessus. Tapez simplement "cn=ldap-user,dc=my,dc=organization,dc=domain". (sans les guillemets).
Mot de passe Il s'agit du mot de passe de l'utilisateur de liaison défini ci-dessus. Tapez "hardtoguesspassword". (sans les guillemets).

Table des Matières

Paramètres de recherche utilisateur

Nom du champs Valeur à remplir
Type d'utilisateur Choisir :
  • Novell eDirectory si votre serveur LDAP exécute Novell eDirectory.
  • posixAccount (rfc2307) si votre serveur LDAP exécute un serveur LDAP compatible RFC-2307 (choisissez si votre serveur exécute OpenLDAP, y compris le serveur Mac OS X).
  • posixAccount (rfc2307bis) si votre serveur LDAP exécute un serveur LDAP compatible RFC-2307bis.
  • sambaSamAccount (v.3.0.7) si votre serveur LDAP fonctionne avec l'extension de schéma LDAP 3.x de SAMBA et que vous souhaitez l'utiliser.
  • MS ActiveDirectory si votre serveur LDAP exécute Active Directory de Microsoft (MS-AD)
Contextes Le DN du contexte (conteneur) où se trouvent tous vos utilisateurs Moodle. Tapez ou=moodleusers,dc=my,dc=organization,dc=domain ici.

Sur un serveur Mac OS X, il s'agit généralement de cn=users,dc=my,dc=organization,dc=domain.

Recherche de sous-contextes Si vous avez des sous-unités organisationnelles (sous-contextes) suspendues à ou=moodleusers,dc=my,dc=organization,dc=domain et que vous voulez que Moodle recherche aussi, définissez ceci sur oui. Sinon, réglez ce paramètre sur non.
Alias de déréférence Parfois, votre serveur LDAP vous dira que la valeur réelle que vous recherchez se trouve en fait dans une autre partie de l'arbre LDAP (c'est ce qu'on appelle un alias). Si vous voulez que Moodle dé-réfère l'alias et récupère la valeur réelle à partir de l'emplacement d'origine, définissez ce paramètre sur oui. Si vous ne voulez pas que Moodle le dé-réfère, réglez ce paramètre sur "'non'". Si vous utilisez MS-AD, réglez ce paramètre sur non.
Attribut utilisateur L'attribut utilisé pour nommer/rechercher des utilisateurs dans votre arbre LDAP. Cette option prend une valeur par défaut basée sur la valeur "Type d'utilisateur" que vous avez choisie ci-dessus. Alors à moins que vous n'ayez besoin de quelque chose de spécial, vous n'avez pas besoin de remplir ce champ .

Correction: Avec MS-AD sAMAccountName devrait être utilisé de toute façon. Avec la valeur par défaut (cn), les utilisateurs AD devront se connecter avec leur nom complet / mot de passe (Nom d'utilisateur : John Doe, Mot de passe : john's_pass). Si vous voulez permettre à vos utilisateurs de se connecter avec un nom d'utilisateur de domaine à la place (Nom d'utilisateur : johnd Mot de passe : john's_pass), vous devez utiliser sAMAccountName. Malheureusement, mais la connexion avec DOMAIN\user ou user@domain.com ne fonctionnera pas de toute façon.

Remarque : Vous pouvez envisager d'autoriser les caractères étendus dans les noms d'utilisateur dans Administration du site > Sécurité > Règles site.
Attribut du membre L'attribut utilisé pour lister les membres d'un groupe donné. Cette option prend une valeur par défaut basée sur la valeur "Type d'utilisateur" que vous avez choisie ci-dessus. Alors à moins que vous n'ayez besoin de quelque chose de spécial, vous n'avez pas besoin de remplir ce champ.

D'ailleurs, les valeurs habituelles sont membe et memberUid.

L'attribut membre utilise dn Que l'attribut membre contienne des noms distingués (1) ou non (0), cette option prend une valeur par défaut basée sur la valeur " Type d'utilisateur " que vous avez choisie ci-dessus. Alors à moins que vous n'ayez besoin de quelque chose de spécial, vous n'avez pas besoin de remplir ce champ.
Classe d'objets Type d'objet LDAP utilisé pour rechercher des utilisateurs. Cette option prend une valeur par défaut basée sur la valeur " Type d'utilisateur " que vous avez choisie ci-dessus. Alors à moins que vous n'ayez besoin de quelque chose de spécial, vous n'avez pas besoin de remplir ce champ.
  • Si vous laissez ce champ vide, la valeur par défaut basée sur le "Type d'utilisateur" sélectionné ci-dessus sera utilisée (voir ci-dessous).
  • Si vous fournissez "objectClass=some-string", alors il fournira "(objectClass=some-string)" comme filtre.
  • Si vous fournissez une valeur qui ne commence pas par "(", elle est supposée être une valeur qui doit être définie à "objectClass". Donc si vous fournissez "somee-string", alors il fournira "(objectClass=some-string)" comme filtre.
  • Si vous fournissez une chaîne qui commence par un "(", alors elle passera en l'état. Donc si vous fournissez "(&(objectClass=user)(enabledMoodleUser=1))", alors il passera cela comme filtre.

Remarque: Dans ce dernier cas, cette fonctionnalité peut être utilisée sur les logins interactifs,

Voici les valeurs par défaut pour chacune des valeurs ldap_user_type :

  • (objectClass=user) pour Novell eDirectory
  • (objectClass=posixAccount) pour RFC-2037 et RFC-2037bis
  • (objectClass=sambaSamAccount) pour l'extension SAMBA 3.0.x LDAP
  • (objectClass=user) pour MS-AD
  • (objectClass=*) par défaut

Si vous obtenez une erreur à propos d'un problème de mise à jour du serveur ldap (même si vous avez spécifié de ne pas écrire les changements sur le serveur ldap), essayez de régler la classe d'objets ldap sur * - voir http://moodle.org/mod/forum/discuss.php?d=70566 pour une discussion sur ce problème.

Forcer le changement de mot de passe

Nom du champ Valeur à remplir
Forcer le changement de mot de passe REMARQUE: Ce paramètre n'est utilisé que lors de la création de vos utilisateurs avec la tâche de synchronisation LDAP. Il n'est pas utilisé si vos utilisateurs sont créés lors de leur première connexion à Moodle.

Définissez ce paramètre sur " Oui " si vous voulez forcer vos utilisateurs à changer leur mot de passe lors de la première connexion à Moodle. Sinon, réglez ce paramètre sur non. Gardez à l'esprit que le mot de passe qu'ils sont obligés de changer est celui stocké sur votre serveur LDAP.

Comme vous ne voulez pas que vos utilisateurs changent leurs mots de passe lors de leur première connexion, laissez ce paramètre à "Non".

Utiliser la page standard de modification du mot de passe
  • En réglant ce paramètre sur "Oui", Moodle utilise sa propre page de changement de mot de passe standard, chaque fois que les utilisateurs veulent changer leur mot de passe.
  • En réglant ce paramètre sur "Non", Moodle utilise la page spécifiée dans le champ appelé "URL de changement de mot de passe" (voir ci-dessous).

Gardez à l'esprit que changer vos mots de passe LDAP depuis Moodle peut nécessiter une connexion LDAPS (c'est en fait une exigence pour MS-AD). En outre, l'utilisateur bind spécifié ci-dessus doit avoir les droits nécessaires pour changer les mots de passe des autres utilisateurs.

De plus, le code pour changer les mots de passe de Moodle pour tout sauf Novell eDirectory et Active Directory n'est presque pas testé, donc cela peut fonctionner ou non pour d'autres serveurs LDAP.

Format du mot de passe Indiquez comment le nouveau mot de passe est crypté avant de l'envoyer au serveur LDAP : Texte brut, hachage MD5 ou hachage SHA-1. MS-AD utilise du texte brut, par exemple.
URL de changement de mot de passe Ici, vous pouvez spécifier un emplacement où vos utilisateurs peuvent récupérer ou modifier leur nom d'utilisateur/mot de passe s'ils l'ont oublié. Ceci sera fourni aux utilisateurs sous la forme d'un bouton sur la page de connexion et leur page d'utilisateur. Si vous laissez ce champ vide, le bouton ne sera pas imprimé.

LDAP password expiration settings

Nom du champ Valeur à remplir
Expiration
  • Si vous réglez ce paramètre sur Non, Moodle ne vérifiera pas si le mot de passe de l'utilisateur est expiré ou non.
  • Si vous réglez ce paramètre sur LDAP, Moodle vérifiera si le mot de passe LDAP de l'utilisateur a expiré ou non, et l'avertira quelques jours avant que le mot de passe n'expire. Lorsque le mot de passe a expiré, un message "Votre mot de passe a expiré" s'affiche et si l'utilisateur a la capacité de changer son mot de passe depuis Moodle, il a la possibilité de le faire.

Le code actuel ne concerne que les serveurs Novell eDirectory, LDAP et MS-AD.

Donc, à moins que vous n'ayez un serveur Novell eDirectory ou MS-AD, choisissez "Non" ici.

Avertissement d'expiration Cette valeur définit combien de jours avant l'expiration du mot de passe l'utilisateur est averti que son mot de passe est sur le point d'expirer.
Attribut d'expiration L'attribut utilisateur LDAP utilisé pour vérifier l'expiration du mot de passe. Cette option prend une valeur par défaut basée sur la valeur "Type d'utilisateur" que vous avez choisie ci-dessus. Alors à moins que vous n'ayez besoin de quelque chose de spécial, vous n'avez pas besoin de remplir ce champ.
Grace login Ce paramètre est spécifique à Novell eDirectory. Si ce paramètre a la valeur Oui, activez la prise en charge de l'authentification LDAP. Après l'expiration du mot de passe, l'utilisateur peut se connecter jusqu'à ce que le compteur gracelogin est 0.

Ainsi, à moins que vous ne disposiez d'un serveur Novell eDirectory et que vous souhaitiez autoriser le support de gracelogin, choisissez "Non" ici.

Attribut Grace login Ce paramètre n'est actuellement pas utilisé dans le code (et est spécifique à Novell eDirectory).

Vous n'avez donc pas besoin de remplir ce champ.

Permettre la création d'utilisateurs

Nom du champ Valeur à remplir
Créer des utilisateurs en externe Les nouveaux utilisateurs (anonymes) peuvent créer eux-mêmes des comptes utilisateurs sur le serveur LDAP externe et les confirmer par e-mail. Si vous activez cette option, n'oubliez pas de configurer également les options spécifiques aux modules pour la création d'utilisateurs et de remplir certaines instructions dans le champ auth_instructions du champ Administration du site > Plugins > Authentification > Gestion de l'authentification. Sinon, les nouveaux utilisateurs ne pourront pas créer eux-mêmes de nouveaux comptes.

Novell eDirectory et MS-AD peuvent créer des utilisateurs externes. Vous pouvez également créer des utilisateurs dans des serveurs compatibles RFC-2307.

Contexte pour les nouveaux utilisateurs Spécifiez le contexte dans lequel les utilisateurs sont créés. Ce contexte devrait être différent de celui des autres utilisateurs afin de prévenir les problèmes de sécurité.

Attribution des rôles système

Nom du champ Valeur à remplir
Mappage des rôles système Cette section liste tous les rôles qui peuvent être attribués dans le contexte Système, par défaut, il s'agira du "Contexte gestionnaire" et du "Contexte créateur de cours", mais peuvent être personnalisés dans la section Création de rôles personnalisés.

Pour affecter des utilisateurs LDAP à l'un des rôles, spécifiez le DN contenant tous les utilisateurs auxquels ce rôle doit être attribué au niveau système.

Ce DN est typiquement un posixGroup avec un attribut "memberUid" pour chaque utilisateur que vous voulez créer. Si votre groupe s'appelle créateurs, tapez ici cn=créateurs,ou=moodleusers,dc=my,dc=organization,dc=domain. Chaque attribut memberUid contient le CN d'un utilisateur autorisé à être créateur. N'utilisez pas le nom de domaine complet de l'utilisateur (par exemple, pas memberUid : cn=JoeTeacher,ou=moodleusers,dc-my,dc=organizations,dc=domain, mais plutôt memberUid : JoeTeacher).

Dans eDirectory, l'objectClass d'un groupe n'est pas (par défaut) "'posixGroup'" mais '"groupOfNames'" dont l'attribut membre est "'member'", pas "'memberUid'" et dont la valeur est le DN complet de l'utilisateur en question. Bien que vous puissiez probablement modifier le code de Moodle pour utiliser ce champ, une meilleure solution est d'ajouter un nouvel attribut objectClass de posixGroup à votre groupe de créateurs et de mettre les CN pour chaque créateur dans un attribut memberUid.

Dans MS Active Directory, vous devrez créer un groupe de sécurité dont vos créateurs feront partie, puis les ajouter tous. Si votre contexte ldap ci-dessus est "ou=staff,dc=my,dc=org" alors votre groupe devrait être "cn=creators,ou=staff,dc=my,dc=org". Si certains utilisateurs proviennent d'autres contextes et ont été ajoutés au même groupe de sécurité, vous devrez les ajouter comme contextes séparés après le premier en utilisant le même format.

Cette section remplace la section "Créateur de cours" de Moodle 3.3. Le processus de mise à niveau doit migrer tout DN spécifié vers la nouvelle approche.

User account syncronisation

Nom du champ Valeur à remplir
Utilisateur externe supprimé Spécifiez ce qu'il faut faire avec le compte utilisateur interne pendant la synchronisation de masse lorsque l'utilisateur a été supprimé de la source externe. Seuls les utilisateurs suspendus sont automatiquement réactivés s'ils réapparaissent en source externe.

NTLM SSO

Nom du champ Valeur à remplir
Activer Si vous voulez utiliser NTLM SSO (voir les détails à Authentification NTLM), choisissez Oui ici. Sinon, choisissez Non.
Subnet Spécifiez les sous-réseaux des clients qui utiliseront NTLM SSO (voir détails à Authentification NTLM).
MS IE Voie rapide ? Si tous vos clients (ou la plupart d'entre eux) utilisent MS Internet Explorer, vous pouvez définir cette option pour contourner certaines étapes de la connexion SSO et accélérer les temps de connexion. Ceci ne fonctionne qu'avec MS Internet Explorer, mais traite les autres navigateurs d'une manière raisonnable (ils sont automatiquement envoyés à la page de connexion simple).

Mappage de données

Nom du champ Valeur à remplir
Prénom Le nom de l'attribut qui contient le prénom de vos utilisateurs dans votre serveur LDAP. Il s'agit généralement de givenName ou displayName.

Ce réglage est optionnel

Nom de famille Le nom de l'attribut qui contient le nom de famille de vos utilisateurs dans votre serveur LDAP. C'est généralement "'sn"'.

Ce réglage est optionnel

Adresse de courriel Le nom de l'attribut qui contient l'adresse de courriel de vos utilisateurs dans votre serveur LDAP. C'est généralement mail.

Ce réglage est optionnel

Ville/village Le nom de l'attribut qui contient la ville de vos utilisateurs dans votre serveur LDAP. C'est généralement "l". (L minuscule) ou localityName (non valide dans MS-AD).

Ce réglage est optionnel

Pays Le nom de l'attribut qui contient le pays de vos utilisateurs dans votre serveur LDAP. C'est généralement c ou countryName (non valide dans MS-AD).

Ce réglage est optionnel

Langue preferredLanguage

Ce réglage est optionnel

Description description

Ce réglage est optionnel

Webpage Ce réglage est optionnel
ID Number

Ce réglage est optionnel

Institution

Ce réglage est optionnel

Département Le nom de l'attribut qui contient le nom du département de vos utilisateurs dans votre serveur LDAP. C'est généralement departmentNumber (pour posixAccount et peut-être eDirectory) ou department (pour MS-AD).

Ce réglage est optionnel

Téléphone 1 Le nom de l'attribut qui contient le numéro de téléphone de vos utilisateurs dans votre serveur LDAP. Il s'agit habituellement du numéro de téléphone.

Ce réglage est optionnel

Téléphone 2 Le nom de l'attribut qui contient un numéro de téléphone supplémentaire de vos utilisateurs dans votre serveur LDAP. Il peut s'agir de homePhone,mobile,pager,facsimileTelephoneNumber ou même d'autres.

Ce réglage est optionnel

Adresse Le nom de l'attribut qui contient l'adresse municipale de vos utilisateurs dans votre serveur LDAP. C'est généralement streetAddress ou street.

Ce réglage est optionnel

Champs de profil utilisateur personnalisé

Tous les champs de profil utilisateur créés dans Administration du site > Utilisateurs > Comptes > Champs de profil utilisateur devraient maintenant apparaître automatiquement à la fin de la liste des champs de mappage des données après le champ Adresse. Voir l'exemple : Fichier:.png.

Activation de la tâche de synchronisation des utilisateurs LDAP

Le travail de synchronisation des utilisateurs LDAP (\auth_ldap\task\sync_task) Tâche planifiée (nouveau dans Moodle 3.0 ; auparavant il y avait un script CLI, voir MDL-51824 pour plus d'informations) est responsable de créer et mettre à jour les informations utilisateur, suspendre et supprimer des comptes LDAP.

Après avoir activé l'authentification du serveur LDAP, un administrateur doit activer et configurer la tâche de synchronisation des utilisateurs LDAP comme suit :

  1. Allez dans Administration du site > Serveur > Tâches planifiées et cliquez sur l'icône d'équipement en face du travail de synchronisation des utilisateurs LDAP.
  2. Sélectionnez la fréquence d'exécution souhaitée et activez la tâche en décochant la case à cocher désactivée.
Avertissement ! Il est important de s'assurer que tous les paramètres LDAP fonctionnent correctement avant d'activer le travail de synchronisation des utilisateurs LDAP (ainsi que de sauvegarder votre base de données et vos dossiers de données moodledata), car une configuration LDAP incorrecte peut entraîner la suppression erronée des utilisateurs!

.

Si vous constatez que le script ne fonctionne pas correctement avec tous vos utilisateurs et que vous avez plus de 1000 utilisateurs dans chaque conteneur LDAP, c'est parce que, par défaut, certaines mémoires LDAP tels que MS AD ne renvoient que 1000 utilisateurs à la fois et les versions PHP antérieures à 5.4 ne prenaient pas en charge les résultats LDAP pagés. Si vous mettez à jour vers PHP 5.4 ou supérieur, Moodle obtiendra tous vos utilisateurs correctement. Si vous ne pouvez pas mettre à niveau vers PHP 5.4, vous pouvez suivre les instructions de http://support.microsoft.com/kb/315071 pour régler le paramètre Active Directory MaxPageSize à un nombre supérieur à votre nombre total d'utilisateurs (actuel et futur) pour le corriger. Il s'agit d'un cadre forestier.

Aide Active Directory

Active Directory est le service annuaire de Microsoft. Il est inclus dans Windows 2000 Server et les versions ultérieures de leur système d'exploitation. Pour plus d'informations sur les sujets ci-dessous, veuillez consulter cette page.

  • Avertissement: Le module PHP LDAP ne semble pas être présent
  • Le module LDAP ne peut connecter aucun serveur LDAP
  • Obtenir des NC corrects pour les contextes et les créateurs
  • Obtenir le bon user_attribute
  • Installation de l'outil serveur ldp.exe
  • Exemple de configuration Active Directory
  • Le Child Domain et le Global catalog dans MS Active Directory
  • Activation du Global Catalog
  • Active Directory avec Moodle 1.8
  • MS Active Directory + SSL

Scénarios avancés, Serveurs ou emplacements multiples

Pour les grandes installations avec plusieurs serveurs LDAP ou plusieurs emplacements (contextes) dans une arborescence LDAP.

Rendre votre connexion LDAP directory résiliente

  • Entrer plus d'un nom dans le champ ldap_host_url peut fournir une sorte de résilience à votre système. Utilisez simplement la syntaxe :
ldap://my.first.server; ldap://my.second.server; ...

Bien sûr, cela ne fonctionnera que si tous les serveurs partagent les mêmes informations d'annuaire, si vous utilisez eDirectory, vous devez vous assurer que vos serveurs ont la viabilité de toutes les partitions arborescentes pertinentes, ou si vous utilisez Active Directory, les serveurs contiennent les mêmes informations dont vous avez besoin par réplication, voir notes sur un environnement multi-domaines si cela est nécessaire.

Il y a un inconvénient dans l'implémentation de Moodle 1.5 - 1.6 de l'authentification LDAP : la fonction auth_ldap_connect() traite les serveurs séquentiellement, et non en mode round robin. Ainsi, si le serveur primaire tombe en panne, vous devrez attendre que la connexion soit terminée avant de passer au serveur suivant.

Voir aussi le forum de discussion : Utilisation de plusieurs serveurs LDAP, Nos étudiants sont sur un domaine séparé

Utilisation d'un environnement multi-domaines AD

  • Si vous exécutez Active Directory avec plusieurs domaines et que vous avez des utilisateurs dans plus d'un domaine, vous voudrez configurer Moodle pour qu'il regarde votre serveur Global Catalog. En particulier, le serveur Global Catalog de votre domaine de premier niveau. Voici un exemple simple de ce type de disposition d'Active Directory :
my.domain.ca (Root AD Domain)
| - dc1.my.domain.ca (Domain Controller)
| - dc2.my.domain.ca (Domain Controller)
|
| - - students.my.domain.ca (Sub AD Domain)
| - - - dc1.students.my.domain.ca (Domain Controller)
| - - - dc2.students.my.domain.ca (Domain Controller)
|
| - - faculty.my.domain.ca (Sub AD Domain)
| - - - dc1.faculty.my.domain.ca (Domain Controller)
| - - - dc2.faculty.my.domain.ca (Domain Controller)

Dans cet exemple, nous avons notre domaine de premier niveau (my.domain.ca) et deux sous-domaines. Un sous-domaine est pour les comptes des professeurs (faculty.my.domain.ca) et l'autre est pour les comptes des étudiants (students.my.domain.ca). Deux contrôleurs de domaine sont répertoriés sous chacun d'eux.

En utilisant l'exemple ci-dessus, vous voudrez utiliser ce qui suit pour accéder au Global Catalog sous SSL :

ldaps://my.domain.ca:3269/

Si vous préférez accéder à votre catalogue global par une connexion non-SSL, vous voudrez utiliser:

ldap://my.domain.ca:3268/

Nous avons trouvé que si vous ne configuriez pas les choses de cette façon, vous auriez des erreurs comme :

 [Thu May 26 15:23:53 2011] [error] [client 192.168.xxx.xxx] PHP Avertissement:  ldap_search() [<a href='function.ldap-search'>function.ldap-search</a>]: Recherche: Résultats partiels et signalements reçus en /xxx/xxx/moodle20/lib/ldaplib.php sur la ligne 241, référent : http://moodle.my.domain.ca/moodle20/login/index.php
 [Thu May 26 15:23:53 2011] [error] [client 192.168.xxx.xxx] PHP Avertissement :  ldap_first_entry(): n'est pas une ressource de résultat ldap valide dans le fichier /xxx/xxx/moodle20/lib/ldaplib.php sur la ligne 248, référent : http://moodle.my.domain.ca/moodle20/login/index.php

Utilisation de plusieurs emplacements utilisateurs (contextes) dans votre arbre LDAP

Il n'est pas nécessaire d'utiliser plusieurs emplacements utilisateurs si votre arborescence de répertoire est plate, c'est-à-dire si tous les comptes utilisateurs résident dans un conteneur ou=people,dc=my,dc=organization,dc=domain ou ou=people,o=myorg.

A l'inverse, si vous utilisez le mécanisme ACL pour déléguer la gestion des utilisateurs, il y a des chances que vos utilisateurs soient stockés dans des conteneurs tels que ou=students,ou=dept1,o=myorg' et ou=students,ou=dept2,o=myorg...

Alors il y a une alternative :

  • Regardez le niveau o=myorg avec l'attribut ldap_search_sub défini sur oui.
  • Définissez le contexte_ldap à ou=students,ou=dept1,o=myorg ; ou=students,ou=dept2,o=myorg.

Choisir entre ces deux solutions suppose une sorte de benchmarking, car le résultat dépend fortement de la structure de votre arborescence d'annuaires et de vos capacités d'indexation de logiciels LDAP. Notez simplement qu'il y a une probabilité dans des arborescences si profondes que deux utilisateurs partagent le même "nom commun" (cn), tout en ayant des "noms distinctifs" différents. Seule la deuxième solution aura alors un résultat déterministe (renvoyant toujours le même utilisateur).

Utilisation de LDAPS (LDAP sur SSL)

Activer LDAPS sur votre directory serveur

Activer LDAPS sur votre serveur Moodle

L'activation de LDAPS sur votre serveur peut s'avérer délicate et il est souvent difficile d'identifier les points faibles. Il y a aussi des différences entre Windows et Linux et même entre les différentes versions et distributions de Linux.

Si vous ne l'avez pas déjà fait, vous devrez décider de votre approche pour établir une connexion SSL à votre serveur d'annuaire :

  • Connexion SSL avec certificat auto-signé non vérifié.

Vous pouvez générer votre propre certificat SSL, puis demander à votre serveur Moodle d'ignorer qu'il n'est pas valide. Cette configuration n'est pas aussi sûre que les autres car vous ne pouvez pas être sûr que le serveur auquel vous vous connectez n'est pas faux.

  • Connexion SSL avec certificat auto-signé de confiance.

Vous pouvez générer votre propre certificat SSL sur votre directory serveur, puis faire spécifiquement confiance à ce certificat en l'installant sur votre serveur Moodle.

  • Connexion SSL avec certificat vérifié par une autorité de certification de confiance Internet (CA)

Dans cette approche, le serveur LDAP possède un certificat installé par une autorité de certification basée sur Internet, ce qui signifie que votre serveur d'annuaire aurait une adresse Internet et un nom d'hôte. Votre serveur Moodle doit faire confiance à l'autorité de certification et avoir un accès Internet. Cette approche n'est pas souvent utilisée car elle entraîne généralement un coût pour le certificat, et elle nécessite que votre serveur d'annuaire et votre serveur Moodle soient exposés à Internet.

Serveur Linux

Ces instructions servent à établir un lien à l'aide d'un certificat auto-signé de confiance.

Remarque: écrites pour un serveur Red Hat Enterprise Linux 6, les autres distributions Linux peuvent différer, notamment en ce qui concerne l'emplacement des certificats SSL et des fichiers de configuration OpenLdap, mais les principes fondamentaux sont les mêmes.

Pour vérifier que votre serveur d'annuaire est en ligne et accepte les connexions SSL sur votre port LDAPS (636), vous pouvez utiliser try :

openssl s_client –connect <ldap server ip address>:636

Obtenez le certificat de votre directory serveur (.crt) et téléchargez dans le directory certificats SSL du serveur Moodle, sur RHEL6 c'est au /etc/ssl/certs

Convertissez votre certificat "DER" X509 en certificat de clé publique "PEM".

openssl x509 -in my_server_certificate.cer -inform DER -out my_server_certificate.pem -outform PEM

Créer des hachages de certificats à l'aide de c_rehash

c_rehash

If c_rehash is not installed install with: yum install /usr/bin/c_rehash

Assurez-vous que vous pouvez accéder à votre serveur LDAPS par un nom DNS, cela peut signifier ajouter une entrée à votre fichier hôte (/etc/hosts).

<ldap server ip address>    my_server.mydomain.school

Vérifier votre certificat pour vérifier qu'il est correctement installé

openssl verify -verbose -CApath /etc/ssl/certs /etc/ssl/certs/my_server_certificate.pem
/etc/ssl/certs/my_server_certificate.pem: OK

Vous devriez maintenant pouvoir vous connecter à votre serveur LDAPS via SSL sans aucune erreur

openssl s_client –connect <ldap server DNS name>:636

Editez votre configuration OpenLDAP, sur RHEL6 elle se trouve à l'adresse suivante /etc/openldap/ldap.conf

# Définir l'emplacement d'un CA Cert
TLS_CACERT /etc/ssl/certs/my_server_certificate.pem
TLS_CACERTDIR /etc/ssl/certs

Enfin, vous pouvez ou non avoir besoin de redémarrer Apache, avant de configurer Moodle pour utiliser ldaps ://<server DNS name>

httpd -k restart

Serveurs Windows

Ces instructions servent à établir un lien à l'aide d'un certificat auto-signé non vérifié.

Vous pouvez indiquer à l'extension OpenLDAP de PHP de désactiver la vérification du certificat de serveur SSL pour ce faire, vous devez créer un répertoire appelé C:\OpenLDAP\sysconf\ Dans ce répertoire, créer un fichier appelé ldap.conf avec le contenu suivant :

TLS_REQCERT never

(Si vous utilisez certaines versions de PHP 5.3.x, vous devrez peut-être placer le fichier à d'autres emplacements, see PHP bug #48866)

Vous devriez maintenant pouvoir utiliser ldaps:// lors de la connexion à votre serveur LDAP.

Annexes

Définition des limites de ressources du serveur RedHat Directory

Les attributs opérationnels peuvent être définis pour le DN utilisateur de liaison à l'aide de la ligne de commande. On peut simplement utiliser ldapmodify pour ajouter les attributs suivants :

Nom de l'attribut Description
nsLookThroughLimit Indique le nombre de données examinées pour une opération de recherche. Le fait de donner à cet attribut une valeur de -1 indique qu'il n'y a pas de limite.
nsSizeLimit Spécifie le nombre maximum de données que le serveur renvoie à une application client en réponse à une opération de recherche. Le fait de donner à cet attribut une valeur de -1 indique qu'il n'y a pas de limite.
nsTimeLimit Spécifie le temps maximum que le serveur passe à traiter une opération de recherche. Le fait de donner à cet attribut une valeur de -1 indique qu'il n'y a pas de limite de temps.
nsIdleTimeout Indique le temps pendant lequel une connexion au serveur peut être inactive avant que la connexion ne soit interrompue. La valeur est donnée en secondes. Le fait de donner à cet attribut une valeur de -1 indique qu'il n'y a pas de limite.
 LDAP Console Command-Line

 ldapmodify -h redhat_dir_server -p 389 -D "cn=directory manager" -w secretpwd

 dn: uid=MoodleAdmin,ou=system,dc=myschool,dc=edu
 changetype: modify
 add:nsSizeLimit
 nsSizeLimit: 1000
 

D'autres questions ?

N'hésitez pas à poster sur le forum d'authentification sur moodle.org.

Voir aussi

Forum de discussions: