3.1.x - LDAP

3.1.x - LDAP

par Jérémie Pilette,
Nombre de réponses : 16

Bonjour,

après plusieurs recherche sur le net, je ne trouve pas ce que je souhaite savoir.

Je suis sur la mise en place d'un LDAP a configurer avec un moodle 3.1.x.

Voici mes interrogations :

  1. Pour l'appariement des champs Moodle/LDAP, je ne vois pas les champs "Nom d'utilisateur" et "mot de passe" cela signifie-t-il que le nom d'utilisateur de Moodle sera basé sur l'attribut "uid" du LDAP ? Peut-on synchroniser le nom d'utilisateur avec l'attribut "supannAliasLogin". Pour le mot de passe, s'agit-il systématiquement de l'attribut "userPassword" du schéma "inetOrgPerson" ?
  2. Pour la synchronisation, faut-il syncrhoniser les utilisateur provenant du LDAP avant que l'utilisateur puisse se connecter ? ou le fait que l'utilisateur se connecte, Moodle va se connecter au LDAP pour créer le copte sur Moodle à la première connexion ?
  3. Quel attribut faut-il utiliser dans le LDAP pour la synchronisation avec la cohorte de Moodle? Comment cela se configure-t-il sur le Moodle?

En vous remerciant pour vos éclaircissements.

Jérémie

Moyenne des évaluations  -
En réponse à Jérémie Pilette

Re: 3.1.x - LDAP

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

Bonjour,

1) La configuration de l'appariement LDAP se trouve dans
Administration du site => Plugins => Authentification => Serveur LDAP (après avoir activer l'authentification LDAP)

L'attribut utilisé comme identifiant dépend du type d'utilisateur choisi (Configuration de la consultation des utilisateurs => type d'utilisateur)
Chaque type dispose d'un attribut identifiant par défaut.
Exemple, si vous spécifiez rfc2307 ou rfc2307-bis ce sera l'uid

Si vous voulez un attribut spécifique, il faut le mettre dans le champ attribut utilisateur (je l'ai fait sur notre config, notre attribut pour l'identification est eduPersonPrincipalName par exemple)

2) La création des comptes est automatique à partir du moment ou l'authentification est correcte. Si un utilisateur n'existe pas, qu'il se connecte avec ses identifiants  LDAP, le compte est créé avec les données d'appariement spécifiées dans la partie Appariement des données

3) Pour les cohortes , nous utilisons le plugin LDAP, qui ajoute une tache programmée "Synchronize cohorts from LDAP attributes"
Ceci nous permet de créer automatiquement les cohortes en fonctions de nos groupes LDAP

Tout ceci pour une version 3.1.2 de Moodle, il peut y avoir des différences selon votre version de Moodle


Moyenne des évaluations Utile (2)
En réponse à Bruno Malaval

Re: 3.1.x - LDAP

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour,

Je me permet juste d'ajouter, concernant la création des comptes, qu'il existe une option pour que les comptes ne soient pas créés s'ils n'existent pas déjà dans le Moodle.

Séverin

Moyenne des évaluations Utile (1)
En réponse à Séverin Terrier

Re: 3.1.x - LDAP

par Jérémie Pilette,

Bonjour,

merci pour vos contributions.

Cela m'éclaire davantage.

Je continue dans mon installe.

Jérémie

En réponse à Jérémie Pilette

Re: 3.1.x - LDAP

par Jérémie Pilette,

Bonjour,

je reviens vers vous concernant mon installation LDAP.

J'ai installé OpenLDAP, et ajouté un utilisateur.

Je suis allé configurer Moodle pour une connexion de cet utilisateur via le LDAP.

Aucun résultat.

Aucune connexion TLS/SSL pour le moment.

Mot de passe en clair.

Voici une copie d'écran de mon serveur de test.

Qu'ai-je oublié?

En vous remerciant,

Jérémie

Annexe moodle-ldap-config.png
En réponse à Jérémie Pilette

Re: 3.1.x - LDAP

par Daniel Hazebroucq,

Bonjour,

Je ne suis pas un pro du LDAP mais...

Une 1ére piste, l'url serveur ne devrait elle pas être avec le nom DNS plutôt que l'IP, ici localhost?

Daniel

En réponse à Daniel Hazebroucq

Re: 3.1.x - LDAP

par Jérémie Pilette,

Bonjour Daniel merci pour ta contribution.

J'ai testé cela ne change rien.

Je viens de tester la connexion à l'annuaire avec un client thunderbird. Je n'ai aucun résultat non plus.

Je suppose que le problème doit provenir de la configuration du serveur LDAP.

Voila ma configuration de mon fichier ldap.conf (Debian/OpenLDAP).

Si quelqu'un voit un oubli ?

ldap_version 3
URI ldap://127.0.0.1:389
#SIZELIMIT 0
#TIMELIMIT 0
#DEREF never
BASE dc=ifrass,dc=fr

en vous remerciant,

Jérémie

En réponse à Jérémie Pilette

Re: 3.1.x - LDAP

par Jérémie Pilette,

Bonjour,

je poursuis mon installation openLDAP et effectue des tests.

J'ai réussi à me connecter sur Moodle grâce au LDAP mais avec un mot de passe en clair.

Lorsque je fais la même chose avec un mot de passe haché SSHA, la connexion ne marche plus.

Une idée ?

En vous remerciant,

Jérémie

En réponse à Jérémie Pilette

Re: 3.1.x - LDAP

par Jérémie Pilette,

Bonjour,

nous venons de constater que si le mot de passe est écrit directement haché, l'utilisateur peut s'authentifier.

Or il n'est pas possible pour chaque utilisateur de mémoriser son mot de passe haché en SSHA, et ce n'est pas le but.

Apparemment même si l'option SSHA est sélectionné dans la configuration de l'authentification LDAP, Moodle n'envoie pas le mot de passe haché au LDAP (openLDAP)

Auriez-vous une idée?

Peut-être est-ce que j'oublie quelque chose ?

Merci,

Jérémie

En réponse à Bruno Malaval

Re: 3.1.x - LDAP

par Jérémie Pilette,

Bonjour Bruno,

je suis en train de finaliser ma configuration. Serveur LDAP + serveur CAS.

Il me reste à voir la synchronisation des groupes LDAP en cohorte dans Moodle.

Dans ton message tu parles d'un plugin.

J'en ai deux, je ne sais pas lequel est-ce ?

https://moodle.org/plugins/auth_ldap_syncplus

https://moodle.org/plugins/local_ldap

Il me semble qu'il s'agit du second (local_ldap)

En te remerciant,

Jérémie

En réponse à Jérémie Pilette

Re: 3.1.x - LDAP

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

Bonjour Jérémie,

Il s'agit bien du 2ème (local_ldap)

Il y a 2 modes de synchronisation, soit sur des groupes LDAP, soit sur un attribut utilisateur définissant l'appartenance à un groupe

Les cohortes peuvent être créées automatiquement, mais pas supprimée, même si le groupe disparaît de LDAP.
Il faut le gérer à la main.

Un autre petit problème peut venir de la conception de vos groupes.
De mon coté, j'ai du adapter le plugin au niveau de la requête LDAP.

Nos groupes d'étudiants sont des groupes LDAP, mais la liste des membres est l'uid de l'utilisateur et non son identifiant (au sens Moodle). Donc impossible de récupérer les groupes tels quels.

J'ai donc du modifier quelque peu la requête LDAP, de façon à faire une double requête.
Ceci me permet  de récupérer l'identifiant à partir de l'uid

Il faudrait que je me penche sur cette question, afin de proposer une amélioration du plugin.

Ce principe de double requête est utilisé dans d'autres plateforme ( groupe LDAP => liste d'uids => liste d'identifiants ).
Ce serait bien de pouvoir l'intégrer dans ce plugin, au vu de mon petit hack, cela ne doit pas être énorme comme changement.

Bruno

En réponse à Bruno Malaval

Re: 3.1.x - LDAP

par Jérémie Pilette,

Merci de ta réponse Bruno.

Ce plugin a donc besoin, si j'ai bien compris, de l'identifiant (nom d'utilisateur) pour pouvoir associer les utilisateurs à leur cohorte respective.

(sachant que les cohortes correspondent aux "cn" de l'ou=groups, et les membres (attribut member) sont les uid.

Je suis dans la même situation.

Le DIT de notre LDAP est conçu pour respecter la norme supann (universités).

Peut-être pourrais je bénéficier de ta modification ? Cela me ferait gagner du temps.

Et A quelle moment se lance le script? est-ce à la première connexion de l'utilisateur? A chaque connexion ? faut-il lancé le script manuellement?

Initialement les utilisateurs ne sont pas dans Moodle, ils sont dans le LDAP et la synchro des attributs LDAP s'effectue au moins à la première connexion de l'étudiant.

En te remerciant,

Jérémie

En réponse à Jérémie Pilette

Re: 3.1.x - LDAP

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

Désolé, j'ai confondu avec une autre application ... mea culpa

Nous avons aussi la norme supann et pas de double requête à faire.

Il faut par contre bien renseigner le paramètre : real_user_class, avec l'attribut qui sert d'identifiant.
De mon coté sans majuscules pour l'attribut.

Mais j'ai quand même 2 changements dans le fichier locallib.php :

  1. Sélection des groupes : Nous avons différents types de groupe, tous ne forment pas des cohortes
    Ligne 120 :
    $filter = "(&(" . $this->config->group_attribute . "=*)(objectclass=" . $this->config->group_class . "))";
    remplacée par
    $filter = "(&(" . $this->config->group_attribute . "=*)(objectclass=" . $this->config->group_class . ")(|(uhaGroupeType=IV)(uhaGroupeType=ID)))";

    Ceci permet de ne sélectionner que certains groupes ( types internes IV et ID)

  2. Description. Par défaut la description est identique au nom du groupe. Nous voulions une description plus parlante, attribut description pour nous
    ligne 625:
    $cohort->description = get_string('cohort_synchronized_with_group', 'local_ldap', $groupname);
    remplacée par
    $ldapconnection2 = $this->ldap_connect();
    $filter = "(uhaGroupeMail=".$groupname.")";
    $ldap_result = ldap_list($ldapconnection2, "ou=groups,dc=uha,dc=fr", $filter, array ("description"));
    $cohort_desc = ldap_get_entries($ldapconnection2, $ldap_result);
    $cohort->description = $cohort_desc[0]['description'][0] ;
    $this->ldap_close($ldapconnection2);

    Globalement, je vais chercher l'attribut description du groupe pour avoir une description plus parlante qu'un code étape.
Voilà, si cela peut servir ..

Bruno
En réponse à Bruno Malaval

Re: 3.1.x - LDAP

par Jérémie Pilette,

Bonjour Bruno,

merci pour ces informations, donc finalement pas de modifications à faire (sauf si on souhaite insérer un filtre LDAP spécial comme tu l'as précisé.

J'ai installé le plugin.

J'ai synchronisé mes utilisateurs via "tâches programmées" avec le CAS qui lui est lié au LDAP. Parfait.

Puis je lance la tâche programmées de LDAP sync script, mais la pas de résultats.

Voici ma conf en pièce jointe.

Ai-je oublé quelque chose?

Merci beaucoup,

Jérémie

Annexe ldap_sync_script-conf_moodle.png
En réponse à Jérémie Pilette

Re: 3.1.x - LDAP

par Jérémie Pilette,

En fait je ne comprends pas bien ce qu'il faut mettre à "Real user class".

Est-ce la classe qui contient l'attribut LDAP correspondant à l'utilisateur c'est à dire "supannPerson" dans mon cas ou est-ce l'attribut LDAP correspondant au nom d'utilisateur (qui sert de login pour Moodle) c'est à dire supannAliasLogin dans mon cas ?

Merci,

Jérémie

En réponse à Jérémie Pilette

Re: 3.1.x - LDAP

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

Bonjour Jérémie,

C'est bien supannAliasLogin,

par contre de mon coté j'ai du le mettre en minuscule, donc essaie avec supannaliaslogin