75 lines
3.2 KiB
Markdown
75 lines
3.2 KiB
Markdown
|
|
# Runbook — Moodle LTI 1.3
|
||
|
|
|
||
|
|
6ᵉ façon de rejoindre une classe (V2, CLAUDE.md section 6) : un élève
|
||
|
|
clique sur l'activité Moodle, atterrit connecté sur son tableau de bord
|
||
|
|
Syllabus habituel. Détail des choix :
|
||
|
|
[ADR 0010](../adr/0010-lti-moodle-comme-sixieme-facon-de-rejoindre.md).
|
||
|
|
|
||
|
|
## Étape 1 — Côté Moodle : ajouter Syllabus comme outil externe
|
||
|
|
|
||
|
|
Administration du site → Plugins → Outils externes → Gérer les outils →
|
||
|
|
Configurer un outil manuellement. Renseigner :
|
||
|
|
|
||
|
|
| Champ Moodle | Valeur |
|
||
|
|
|---|---|
|
||
|
|
| URL de l'outil | `https://syllabuslab.fr/lti/lancement/<code de la classe>` (visible sur la page de la classe, section « Lier à Moodle ») |
|
||
|
|
| LTI version | 1.3 |
|
||
|
|
| Initiate login URL | `https://syllabuslab.fr/lti/connexion` |
|
||
|
|
| Redirection URIs | la même URL de lancement que ci-dessus |
|
||
|
|
| Public key type | Clé publique au format JWKS |
|
||
|
|
| Jeu de clés publiques (URL) | `https://syllabuslab.fr/lti/cles.json` |
|
||
|
|
|
||
|
|
Après enregistrement, Moodle **affiche** un « Platform ID », un
|
||
|
|
« Client ID », une « Public keyset URL », une « Access token URL » et une
|
||
|
|
« Authentication request URL » — ce sont ces valeurs-là (celles de
|
||
|
|
Moodle, pas les nôtres) qu'il faut passer à l'étape 2.
|
||
|
|
|
||
|
|
## Étape 2 — Côté serveur : enregistrer la plateforme
|
||
|
|
|
||
|
|
```
|
||
|
|
ssh paillasse
|
||
|
|
cd /var/www/portail
|
||
|
|
sudo -u www-data HOME=/tmp php8.3 artisan lti:enregistrer-plateforme \
|
||
|
|
"<Platform ID affiché par Moodle>" \
|
||
|
|
"<Client ID affiché par Moodle>" \
|
||
|
|
"<Public keyset URL affichée par Moodle>" \
|
||
|
|
"<Access token URL affichée par Moodle>" \
|
||
|
|
"<Authentication request URL affichée par Moodle>"
|
||
|
|
```
|
||
|
|
|
||
|
|
La commande génère et stocke une paire de clés RSA pour le portail (jamais
|
||
|
|
collée par Adam) et rappelle les deux adresses déjà saisies à l'étape 1.
|
||
|
|
|
||
|
|
## Étape 3 — Ajouter l'outil à un cours, puis enregistrer le déploiement
|
||
|
|
|
||
|
|
Dans le cours Moodle : ajouter une activité « Outil externe » pointant
|
||
|
|
vers Syllabus. Une fois ajoutée, Moodle affiche un **Deployment ID** pour
|
||
|
|
cette combinaison outil/cours — à enregistrer :
|
||
|
|
|
||
|
|
```
|
||
|
|
sudo -u www-data HOME=/tmp php8.3 artisan lti:enregistrer-deploiement <id_plateforme> <deployment_id>
|
||
|
|
```
|
||
|
|
|
||
|
|
`<id_plateforme>` est l'identifiant numérique affiché à l'étape 2
|
||
|
|
(« Plateforme #… enregistrée »).
|
||
|
|
|
||
|
|
## Vérifier que ça fonctionne
|
||
|
|
|
||
|
|
Un élève qui clique sur l'activité dans Moodle doit atterrir connecté sur
|
||
|
|
`/eleve`, dans la bonne classe. En cas d'échec, Moodle affiche en général
|
||
|
|
le message d'erreur renvoyé par le portail (page « Le lancement depuis
|
||
|
|
Moodle n'a pas fonctionné ») :
|
||
|
|
|
||
|
|
| Message | Cause probable |
|
||
|
|
|---|---|
|
||
|
|
| Classe introuvable ou archivée | Le code dans l'URL de lancement ne correspond à aucune classe active |
|
||
|
|
| LTI 1.3 Registration not found… | Étape 2 pas faite, ou Platform ID/Client ID mal recopiés |
|
||
|
|
| Unable to find deployment | Étape 3 pas faite pour ce cours précis |
|
||
|
|
| Please make sure you have cookies… | Cookies tiers bloqués côté navigateur de l'élève, ou horloge du serveur décalée |
|
||
|
|
|
||
|
|
## Un élève change d'identité Moodle ou rejoint depuis deux cours
|
||
|
|
|
||
|
|
Peu probable, mais si ça arrive : un nouveau compte serait créé (l'élève
|
||
|
|
est retrouvé par `lti_sub`, propre à Moodle). Pas de fusion automatique —
|
||
|
|
à faire à la main si ça se produit réellement.
|