meta data for this page
LTI 1.3 Configuration
Overview
LEAST acts as an LTI 1.3 Tool Provider, allowing external Virtual Learning Environments (Moodle, Canvas, Blackboard, D2L Brightspace) to launch LEAST content in an iframe or new window.
Users are provisioned automatically on first launch (JIT provisioning) — no pre-created accounts are needed.
Prerequisites
- An active LTI-capable VLE (the Platform)
- A Level 3 admin account on LEAST
- The LEAST site must be HTTPS
Setting Up a New LTI Connection
Step 1 — Create the Tool registration in LEAST
- Navigate to Admin → LTI Configuration → New Tool
- Enter a name for this VLE connection
- LEAST generates the following values — copy these to your VLE:
| Value | Where to use it |
|---|---|
| Initiate Login URL | Paste into VLE as “Login Initiation URL” |
| Launch / Redirect URL | Paste into VLE as “Redirect URI” or “Launch URL” |
| JWKS URL | Paste into VLE as “Public Keyset URL” |
| Client ID | Copy from VLE after registering — enter back into LEAST |
| Platform JWKS URL | Copy from VLE — enter into LEAST |
Step 2 — Register LEAST in the VLE
In your VLE's LTI tool registration, use the values from Step 1. The VLE will generate a Client ID and an Issuer — bring these back to LEAST.
Step 3 — Complete LEAST configuration
- Return to Admin → LTI Configuration → Edit Tool
- Enter the Issuer (VLE URL), Client ID, and Platform JWKS URL from the VLE
Step 4 — Test the connection
- In the VLE, create an LTI activity pointing to LEAST
- Launch it as a test learner
- LEAST provisions a user account automatically on first launch
JIT User Provisioning
When a user launches via LTI for the first time:
- LEAST checks for a matching email address
- If found, the existing account is linked
- If not found, a new account is created from the LTI claims (name, email)
- The user is silently logged into LEAST and the content loads
Troubleshooting
| Symptom | Likely cause |
|---|---|
| “Invalid state” error | Session cookie not set — check HTTPS and third-party cookie settings |
| “Issuer not found” | Client ID or Issuer entered incorrectly in LEAST |
| “JWKS verification failed” | Platform JWKS URL is wrong or not publicly accessible |
| Blank page after launch | Iframe embedding blocked by X-Frame-Options header |