Prerequisites
- Moodle 3.10+ (native LTI 1.3)
- Studeia plan with LTI enabled
- Moodle admin role
- HTTPS on both sides
Setup
1. Studeia: generate LTI tool config
/institution/lti-tools > New Tool: Tool name, URIs, JWKS URL. Studeia generates Client ID + Deployment ID.
2. Moodle: register tool
Site administration > Plugins > Activity modules > External tool > Manage tools > + configure a tool manually:
- Tool name: "Studeia"
- Tool URL: from step 1
- LTI version: LTI 1.3
- Public key type: Keyset URL > Studeia JWKS URL
- Initiate login URL: from step 1
- Tool configuration usage: Show as preconfigured tool
- Services > Assignment and Grade Services: Use for grade sync
- Services > Names and Role Provisioning: Use for member retrieval
- Save
3. Add in course
Course Moodle > Turn editing on > Add activity > External tool > Preconfigured tool: Studeia.
How it works
Identical to Canvas LTI (same LTI 1.3 spec). Student clicks "Studeia Module" → Moodle POST /lti/login → Studeia validates + redirect with state + nonce → Moodle redirect with JWT id_token → Studeia LtiService.launch() (validate JWT via Moodle JWKS, JIT provisioning, create Enrollment, start session) → redirect to module.
AGS grade passback
Student completes Studeia quiz → LtiAdvantageService.sendScore() → POST score → Moodle Gradebook updated.
When LTI vs IMS CC
| Scenario | Recommended |
|---|---|
| Keep Moodle, complement with Studeia in pilot courses | LTI |
| Migrate EVERYTHING from Moodle to Studeia | IMS CC import |
| Department experiments before institutional decision | LTI |
| Moodle will be discontinued in 6-12 months | IMS CC import + parallel during migration |
LTI advantages vs total migration
✅ Student uses existing Moodle SSO (Shibboleth, institutional OIDC) ✅ Moodle Gradebook remains source-of-truth ✅ No need to migrate students/courses/history ✅ Easily reversible ✅ Per-course (only selected courses, not entire institution)
Limitations
- Performance: each LTI launch is ~500-1000ms
- SSO experience: 1 click in Moodle, 1-2s later in Studeia (not instant)
- Moodle Workshop activities: not mappable to Studeia (recreate manually)
- Custom Moodle plugins: not called via Studeia LTI