Intégration Moodle / Smartschool avec OAuth2

Intégration Moodle / Smartschool avec OAuth2

par Jean-Nicolas Gautier,
Nombre de réponses : 5

Smartschool est une plateforme propriétaire utilisée par de nombreuses écoles en Belgique.

Cette plateforme vise surtout la gestion d'aspects administratifs liés à des écoles réelles (les élèves sont physiquement présents en classe lors des heures de cours). Les possibilités de cours en ligne y sont très limitées et Moodle peut être envisagé comme un outil complémentaire à Smartschool et inversement.

Il est dés lors intéressant de voir comment mieux intégrer ces deux plateformes. Une des possibilités est de permettre aux élèves de s'identifier sur Moodle à l'aide de leurs identifiant Smartschool en utilisant oauth2.

La documentation de Smartschool est très pauvre, voici pour ceux que cela intéresserait la marche à suivre.

1) Demander les credentials oauth à Smartschool

  1. Se rendre sur la page de Smartschool consacrée à OAuth pour demander un "ID client" et un "Secret Client"
  2. Dans le formulaire de demande, pour le champ "Nom de l'école ou de l'organisation", mettre le nom de votre plateforme Moodle
  3. Dans le formulaire de demande, pour le champ "Redirect URL de votre application" mettre l'adresse "url du site Moodle + /admin/oauth2callback.php"

2) Configurer le service sur la plateforme Moodle

  1. Sur votre plateforme Moodle, aller dans [Administration => Serveur => Service OAuth2] et créer un nouveau service OAuth avec le bouton "Créer un service personnalisé".
  2. Paramétrez le nouveau service comme suit :
Dans la configuration des points des terminaison, vous devez créer les points avec les valeurs suivantes:
Nom URL
token_endpointhttps://oauth.smartschool.be/OAuth/index/token
authorization_endpointhttps://smartschool.be/OAuth
userinfo_endpointhttps://oauth.smartschool.be/Api/V1/fulluserinfo?access_token=

 Dans "Correspondances de champs utilisateur pour le fournisseur Smartschool", vous indiquez les correspondance suivantes:
Nom du champ externe Nom du champ interne
location city
countrycountry
email email
namefirstname
surnamelastname
homephonephone1
mobilephonephone2
usernameusername

 

Le service oauth est maintenant configuré.


Moyenne des évaluations Utile (3)
En réponse à Jean-Nicolas Gautier

Re: Intégration Moodle / Smartschool avec OAuth2

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Merci Jean-Nicolas pour ce retour "Utile" qui pourrait guider d'autres personnes dans ce cas de figure.

On pourrait sans doute même y trouver des repères pour d'autres interconnexions via OAuth2 ! clin d’œil

En réponse à Jean-Nicolas Gautier

Re: Intégration Moodle / Smartschool avec OAuth2

par sophie delbovier-dispa,

Le sujet m'intéresse. Pouvez-vous me dire si votre établissement continue de complémenter ainsi Smartschool avec Moodle ? J'administre un site Moodle depuis 2 ans.  L'intégration dans  Smartschool pourrait donc permettre à l'équipe qui a déjà beaucoup travaillé sur Moodle de poursuivre ainsi pour le volet pédagogique tout en bénéficiant des autres services Smartschool ? 

J'imagine aussi que pour certains le volet pédagogique smartschool suffit tandis que pour d'autres (en particulier dans le domaine qui me concerne les maths), Moodle et ses plugin geogebra est indéniablement un plus,  comme je l'expérimente avec bonheur depuis 2 ans!

Au sujet des inscriptions en cohorte, les indications du fichier csv requis sur Moodle seraient celles de Smartschool : identifiant, mot de passe, etc ? De sorte que la connexion se fasse via les mêmes données par simplicité. 

Le transfert serait automatique via la procédure que vous décrivez ci-dessus, si je comprends bien, ou ferait l'objet d'une entente entre les équipes ?

Je me permets de m'adresser à vous car le responsable Smartschool contacté par téléphone m'a renvoyé vers ce forum et vers vous en particulier qui avez expérimenté cette intégration.

 Un tout grand merci d'avance pour toute réponse. 

En réponse à sophie delbovier-dispa

Re: Intégration Moodle / Smartschool avec OAuth2

par Jean-Nicolas Gautier,
Bonjour,

La connexion à Moodle via le service protocole Oauth2 fonctionne toujours mais depuis une des dernières mise à jour de Moodle, la connexion via un service Oauth2 autre que Google ou Facebook exige que l’adresse courriel soit vérifiée et j’ai fait face à un dilemme.

Dans mon établissement, un nombre conséquent d’élève indiquent une mauvaise adresse couriel dans leur profil smartschool et ils ne reçoivent jamais le mail permettant de valider leur compte. De plus, la version actuelle de Moodle (3.8.2) est boguée : une fois le couriel de validation envoyé, les étudiants n’ont pas la possibilité de demander un nouvel envoi s’ils n’ont pas reçu le premier message. Un rapport de bug existe à ce sujet (https://tracker.moodle.org/browse/MDL-66715).

Pendant un temps, j’ai travaillé avec le plugin, Oauth2 token unlink event (https://moodle.org/plugins/tool_untoken_oauth2). Lorsque les élèves n’ont pas d’adresse mail valide dans leur profil, il faut :
  • annuler le token de leur première demande avec unlink_token
  • leur demander de mettre une adresse valide dans leur profil smartschool
  • leur demander de refaire leur inscription.

Pour les élèves peu à l’aise avec ce type de procédure cela peut devenir compliqué et très chronophage pour l’administrateur Moodle.

J’ai donc changé mon fusil d’épaule et j’ai désactivé la vérification de l’adresse couriel. Cela n’est pas possible directement depuis Moodle, il faut le faire directement dans la base de donnée :
  • trouver la table « mdl_oauth2_issuer »
  • mettre la valeur 0 dans le champ « requireconfirmation »

L’avantage de cette méthode est que la connexion à Moodle depuis Smartschool est d’un simplicité enfantine, le problème est que les élèves qui n’ont pas d’adresse mail valide ne reçoivent pas les messages en provenance de Moodle.

JN Gautier
En réponse à sophie delbovier-dispa

Re: Intégration Moodle / Smartschool avec OAuth2

par Jean-Nicolas Gautier,
Pour l'inscription des élèves, je ne travaille pas avec les cohortes, tous les cours sont en auto-inscription et les élèves se placent eux-mêmes dans les cours qui les concernent. c'est sans doute la méthode qui demande le moins de travail.
Toutefois, si vous disposez d'un accès à l'API de smartschool, j'ai écris un script python qui permet de créer des cohortes à partir des données de smartschool.
En réponse à Jean-Nicolas Gautier

Re: Intégration Moodle / Smartschool avec OAuth2

par Jean-Nicolas Gautier,
Voici une petite mise à jour des valeurs qui peuvent être placées dans les correspondances de champs utilisateurs.
Attention, elles sont sensibles à la casse.
La pertinence de l'intégration des valeurs comme les numéros de téléphone doit être envisagée au regard du RGPD.


Correspondances de champs utilisateurs
Smartschool
Moodle
country
country
email
email
name
firstname
internalnumber
idnumber    
surname
lastname
homePhone
phone1    
mobilePhone
phone2    
username
username
location
city