Canvas LMS Integration
Connect Canvas to Qriib with LTI 1.3 using the Platform, Tool URLs, LMS details, and Review setup flow, then verify a course launch.
Canvas LMS Integration
LTI (Learning Tools Interoperability) is a standard that connects a learning management system, such as Canvas, to an external learning tool. With LTI 1.3, users open Qriib from their course, and the LMS securely supplies their identity, course context, and role. Qriib uses that verified context to determine access to the classroom.
This guide connects Canvas to Qriib through the LMS Integration setup wizard. An administrator registers the connection first; instructors then add the tool to a course and verify a launch.
Before You Start
- Access to the correct Qriib organization as an authorized owner or admin.
- A plan with LMS integration enabled and capacity for the registration. Only one active LMS registration is allowed.
- Canvas administrator access to configure the LTI 1.3 tool.
- Two browser tabs: the Qriib portal and Canvas, so you can copy configuration values between them.
Open LMS Integration in your Qriib portal. For the development environment, use the LMS Integration page. Use your organization's corresponding portal for other environments.
Qriib Setup Flow
Screenshots below show the current Qriib setup components in a local preview with example values. Copy URLs and identifiers from your own portal and LMS; the screenshots do not represent a live LMS registration.
| Wizard step | What to do |
|---|---|
| 1. Platform | Choose Canvas and check the organization and prerequisites. The organization comes from your signed-in session. |
| 2. Tool URLs | Copy Qriib's OIDC Initiation URL, Target Link URI, and Public Keyset URL into the Canvas tool configuration. Save the tool in Canvas. |
| 3. LMS details | Return to Qriib and enter the issuer, client ID, deployment ID(s), and endpoint URLs supplied by Canvas. |
| 4. Review | Check the entered details, use Back for corrections, then select Register LMS Integration. |
Next validates the current step before continuing. After a successful save, the page shows Registration saved and Launch not verified here. Finish the course setup and launch the tool from Canvas to verify the connection. Saving configuration alone does not test an LMS launch.
Key Capabilities
| Feature | What is available |
|---|---|
| Guided registration | Platform → Tool URLs → LMS details → Review, with validation and a saved-registration summary |
| SSO and course roles | Launch from Moodle or Canvas; the backend verifies identity, course context, and instructor/learner permissions |
| Course activities / Deep Linking | Add the virtual classroom to a course; use content selection when the LMS placement supports Deep Linking |
| Live classrooms | Authorized instructors create and end meetings; permitted instructors and learners join the active classroom |
| One-time and weekly classes | Schedule one class or a weekly series; weekly creation and changes require server review and the recurring-meetings capability |
| Schedule browsing | Upcoming, Past, and Cancelled views with scoped counts, five classes per page, and This Activity / Whole Course filters |
| Occurrence and series actions | Edit or cancel one occurrence, edit a series, or cancel its remaining future classes when permitted |
| Calendar download | Download an eligible individual class as an .ics file; this is not a live calendar subscription |
| Recordings | Authenticated playback and instructor publication controls; learners see only recordings allowed by the backend |
| Session history | A separate instructor History tab for past meeting sessions when entitled |
| Course roster (NRPS) | Instructor roster lookup when the LMS supplies NRPS and the organization has access |
| Institution branding | Optional public HTTPS logo in the workspace, with a fallback if the image cannot load |
| English and Arabic | Verified launch language, a per-session language switch, and right-to-left layout for Arabic |
| Registration management | Edit supported registration fields and enable/disable connections; issuer and client ID stay fixed when editing |
| Attendance, AGS grades, CSV, readiness filters | Pending frontend activation; ending a meeting does not automatically publish attendance grades |
The shared Phase 2 safety rules apply here: no automatic attendance-grade publication, two-POST session-bound recording playback with coordinated frontend/backend rollout, honest force-disable uncertainty, verified EN/AR launch locale with a manual per-session switch, and independent workspace logout (no Moodle synchronization contract). Never put workspace bearers in URLs or send them to arbitrary returned origins or media providers. This is source alignment, not live Canvas/browser or release acceptance.
LTI management requires fresh verified Control Panel owner or admin membership for the target organization, not merely Canvas admin access. Verification outages fail closed. Backend capabilities govern feature access; Soon, disabled, or commented workflows remain pending frontend activation. Attendance, automatic AGS grades, CSV export, and readiness filters remain pending. The setup flow below follows the current portal source; verify it with a course launch in your environment.
Step 1: Choose Canvas and Copy the Tool URLs
- Log in to the Qriib DevKit Portal and open LMS Integration.
- In Platform, select Canvas, confirm the organization and prerequisites, then select Next.
- In Tool URLs, copy the OIDC Initiation URL, Target Link URI (Launch URL), and Public Keyset URL (JWKS) for your environment. If these are unavailable, obtain them from your Qriib administrator before continuing.
Use the copy button beside each URL, or select and copy it manually if clipboard access fails. Keep the portal tab open while configuring Canvas. These are Qriib tool URLs; the Canvas platform URLs belong in the later LMS details step.
Platform Selection

Copy the Tool URLs

Step 2: Create a Developer Key in Canvas
- Log in to Canvas with an Admin account.
- Go to Admin and select your root account (e.g. Canvas LMS Dev).
- Click Developer Keys, then click the
+ Developer Keybutton and choose+ LTI Key. - Fill in the configuration form with the following values:
- Method: select Manual Entry.
- Key Name:
Qriib Virtual Classrooms - Owner Email: (your email address)
- Redirect URIs: the Target Link URI (Launch URL) from Step 1
- Title:
Qriib Virtual Classrooms - Target Link URI: the Target Link URI (Launch URL) from Step 1
- OpenID Connect Initiation Url: the OIDC Initiation URL from Step 1
- JWK Method: select Public JWK URL.
- Public JWK URL: the Public Keyset URL (JWKS) from Step 1
- Click Save to store the key.
- In the keys table, toggle the key's State to ON to enable it.
- Copy the Client ID shown in the Details column.

Optional: Set Your Institution's Workspace Logo
In a Qriib environment with client-logo support deployed on both the backend and frontend, an authorized Canvas administrator can pass a logo through the existing LTI 1.3 Developer Key configuration.
Using your account's supported JSON configuration workflow, merge this fragment into the existing tool-level configuration, preserving all other custom fields, security settings, and placements. This is not a complete registration configuration:
{
"custom_fields": {
"logo_url": "https://your-university.edu/assets/logo.png"
}
}Save the configuration, then close the existing workspace and launch the course activity again. Refreshing an existing session does not update its logo. Canvas also supports placement-specific custom_fields; check the launched placement for an overriding value if the wrong logo appears.
Use a direct, public HTTPS image URL that loads without login, not a webpage containing the image. For example, a Wikipedia file-description page is HTML; use its Original file URL instead. Avoid temporary access tokens. Canvas's separate icon_url controls the icon shown by Canvas and is not automatically imported as the Qriib workspace logo.
Missing, invalid, or unloadable logos fall back to a neutral school icon without blocking workspace access. The image host receives browser requests and network metadata; Qriib sends no workspace referrer or LTI authorization header. For diagnostic steps, see Troubleshooting the Logo.
The custom_fields configuration is described in the official Canvas LTI configuration documentation. Administrator UI labels vary; this logo setup has not yet been verified against a live Canvas tenant.
Step 3: Install and Enable the App in Canvas
- Go to the course you want to enable the tool for (e.g. the
mathcourse). - Go to Settings > the Apps tab, then click View App Configurations and
+ App. - Set Configuration Type to By Client ID.
- Enter your Client ID (e.g.
10000000000001), then click Submit and Install. - Unlock the app (one-time step):
- Go to Admin > Apps > the Manage tab.
- Find the app, open its details, and click
Unlock appuntil its status shows App is unlocked (blue lock icon). - Copy the Deployment ID shown there.

Step 4: Register the Canvas Credentials in the Qriib Portal
Return to Qriib DevKit Portal → LMS Integration and continue from Tool URLs to LMS details. Enter your Canvas-provided identifiers and endpoints using the following mapping:
| Qriib Portal Field | Value from Canvas |
|---|---|
| LMS Vendor / Platform | Canvas |
| Platform Issuer (iss) | http://localhost:3000 |
| Client ID | 10000000000001 |
| Public Keyset URL | http://localhost:3000/api/lti/security/jwks |
| Access Token URL | http://localhost:3000/login/oauth2/token |
| Authentication Request URL | http://localhost:3000/api/lti/authorize_redirect |
| Deployment ID | 1:8865aa05b4b79b6a91a86042e43af5ea8ae79eb |
Leave Authentication Audience blank unless your LMS requires it. Select Next to open Review, check the values, then select Register LMS Integration. Use Back to correct details before saving. If saving fails, the wizard keeps your entries for correction and retry.
The result is Registration saved, with Launch not verified here. Saving does not test a Canvas launch: complete the course setup below and open the activity to verify it. Only one active registration is allowed; issuer and client ID cannot be changed when editing an existing registration.
The http://localhost:3000 values above are local-development examples only. Use your actual platform-provided HTTPS endpoints for deployment and preserve the issuer exactly, including a trailing slash. HTTP is accepted only for explicit loopback hosts (localhost, 127.0.0.1, ::1); embedded credentials and unsafe URLs are rejected. Creation and enable both recheck synchronized LTI entitlements and integration capacity.
Enter the LMS Details

Review Before Saving

Registration Saved

The saved screen confirms that the configuration was stored. Continue below to open the tool from an LMS course and verify the launch.
Step 5: Add Virtual Classrooms to a Course (Instructor Workflow)
Instructors can now add a virtual classroom to any course:
- Go to an active course (e.g. the
mathcourse). - Click Modules in the course sidebar.
- Click
+ Moduleto create a new module namedLive Classes.

- Click the
+icon next to the module name to add a new item. - In the dropdown list, select External Tool.

- Select
Qriib Virtual Classroomsfrom the list, then click Add Item. - Open the saved link as an instructor to launch the workspace. Verify that the expected course and instructor identity appear.
- Launch the activity separately as a learner to confirm the permitted learner view. The backend determines each user's course role and available actions; Canvas administrator access alone does not override those permissions.
Moodle LMS Integration
Connect Moodle to Qriib with LTI 1.3 using the Platform, Tool URLs, LMS details, and Review setup flow, then verify a course launch.
Sakai LMS Integration
Complete guide for integrating Qriib Virtual Classrooms with Sakai LMS via LTI 1.3 / LTI Advantage — covering External Tools registration, AGS/NRPS/Deep Linking setup, security flow, environment configuration, and troubleshooting.