Skip to content

Canvas LTI

Note
This integration requires an INCLUXA Schools or Enterprise plan, a signed district agreement, and Canvas Admin access to register Developer Keys.

INCLUXA integrates with Canvas LMS via LTI 1.3 — the current IMS Global standard for external tool integrations. Once installed, every student in the course sees an Accessibility Tools link in the course navigation that loads their personal accessibility toolbar inside Canvas.

How it works

  1. Canvas sends a signed LTI launch JWT to INCLUXA when a student opens the tool
  2. INCLUXA validates the JWT and extracts the Canvas user ID and course context
  3. The student's accessibility profile is loaded and features applied in the Canvas iframe
  4. Feature usage is logged back to your INCLUXA analytics

Step 1 — Register in Canvas Admin

Go to Canvas Admin → Developer Keys → Add Developer Key → Add LTI Key and fill in the following values:

FieldValue
Redirect URIshttps://api.incluxa.com/api/lti/launch
Target Link URIhttps://api.incluxa.com/api/lti/launch
OpenID Connect Initiation URLhttps://api.incluxa.com/api/lti/login
JWK MethodPublic JWK URL
Public JWK URLhttps://api.incluxa.com/api/lti/jwks

After saving, enable the Developer Key and note the Client ID — you'll need it in the next step.

Step 2 — Configure your INCLUXA account

In the INCLUXA Portal, an Owner or Admin goes to Settings → Schools → LMS connections (available once the district agreement is signed) and enters:

  • Issuer (for Canvas cloud: https://canvas.instructure.com)
  • The Client ID from step 1
  • The Deployment ID (from Canvas after adding the tool to an account/course)
  • The Canvas JWKS URL (e.g. https://sso.canvaslms.com/api/lti/security/jwks)
  • The Canvas OIDC auth URL (e.g. https://sso.canvaslms.com/api/lti/authorize_redirect)
  • The Canvas token URL (e.g. https://sso.canvaslms.com/login/oauth2/token)

Step 3 — Install in Canvas

After enabling the Developer Key, add the tool to an account or course:

  • Go to Account/Course Settings → Apps → +App
  • Select By Client ID
  • Enter the Client ID and click Submit

Students will see Accessibility Tools in course navigation.

LTI configuration reference

The full LTI 1.3 tool configuration in Canvas JSON format:

lti-config.json
{
  "title": "INCLUXA Accessibility",
  "description": "Accessibility tools — reading mask, text-to-speech, dyslexia-friendly font, high contrast and more for students with disabilities.",
  "oidc_initiation_url": "https://api.incluxa.com/api/lti/login",
  "target_link_uri": "https://api.incluxa.com/api/lti/launch",
  "scopes": ["https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly"],
  "extensions": [
    {
      "platform": "canvas.instructure.com",
      "privacy_level": "public",
      "settings": {
        "placements": [
          {
            "placement": "course_navigation",
            "message_type": "LtiResourceLinkRequest",
            "text": "Accessibility Tools",
            "icon_url": "https://cdn.incluxa.com/icon-32.png",
            "enabled": true
          },
          {
            "placement": "global_navigation",
            "message_type": "LtiResourceLinkRequest",
            "text": "Accessibility",
            "icon_url": "https://cdn.incluxa.com/icon-32.png",
            "enabled": true
          }
        ]
      }
    }
  ],
  "public_jwk_url": "https://api.incluxa.com/api/lti/jwks",
  "custom_fields": {
    "canvas_user_id": "$Canvas.user.id",
    "canvas_user_login_id": "$Canvas.user.loginId",
    "canvas_course_id": "$Canvas.course.id",
    "canvas_course_name": "$Canvas.course.name"
  }
}
Warning
Privacy is set to public so Canvas includes the user ID with each launch. Canvas may also send name, email, and course context. INCLUXA receives those fields in the launch but does not store the names or emails; the student is identified by an opaque ID derived from the LMS user ID (lti-{user id}). See our Privacy Policy §12 and FERPA page for full data handling.
Important
Schools / Enterprise plan required. LMS connections can only be added in Settings → Schools after the Owner has signed the district agreement there. See the Schools overview.