Aller au contenu
Studeia Docs
AI-assisted translation — last updated 2026-05-24. For original (pt-BR or en-US), use the language switcher.

Intégration Canvas LMS via LTI 1.3 (Studeia comme tool provider)

Enregistrez Studeia comme outil externe dans Canvas via LTI 1.3 : lancement OIDC + JWT/JWKS, retour de notes AGS, service Names and Roles, emplacements dans la navigation de cours et les devoirs

2026-05-24 6 min
Resposta curta

Studeia fonctionne comme LTI 1.3 tool provider dans Canvas LMS. Configuration : Admin > Developer Keys > LTI Key > coller le JSON généré depuis /institution/lti-tools de Studeia > activer le placement. Lancement OIDC + JWT/JWKS + AGS grade passback (notes synchronisées automatiquement dans Canvas Gradebook). Utile pour les universités sous Canvas souhaitant enrichir leurs cours avec Studeia (tuteur IA, gamification, mobile B2B) sans abandonner leur LMS principal.

Prérequis

  • Plan Studeia avec LTI activé (Enterprise ou plans payants)
  • Rôle Admin Canvas (pour enregistrer une Developer Key)
  • HTTPS des deux côtés (LTI 1.3 exige TLS)

Configuration

1. Studeia : générer la config LTI tool

/institution/lti-tools > New Tool :

  • Tool name : "Canvas Production"
  • Target Link URI : https://[tenant].studeia.com/lti/launch
  • OIDC Login URI : https://[tenant].studeia.com/lti/login
  • Public JWKS URL : https://[tenant].studeia.com/.well-known/jwks.json
  • Studeia génère un Client ID + Deployment ID

Studeia affiche le JSON de config complet (spec LTI 1.3) — copiez-le.

2. Canvas : enregistrer une Developer Key

  1. Canvas Admin > Developer Keys > + Developer Key > LTI Key
  2. Method : Paste JSON
  3. Collez le JSON de config de l'étape 1
  4. Save > ON (activer la key)
  5. Copiez le Client ID généré par Canvas

3. Canvas : installer l'app sur le compte/cours

  1. Account Admin > Settings > Apps > + App > By Client ID
  2. Collez le Client ID
  3. Configurez les placements :
    • Course Navigation (lien dans le menu latéral du cours)
    • Assignment Selection (créer un assignment Studeia)
    • Link Selection (lien dans des pages/modules)
    • User Navigation (lien dans le menu de l'utilisateur)

4. Valider

Dans n'importe quel cours Canvas : menu latéral > Studeia tool > doit ouvrir Studeia connecté avec le même utilisateur (via OIDC launch).

Fonctionnement

L'apprenant dans Canvas clique sur "Studeia Module"
  ↓
Canvas POST /lti/login?iss=... (Studeia OIDC Login endpoint)
  ↓
Studeia valide + retourne une redirection vers Canvas avec :
  - state (HMAC-signed)
  - nonce (Redis 15min anti-replay)
  ↓
Canvas redirige l'apprenant vers /lti/launch avec JWT id_token signé
  ↓
Studeia LtiService.launch() :
  1. Valide la signature JWT via Canvas JWKS
  2. Valide le nonce (anti-replay)
  3. Valide iss, aud, exp, deployment_id
  4. Extrait user_id, name, email, roles, context_id
  5. JIT provisioning (crée l'utilisateur s'il n'existe pas — User.externalId = LTI sub)
  6. Crée/met à jour l'Enrollment (mapping course_id)
  7. Démarre la session Studeia (Supabase auth)
  ↓
Redirection vers le module/la leçon/le quiz indiqué (LtiLaunch.targetResource)
  ↓
L'apprenant utilise Studeia normalement

AGS grade passback

Lorsqu'un apprenant termine une activité Studeia associée à un AGS line_item :

LessonCompletion / QuizAttempt se termine
  ↓
Studeia LtiAdvantageService.sendScore() :
  POST {issuer}/api/lti/courses/{courseId}/line_items/{itemId}/scores
  Body : {
    userId: lti.sub,
    scoreGiven: 85,
    scoreMaximum: 100,
    activityProgress: "Completed",
    gradingProgress: "FullyGraded",
    timestamp: now()
  }
  Auth : OAuth 2.0 Client Credentials grant (Studeia private key signe le JWT)
  ↓
Canvas met à jour le Gradebook automatiquement

Pas de double écriture — Canvas Gradebook reste source-of-truth.

Names and Roles Provisioning Service (NRPS)

La spec LTI 1.3 permet à Studeia de consulter la liste des apprenants du cours Canvas :

GET {nrps_url}/memberships
Auth : Bearer (OAuth 2.0 Client Credentials)

Retourne le roster (apprenants + rôles). Utile pour pré-peupler les Enrollments avant le premier launch.

Cas d'usage courants

Université déjà sur Canvas souhaitant Studeia sur un cours spécifique

  1. Le département d'Informatique décide d'utiliser Studeia pour CS101 (tuteur IA réel)
  2. L'Admin Canvas ajoute le Studeia tool dans le cours CS101
  3. Structure : Canvas gère les topics + assignments + gradebook. Studeia gère le tuteur IA + gamification + contenu interactif
  4. Quizzes via Studeia → grade passback vers le Canvas Gradebook
  5. Les autres cours Canvas continuent sans Studeia

Migration progressive Canvas → Studeia

  1. Ajouter Studeia LTI dans tous les cours
  2. Nouveaux cours : créer directement dans Studeia, lien LTI dans Canvas comme point d'entrée
  3. Cours legacy : maintenir dans Canvas, compléter avec Studeia
  4. En 1-2 ans : évaluer le décommissionnement de Canvas

Limitations

  • Deep Linking 1.3 : Studeia prend en charge la sélection d'une ressource spécifique (module/leçon) lors de l'ajout du tool dans un assignment
  • LTI Sub Manage (sub-tenants) : non pris en charge nativement — chaque tenant Studeia = une Developer Key Canvas
  • Intégration plagiat Canvas : non via Studeia LTI (utiliser un plugin Canvas séparé)

Dépannage

Échec de validation JWT

Vérifier que la JWKS URL Studeia est accessible publiquement : curl https://[tenant].studeia.com/.well-known/jwks.json doit retourner un JSON avec les clés.

Le grade passback ne fonctionne pas

Vérifier que le scope AGS est activé dans la Developer Key Canvas : https://purl.imsglobal.org/spec/lti-ags/scope/score + lineitem.readonly ou lineitem.

L'apprenant voit "Tool unavailable"

Nonce OIDC expiré (>15min) ou mismatch du state HMAC. Recharger la page Canvas.

Voir aussi

FAQ

Comment ajouter Studeia dans un cours Canvas ?

Studeia fonctionne comme LTI 1.3 tool provider. Dans Studeia : /institution/lti-tools > Generate Client ID + JWKS. Dans Canvas : Admin > Developer Keys > LTI Key > Method: Paste JSON > collez la config Studeia. Ensuite Admin > Settings > Apps > By Client ID > collez l'ID. Activer les placements : course navigation, assignment, etc.

Les notes se synchronisent-elles automatiquement ?

Oui, via AGS (Assignment and Grade Service). Lorsqu'un apprenant termine une activité Studeia : le backend appelle POST {issuer}/api/lti/courses/{courseId}/line_items/{itemId}/scores. La note apparaît dans le Gradebook Canvas (Canvas reste source-of-truth). Pas de double écriture.

Puis-je utiliser le tuteur IA Studeia dans Canvas ?

Oui. Lorsqu'un apprenant accède au lien LTI dans Canvas : l'OIDC launch valide le JWT + crée une session Studeia + redirige vers le module/la leçon. L'apprenant utilise le tuteur IA, la gamification, tout ce que Studeia propose — dans l'iframe Canvas (ou un nouvel onglet si l'iframe est bloqué).

Quelles données Canvas envoie-t-il à Studeia via LTI ?

Conformément à la spec LTI 1.3 : user_id, name, email, roles (Learner/Instructor/Administrator), context_id (course_id Canvas), context_label/title (nom du cours), launch_presentation, resource_link_id. Plus les endpoints AGS pour le grade passback. Names and Roles pour lister les apprenants du cours (avec permission).

Veja tambem

Intégration Canvas LMS via LTI 1.3 (Studeia comme tool provider)