Cette page décrit les échanges entre Moodle et NetYpareo (Yparéo) réalisés par le plugin d'authentification auth_netypareo : qui appelle qui, avec quelle méthode, quelles requêtes sont émises et quelles données circulent dans chaque sens. Elle s'adresse aux responsables de la sécurité et de la conformité des organismes utilisateurs.
Les échanges se font dans trois contextes distincts :
| Contexte | Déclencheur | Sens | Données |
|---|---|---|---|
| Connexion unique (SSO) | L'utilisateur clique depuis NetYpareo | NetYpareo → navigateur → Moodle, puis Moodle → NetYpareo | Un jeton à usage de validation, puis identité de l'utilisateur |
| Synchronisation planifiée | Tâches planifiées Moodle, la nuit | Moodle → NetYpareo (requêtes de lecture) | Utilisateurs, sites, groupes, périodes, formations |
| Retour de documents | Génération d'un document dans Moodle | Moodle → NetYpareo (envoi) | Document PDF d'un apprenant |
Dans tous les cas Moodle est le client : le plugin n'ouvre aucun point d'entrée permettant à NetYpareo de lire ou d'écrire dans Moodle. Le seul élément reçu de NetYpareo est le jeton de connexion, transmis par le navigateur de l'utilisateur.
X-Auth-Token de chaque requête (réglage authwsresttoken). En SOAP, des identifiants de service (login et mot de passe) sont utilisés, distincts par service (authentification, utilisateurs, Pareo, GED).CURLOPT_SSL_VERIFYPEER à faux). Voir la section Points d'attention.token à l'URL de connexion de Moodle.GET {baseurl}/r/v1/authentification-jeton/utilisateur/{jeton}
En-tête : X-Auth-Token: <jeton de service>
idnumber, de la forme {instance}_{code NetYpareo}). Si le compte existe et n'est pas suspendu, la session est ouverte et l'utilisateur est redirigé vers l'accueil. Aucun compte n'est créé à cette étape : les comptes sont créés par la synchronisation planifiée.Les tâches planifiées interrogent NetYpareo en lecture seule. Horaires par défaut (modifiables dans l'administration Moodle) :
| Tâche | Horaire | Requêtes REST émises |
|---|---|---|
| Sites | 00h30 | GET /r/v1/sites |
| Caches de référentiels | 00h05 | statuts, situations, formations, diplômes, matières, secteurs d'activité, pays, périodes, entreprises (GET /r/v1/statuts, /situations, /formations, /diplomes-prepares, /matieres, /secteurs-activite, /pays, /periodes, /entreprises) |
| Formateurs (personnels) | 01h00 | GET /r/v1/utilisateur/personnels/{site} |
| Tuteurs et entreprises | 01h10 | GET /r/v1/entreprises |
| Apprenants | 01h20 | GET /r/v1/utilisateur/apprenants/{site} |
| Groupes | 02h30 | GET /r/v1/formation-longue/groupes (paramètres : périodes, sites) |
| Groupes de formation courte | 04h30 | GET /r/v1/formation-courte/{…}/groupes |
Les requêtes de détail sont également disponibles pour un apprenant, un groupe ou un personnel (/r/v1/apprenants/{code}, /r/v1/groupes/{code}, /r/v1.1/personnels/{code}, /r/v1/formation-longue/apprenants, /r/v1/groupes/{code}/apprenants, /r/v1/formation-courte/…/apprenants, /r/v1/apprenants/frequentes, /r/v1/document/apprenants/{code}/photo). À vérifier : lesquelles de ces fonctions sont effectivement appelées par les tâches de la version livrée.
Chaque tâche peut être désactivée par un réglage (syncstudents, syncteachers, synctutors, syncsites, syncgroups, syncpdgroups). Des filtres (version PRO) permettent de restreindre l'import aux sites, périodes ou groupes souhaités.
Correspondance par défaut pour un apprenant (champs NetYpareo → champs Moodle) :
| Donnée NetYpareo | Champ Moodle |
|---|---|
prenom / nom | Prénom / Nom |
email (ou adresse.email) | Adresse email |
login | Identifiant (préfixé du numéro d'instance) |
codeApprenant | Numéro d'identification (idnumber, préfixé du numéro d'instance) |
codeSite | Site de rattachement (champ de profil) |
compteExpireLe | Date d'expiration du compte |
adresse.ville, nomPays | Ville, pays |
nomEtabOrigine, departement | Institution, département |
tel1, tel2 | Téléphones |
estMajeur | Champ de profil « majorité » |
codeStatut, codeDiplome, codeFormation, codeAnnee | Champs de profil : statut, cursus, programme, année du programme |
Pour un formateur : prénom, nom, identifiant, email, code personnel, site de rattachement (nom et code). Pour un tuteur ou entreprise : prénom, nom, identifiant, email, code interlocuteur, nom de l'entreprise.
Pour les groupes : nom, site, année de formation, formateur référent, catégorie d'action, mode d'évaluation, modalités d'enseignement et d'entrée/sortie.
Les comptes ont pour méthode d'authentification netypareo. Les anciens comptes qui ne figurent plus dans NetYpareo peuvent être suspendus ou supprimés selon les réglages deleteoldusers, deleteoldsites et deleteoldcachedata.
À vérifier : la correspondance exacte des champs peut être adaptée par instance (version PRO) ; les tableaux ci-dessus sont ceux de la configuration par défaut.
Lorsque le réglage sendpdcertificates est actif et qu'un certificat est généré dans Moodle (module pdcertificate), le plugin envoie le document PDF dans le dossier GED de l'apprenant concerné :
POST {baseurl}/r/v1/document/apprenant/{codeApprenant}/document[/{répertoire}]
En-tête : X-Auth-Token: <jeton de service>
Corps JSON : contenu (base64), nomDocument, extension, mimeType, dateCreation
Les données importées sont stockées dans les tables standard de Moodle (user, user_info_data pour les champs de profil, cohortes et groupes) et dans les tables propres au plugin (instances, caches de référentiels : sites, statuts, situations, formations, diplômes). Les journaux de synchronisation sont écrits dans le répertoire de journaux configuré (logdir) ; leur contenu peut inclure des noms et identifiants d'utilisateurs.
Revenir à l'index du composant - Revenir à l'index des plugins - Revenir au catalogue