API Supplémentaire pour la lecture LDAP

Synchronisation LDAP totale pour les ENTs

Cette documentation donne quelques détails sur les librairies additionnelles de lecture des entités LDAP par le biais de la configuration du synchroniseur ENT. Le synchroniseur apporte des librairies additionnelles spécifiques pour la lecture de données LDAP correspondant à chaque entité synchronisée. La construction des librairies est fortement inspirée sur la librairie standard /lib/ldaplib.php et peut s'y appuyer le cas échéant.

La documentation suivante permettra à des développeurs d'invoquer directement les API de lecture, plutôt que de redévelopper leurs propres connecteur.

Préalables

Obtenir une connexion LDAP

Toute manoeuvre de l'API suppose de disposer préalablement d'une connexion ouverte sur le LDAP avec un utilisateur de lecture. La définition de la connexion LDAP utilisée est celle du module auth/ldap, même si celui-ci n'est pas utilisé ou activé dans moodle.

Le code suivant permet d'obtenir une instance de connexion ouverte :

// Get ldap params from real ldap plugin. $ldapauth = get_auth_plugin('ldap'); $ldapconnection = $ldapauth->ldap_connect();

A la fin de la session il est recommandé de clôturer le lien LDAP :

$ldapauth->ldap_close(true);

Entité cours

Obtention d'un DN de cours

En supposant que les cours sont enregistrés comme des groupes LDAP, ils disposent dans l'annuaire d'un DN unique, complètement qualifié. La correspondance entre moodle et le LDAP s'effectue par le rapprochement du numéro d'identification du cours (moodle) avec l'attribut d'identifiant de cours configuré dans le synchroniseur ENT (côté ldap)

Position : /local/ent_installer/ldap/ldaplib_courses.php

Fonction : local_ent_installer_find_course_dn($ldapconnection, $extcoursedn)

Paramètres :

$ldapconnection : Une connection ldap ouverte.

$extcoursedn : L'identifiant de jointure entre moodle et LDAP (le numéro d'identification du cours)

Préformatage de l'identifiant de cours

Il peut arriver dans certains cas que la forme de l'identifiant de jointure de cours ne soit pas la même entre le LDAP et moodle (suffixes ou préfixes ou autre transformation). Il peut donc être nécessaire de convertir le numéro d'identification connu de moodle vers sa forme LDAP.

Le synchroniseur d'ENT LDAP dispose de paramètres pour faire cette conversion :

Le paramètre de confguration 'course_id_pattern' définit un motif à remplacement paramétrable pour préformer l'identifiant à partir de la valeur moodle du numéro d'identification interne du cours (%CID%) et éventuellement d'un numéro d'établissement pour les annuaires multi-tenants (%ID%).

$config = get_config('local_ent_installer');
$courseldapidentifier = $config->course_id_pattern;
$courseldapidentifier = str_replace('%CID%', $COURSE->idnumber, $courseldapidentifier);
$courseldapidentifier = str_replace('%ID%', $config->institution_id, $courseldapidentifier);

Synopsys :

on récupère la configuration du synchroniseur

on charge le pattern à remplacement

on injecte la valeur de l'IDNumber local

on injecte la valeur de l'identifiant d'établissement (optionnel)

$courseldapidentifier est l'identifiant de cours transposé LDAP.

Obtention d'une description LDAP du cours

Position:

Fonction1 : local_ent_installer_get_courseinfo($ldapauth, $courseidentifier, $extracourseattributes, $options)

Paramètres :

$ldapauth : Une instance de plugin d'authenfication LDAP amorcée.

$courseidentifier : L'identifiant de jointure entre moodle et LDAP (le numéro d'identification du cours)

$extracourseattributes : un tableau associatif donnant les paires 'attribut de cours' ⇒ 'attribut ldap' à ajouter à l'ensemble d'atributs par défaut2 (ATTENTION !! Tous les noms d'attributs LDAP doivent être minusculisés).

Note 2 : Fonction alternative : local_ent_installer_get_courseinfo_asobj, même signature, pour recevoir la description de cours comme objet et non comme tableau.

Note 2 : La récupération d'une entité cours récupère par défaut les attributs suivants :

$courseattributes = array( 'fullname' => core_text::strtolower($config->course_fullname_attribute), 'shortname' => core_text::strtolower($config->course_shortname_attribute), 'summary' => core_text::strtolower($config->course_summary_attribute), 'idnumber' => core_text::strtolower($config->course_idnumber_attribute), 'category' => core_text::strtolower($config->course_category_attribute), 'teachers' => core_text::strtolower($config->course_teachers_attribute), );

Les attributs par défaut sont mappés par la configuration du synchroniseur ENT.

Revenir à l'index du guide technique - Revenir à l'index du composant - Retour à l'index des plugins - Revenir au catalogue