Vconnct Developers

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 stepWhat to do
1. PlatformChoose Canvas and check the organization and prerequisites. The organization comes from your signed-in session.
2. Tool URLsCopy Qriib's OIDC Initiation URL, Target Link URI, and Public Keyset URL into the Canvas tool configuration. Save the tool in Canvas.
3. LMS detailsReturn to Qriib and enter the issuer, client ID, deployment ID(s), and endpoint URLs supplied by Canvas.
4. ReviewCheck 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

FeatureWhat is available
Guided registrationPlatform → Tool URLs → LMS details → Review, with validation and a saved-registration summary
SSO and course rolesLaunch from Moodle or Canvas; the backend verifies identity, course context, and instructor/learner permissions
Course activities / Deep LinkingAdd the virtual classroom to a course; use content selection when the LMS placement supports Deep Linking
Live classroomsAuthorized instructors create and end meetings; permitted instructors and learners join the active classroom
One-time and weekly classesSchedule one class or a weekly series; weekly creation and changes require server review and the recurring-meetings capability
Schedule browsingUpcoming, Past, and Cancelled views with scoped counts, five classes per page, and This Activity / Whole Course filters
Occurrence and series actionsEdit or cancel one occurrence, edit a series, or cancel its remaining future classes when permitted
Calendar downloadDownload an eligible individual class as an .ics file; this is not a live calendar subscription
RecordingsAuthenticated playback and instructor publication controls; learners see only recordings allowed by the backend
Session historyA 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 brandingOptional public HTTPS logo in the workspace, with a fallback if the image cannot load
English and ArabicVerified launch language, a per-session language switch, and right-to-left layout for Arabic
Registration managementEdit supported registration fields and enable/disable connections; issuer and client ID stay fixed when editing
Attendance, AGS grades, CSV, readiness filtersPending 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

  1. Log in to the Qriib DevKit Portal and open LMS Integration.
  2. In Platform, select Canvas, confirm the organization and prerequisites, then select Next.
  3. 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

Qriib setup step 1 with Canvas selected

Copy the Tool URLs

Qriib setup step 2 showing the launch, OIDC, and JWKS URLs


Step 2: Create a Developer Key in Canvas

  1. Log in to Canvas with an Admin account.
  2. Go to Admin and select your root account (e.g. Canvas LMS Dev).
  3. Click Developer Keys, then click the + Developer Key button and choose + LTI Key.
  4. 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
  5. Click Save to store the key.
  6. In the keys table, toggle the key's State to ON to enable it.
  7. Copy the Client ID shown in the Details column.

Enabling the Developer Key and copying the Client ID

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

  1. Go to the course you want to enable the tool for (e.g. the math course).
  2. Go to Settings > the Apps tab, then click View App Configurations and + App.
  3. Set Configuration Type to By Client ID.
  4. Enter your Client ID (e.g. 10000000000001), then click Submit and Install.
  5. Unlock the app (one-time step):
    • Go to Admin > Apps > the Manage tab.
    • Find the app, open its details, and click Unlock app until its status shows App is unlocked (blue lock icon).
    • Copy the Deployment ID shown there.

Getting the Deployment ID and unlocking the app


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 FieldValue from Canvas
LMS Vendor / PlatformCanvas
Platform Issuer (iss)http://localhost:3000
Client ID10000000000001
Public Keyset URLhttp://localhost:3000/api/lti/security/jwks
Access Token URLhttp://localhost:3000/login/oauth2/token
Authentication Request URLhttp://localhost:3000/api/lti/authorize_redirect
Deployment ID1: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

Qriib setup step 3 with example Canvas identifiers and endpoints

Review Before Saving

Qriib setup step 4 reviewing the Canvas registration

Registration Saved

Saved Canvas registration with the launch-not-verified message and next steps

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:

  1. Go to an active course (e.g. the math course).
  2. Click Modules in the course sidebar.
  3. Click + Module to create a new module named Live Classes.

Dedicated module for live lectures

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

Inserting an External Tool into the course

  1. Select Qriib Virtual Classrooms from the list, then click Add Item.
  2. Open the saved link as an instructor to launch the workspace. Verify that the expected course and instructor identity appear.
  3. 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.