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

Integración Canvas LMS via LTI 1.3 (Studeia como tool provider)

Cómo registrar Studeia como external tool en Canvas vía LTI 1.3: OIDC launch + JWT/JWKS, AGS grade passback, Names and Roles service, placements en course navigation y assignment

2026-05-24 6 min
Resposta curta

Studeia funciona como LTI 1.3 tool provider en Canvas LMS. Setup en Canvas: Admin > Developer Keys > LTI Key > pegar el config JSON generado en /institution/lti-tools de Studeia > activar placement. OIDC launch + JWT/JWKS + AGS grade passback (las notas se sincronizan automáticamente al Canvas Gradebook). Útil para universidades en Canvas que quieren complementar con Studeia (tutor IA, gamificación, mobile B2B) en cursos específicos sin desinvertir en el LMS principal.

Requisitos previos

  • Studeia con plan que tenga LTI habilitado (Enterprise o planes de pago)
  • Rol de Canvas Admin (para registrar Developer Key)
  • HTTPS en ambos lados (LTI 1.3 requiere TLS)

Configuración

1. Studeia: generar 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 genera Client ID + Deployment ID

Studeia muestra el JSON config completo (LTI 1.3 spec) — cópialo.

2. Canvas: registrar Developer Key

  1. Canvas Admin > Developer Keys > + Developer Key > LTI Key
  2. Method: Paste JSON
  3. Pegar el JSON config del paso 1
  4. Save > ON (activar key)
  5. Copiar el Client ID generado por Canvas

3. Canvas: instalar app en account/curso

  1. Account Admin > Settings > Apps > + App > By Client ID
  2. Pegar Client ID
  3. Configurar placements:
    • Course Navigation (enlace en el menú lateral del curso)
    • Assignment Selection (crear assignment de Studeia)
    • Link Selection (enlace en páginas/módulos)
    • User Navigation (enlace en el menú del usuario)

4. Validar

En cualquier curso de Canvas: menú lateral > Studeia tool > debe abrir Studeia con el mismo usuario autenticado (via OIDC launch).

Cómo funciona

Alumno en Canvas hace clic en "Studeia Module"
  ↓
Canvas POST /lti/login?iss=... (Studeia OIDC Login endpoint)
  ↓
Studeia valida + retorna redirect a Canvas con:
  - state (HMAC-signed)
  - nonce (Redis 15min anti-replay)
  ↓
Canvas redirige al alumno a /lti/launch con JWT id_token firmado
  ↓
Studeia LtiService.launch():
  1. Valida JWT signature via Canvas JWKS
  2. Valida nonce (anti-replay)
  3. Valida iss, aud, exp, deployment_id
  4. Extrae user_id, name, email, roles, context_id
  5. JIT provisioning (crea User si no existe — User.externalId = LTI sub)
  6. Crea/actualiza Enrollment (course_id mapping)
  7. Inicia sesión de Studeia (Supabase auth)
  ↓
Redirect al módulo/clase/quiz indicado (LtiLaunch.targetResource)
  ↓
El alumno usa Studeia con normalidad

AGS grade passback

Cuando el alumno completa una actividad de Studeia que tiene un AGS line_item asociado:

LessonCompletion / QuizAttempt finaliza
  ↓
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 signs JWT)
  ↓
Canvas actualiza el Gradebook automáticamente

Sin escritura doble — el Canvas Gradebook sigue siendo source-of-truth.

Names and Roles Provisioning Service (NRPS)

La spec LTI 1.3 permite a Studeia consultar la lista de alumnos del curso en Canvas:

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

Devuelve el roster (alumnos + roles). Útil para pre-popular Enrollments antes del primer launch.

Casos de uso comunes

Universidad ya en Canvas que quiere Studeia en un curso específico

  1. El Departamento de Informática decide usar Studeia para CS101 (tutor IA real)
  2. El Admin de Canvas añade la Studeia tool al curso CS101
  3. Estructura: Canvas tiene topics + assignments + gradebook. Studeia tiene AI tutor + gamificación + interactive content
  4. Quizzes via Studeia → grade passback al Canvas Gradebook
  5. Los demás cursos de Canvas continúan sin Studeia

Migración gradual Canvas → Studeia

  1. Añadir Studeia LTI en todos los cursos
  2. Cursos nuevos: crear directamente en Studeia, enlace LTI en Canvas como entry point
  3. Cursos legacy: mantener en Canvas, complementar con Studeia
  4. En 1-2 años: evaluar decommission de Canvas

Limitaciones

  • Deep Linking 1.3: Studeia soporta la selección de recurso específico (módulo/clase) al añadir la tool en un assignment
  • LTI Sub Manage (sub-tenants): no soportado de forma nativa — cada tenant de Studeia = una Developer Key de Canvas
  • Canvas plagiarism integration: no via Studeia LTI (usar plugin de Canvas por separado)

Solución de problemas

JWT validation fails

Verificar que la JWKS URL de Studeia sea accesible públicamente: curl https://[tenant].studeia.com/.well-known/jwks.json debe retornar JSON con las keys.

Grade passback no funciona

Verificar que el scope AGS esté habilitado en la Developer Key de Canvas: https://purl.imsglobal.org/spec/lti-ags/scope/score + lineitem.readonly o lineitem.

El alumno ve "Tool unavailable"

OIDC nonce expirado (>15min) o state HMAC mismatch. Recargar la página de Canvas.

Ver también

FAQ

¿Cómo añadir Studeia en un curso de Canvas?

Studeia como LTI 1.3 tool provider. En Studeia: /institution/lti-tools > Generate Client ID + JWKS. En Canvas: Admin > Developer Keys > LTI Key > Method: Paste JSON > pegar config de Studeia. Luego Admin > Settings > Apps > By Client ID > pegar ID. Activar placements: course navigation, assignment, etc.

¿Las notas se sincronizan automáticamente?

Sí, via AGS (Assignment and Grade Service). Cuando el alumno completa una actividad de Studeia: el backend llama POST {issuer}/api/lti/courses/{courseId}/line_items/{itemId}/scores. La nota aparece en el Canvas Gradebook (Canvas sigue siendo source-of-truth). Sin escritura doble.

¿Puedo usar el AI tutor de Studeia dentro de Canvas?

Sí. Cuando el alumno accede al enlace LTI en Canvas: el OIDC launch valida el JWT + crea la sesión de Studeia + redirige al módulo/clase. El alumno usa el tutor IA, gamificación, todo de Studeia — dentro del iframe de Canvas (o nueva pestaña si iframe está bloqueado).

¿Qué datos envía Canvas a Studeia via LTI?

Según la spec LTI 1.3: user_id, name, email, roles (Learner/Instructor/Administrator), context_id (course_id de Canvas), context_label/title (nombre del curso), launch_presentation, resource_link_id. Más los endpoints AGS para grade passback. Names and Roles para listar alumnos del curso (con permiso).

Veja tambem

Integración Canvas LMS via LTI 1.3 (Studeia como tool provider)