# 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/` (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 \ "" \ "" \ "" \ "" \ "" ``` 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 ``` `` 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.