Attention : vous consultez actuellement la documentation dédiée aux versions 1.x de Moodle. La documentation pour les versions 2.x de Moodle est consultable ici : Inscription par LDAP, celle pour les versions 3.x de Moodle est consultable ici : Inscription par LDAP et celle pour Moodle 4.x est consultable là : Inscription par LDAP.

Inscription par LDAP

De MoodleDocs
(Redirigé depuis enrol/ldap)
Aller à :navigation, rechercher

Cette page explique comment paramétrer l'inscription par LDAP (Lightweight Directory Access Protocol) dans Moodle. L'inscription par LDAP fonctionne mieux dans Moodle lorsqu'elle est utilisée conjointement avec l'authentification LDAP, nous partirons ainsi du principe que vous avez déjà paramétré Moodle pour une authentification LDAP.


Inscription par LDAP - Fonctionnement

Pré-requis

  1. Vous utilisez une version récente de Moodle. Nous avons testé ici les paramétrages sur les versions 1.5.2+ et 1.6. Il est très vraisemblable que cela fonctionne également avec Moodle 1.4.5.
  2. Vous utilisez l'authentification LDAP comme méthode d'authentification principale.
  3. Chaque utilisateur possède un attribut uid dans son enregistrement LDAP, qui correspond à l'ID dans le même profil utilisateur de Moodle (vous pouvez facilement organiser cela en établissant une liaison sur la page de paramétrage d'authentification LDAP de Moodle).

Paramétrage du cours

Notre paramétrage implique la définition suivante des cours et utilisateurs :

  • Deux cours, Math101 et Eng201.
  • Deux enseignants, EnseignantA et EnseignantB.
  • Trois étudiants, EtudiantD, EtudiantE, et EtudiantF.
  • Les Etudiants D et E sont inscrits comme étudiants dans Math101, et l'Enseignant A est inscrit comme enseignant de Math101. Les Etudiants E et F sont inscrits comme étudiants dans Eng201, et les Enseignants A et B sont tous deux inscrits comme enseignants de Eng201.

Le paramétrage du conteneur LDAP

  1. Définissez 2 conteneurs LDAP ou=StudentEnrollment et ou=TeacherEnrollment.
  2. Pour chaque cours, nous définissons une entrée de groupe (par exemple, l'entrée posixGroup) dans les conteneurs StudentEnrollment et TeacherEnrollment. Ainsi, nous définissons un Math101 posixGroup dans StudentEnrollment, et un Math101 posixGroup dans TeacherEnrollment. Nous définissons les deux groupes Eng201 de la même manière.
  3. Inscrivez les étudiants et les enseignants comme membres des groupes LDAP que nous venons de définir. Pour cela, entrez l'attribut uid des utilisateurs dans l'attribut memberUid du groupe s'y afférant :
    • L'enseignant A est membre du groupe Math101 dans TeacherEnrollment.
    • Les étudiants D et E sont membres du groupe Math101 dans StudentEnrollment.
    • Les enseignants A et B sont membres du groupe Eng201 dans TeacherEnrollment.
    • Les étudiants E et F sont membres du groupe Eng201 dans StudentEnrollment.

Configuration de l'inscription LDAP dans Moodle

Les paramétrages de l'inscription LDAP dans Moodle correspondant à ceux mentionnés ci-dessus sont les suivants :

Variable de l'inscription LDAP : Valeur :
enrol_ldap_student_contexts: ou=StudentEnrollment,dc=ldapserver,dc=tmcc,dc=edu
enrol_ldap_student_memberattribute: memberUid
enrol_ldap_teacher_contexts: ou=TeacherEnrollment,dc=ldapserver,dc=tmcc,dc=edu
enrol_ldap_teacher_memberattribute: memberUid
enrol_ldap_objectclass: posixGroup
enrol_ldap_course_idnumber: cn
enrol_ldap_course_shortname: cn
enrol_ldap_course_fullname: cn
enrol_ldap_autocreate: Yes

En outre, puisque vous utilisez l'authentification LDAP, vous devez également établir un lien entre le "IDnumber" des utilisateurs de Moodle et l'"uid" dans l'entrée LDAP de l'utilisateur. Cette opération s'effectue sur la page d'authentification LDAP de Moodle (pas sur la page d'Inscription par LDAP).

Notes :

  1. Il n'est pas nécessaire de créer les cours manuellement dans Moodle. S'ils n'existent pas, ils seront créés lors de la connexion du premier utilisateur inscrit.
  2. Nous utilisons la même chaîne cn et uid dans un enregistrement LDAP utilisateurs. Je ne pense pas que cela soit nécessaire. Cependant, si vous utilisez des valeurs différentes, il vous faudra faire correspondre l'attribut "ldap_user_attribute" à l'uid dans le paramétrage d'authentification du LDAP.
  3. La valeur de "gidNumber" (Id du groupe), définie pour les groupes lors de la 2ème étape du paramétrage du conteneur LDAP, n'est pas cruciale. Nous ne l'utilisons pas ici.
  4. Le fichier attaché .ldif suppose que les utilisateurs se trouvent dans le conteneur ou=People du LDAP. Il vous faudra configurer votre paramètre d'authentification par LDAP pour la répercussion (variable ldap_contexts).
  5. Les mots de passe utilisateur pour ce paramétrage sont définis dans le fichier attaché .ldif.
  6. Si vous utilisez le fichier attaché .ldif, vous n'aurez pas à éditer les informations du serveur LDAP (les lignes "dn").


Particularité et astuces pour un LDAP sur Windows server 2003

Ceci est un résumé de ce que j'ai flâné sur les forums de discussion de Moodle.

Je n'ai pas testé sur Moodle 1.9 si des modifications ont étés apportées. Si c'est le cas, merci de nous en faire parti ici même.


Si votre LDAP est hébergé sur un serveur Windows 2003, les options conseillées dans les différentes aides ne fonctionnent pas. Il faut même dans certains cas modifier légèrement le code de Moodle pour faire fonctionner l'auto inscription.

Pourquoi ?

Parce que contrairement à ce qui est indiqué dans les différentes aides, dans le profil utilisateur, le numéro d'identification (IDnumber de l'utilisateur) ne pourra pas être du type cn ou uid, mais devra être en fait le distinguishedName de l'utilisateur. Le problème est que ce distinguishedName est souvent plus grand que 64 caractères, et dans ce cas, il faudra modifier votre Moodle. Par contre, si vous êtes sûr que tous vos distinguishedName sont <= à 64 caractères, les réglages suivants fonctionneront.

Réglages pour utiliser un LDAP Win 2003

Il faut utiliser :

  • group à la place de posixGroup
  • member à la place de memberUi
  • intégrer automatiquement et à chaque connexion le distinguishedName comme idnumber de l'utilisateur

Astuce : vous pouvez créer des groupes ayant le même nom sous l'AD, à condition de leurs donner un nom différent pour les versions pré-Windows 2000 (ce que l'on appelle le saMAccountName).

Modifications si le distinguishedName est plus grand que 64 caractères

Si vos distinguishedName dépassent les 64 caractères (chose quand même courante), il vous faut faire 2 modifications :

  • Il faut modifier dans la base de données, dans la table mdl_user le champ idnumber qui est paramétré en varchar(64), et le passer en varchar(255) pour accepter plus de caractères. Vous pouvez utiliser la commande suivante : ALTER TABLE mdl_user CHANGE COLUMN idnumber idnumber VARCHAR(255);
  • Il faut modifier dans le fichier moodle/lib/moodlelib.php la fonction truncate_userinfo($info) et remplacer 'idnumber' => 64, par 'idnumber' => 255,

Explication : la première modification autorise la base de donnée à conserver des idnumber jusqu'à 255 caractères, la deuxième modification permet à Moodle de ne pas couper à 64 caractères cet idnumber, mais lui autorise à passer à la base de données jusqu'à 255 caractères pour ce champ, ce qui devrait être suffisant.

Voir aussi