✅ Grade essays and short-answers with AI Learn more →
Exam AI GraderPosts
CTRL K
Canvas, Moodle, Google Classroom: Setting Up LTI 1.3 AI Grading

Canvas, Moodle, Google Classroom: Setting Up LTI 1.3 AI Grading

Primary keyword: lti 1.3 ai grading

This guide shows you how to connect an AI grading tool to Canvas and Moodle using LTI 1.3 / LTI Advantage and what to do if your institution uses Google Classroom. You’ll configure secure OIDC flows, enable Assignments & Grades Service (AGS) for score return, Names & Roles Provisioning Service (NRPS) for roster access, and Deep Linking for content selection—plus common fixes when things go wrong. LTI 1.3 builds on OAuth2/OIDC and signed JWTs for robust security. (IMS Global , IMS Global )

Fast track: If you’re piloting Exam AI Grader, ask us for your platform-specific JSON and LTI keys. We’ll provide the Initiate Login URL, Target Link URI, Redirect URIs, and JWKS URL you paste into Canvas or Moodle—so grade passback and roster sync work out of the box.


LTI 1.3 basics (roles, OIDC, grade return)

At a high level, an LTI launch starts with an OIDC third-party-initiated login from the LMS to your tool. The tool redirects the user back to the LMS with an OIDC response; the LMS then posts an LTI 1.3 launch id_token (JWT) to your tool’s target_link_uri. That target_link_uri must match what the LMS sent in the OIDC login. (IMS Global )

With LTI Advantage, your tool can:

  • Return grades using AGS (Line Items, Scores, Results). (IMS Global )
  • Read course memberships (rosters) using NRPS. (IMS Global )
  • Insert links/content using Deep Linking 2.0. (IMS Global )

Security and tokens follow the 1EdTech Security Framework, which layers OAuth2 and OIDC for authentication and service calls. (IMS Global )


Canvas setup steps

Canvas uses a Developer Key (LTI Key) for registration, then an App deployment (by Client ID) that yields a Deployment ID often required by tools for multi-tenant routing.

1) Create the Developer Key (LTI 1.3)

  1. In Admin → Developer Keys → + Developer Key → LTI Key.
  2. Choose Paste JSON (or Manual) and provide your tool’s endpoints:
    • Initiate Login URL (OIDC)
    • Target Link URI (LTI launch)
    • Redirect URIs (array; include all that your tool may use—Canvas validates these)
    • JWKS URL (tool public keys)
    • Scopes for AGS/NRPS if you want grade passback and rostering
  3. Save, then toggle the key On when you’re ready. (Canvas Community )

Tip: Include every redirect URI variant in the key JSON (prod, test, regional). Canvas enforces strict matching. (Instructure Developer Documentation )

Minimal JSON skeleton (example; replace with your actual URLs):

{ "title": "Exam AI Grader", "scopes": [ "https://purl.imsglobal.org/spec/lti-ags/scope/lineitem", "https://purl.imsglobal.org/spec/lti-ags/scope/lineitem.readonly", "https://purl.imsglobal.org/spec/lti-ags/scope/result.readonly", "https://purl.imsglobal.org/spec/lti-ags/scope/score", "https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly" ], "extensions": [ { "platform": "canvas.instructure.com", "settings": { "placements": ["course_navigation","assignment_selection","link_selection"] } } ], "public_jwk_url": "https://YOUR-TOOL/.well-known/jwks.json", "target_link_uri": "https://YOUR-TOOL/lti/launch", "oidc_initiation_url": "https://YOUR-TOOL/lti/oidc/initiate", "redirect_uris": ["https://YOUR-TOOL/lti/callback"] }

The AGS/NRPS scopes above correspond to Line Items, Scores, Results, and Memberships; Canvas mappings show the same scope URIs. (IMS Global , jsums.instructure.com )

2) Deploy the App (get the Deployment ID)

  1. Go to Admin → Settings → Apps → View App Configurations → + App.
  2. Configuration Type: By Client ID → paste the Client ID from your Developer Key → Submit → Install.
  3. In the list, click the gear next to the app → Deployment ID → copy this value (many tools require both Client ID + Deployment ID). (Canvas Community , success.vitalsource.com )

You can also install at a course level via Settings → Apps using By Client ID. (help.vocareum.com )

3) Verify services

  • In your key configuration, ensure LTI Advantage services (Deep Linking, AGS, NRPS) are enabled; Canvas notes that AGS access depends on scopes set in the Developer Key. (Instructure Developer Documentation )
  • Canvas provides NRPS/Deep Linking docs if you need placements beyond standard course navigation. (Instructure Developer Documentation )

Moodle setup steps

Moodle’s External tool module supports LTI 1.3 / LTI Advantage. You register the tool at the site level, then teachers add it to courses. (Moodle Docs )

1) Register the tool (manual)

  1. Site administration → Plugins → Activity modules → External tool → Manage tools.
  2. Click Configure a tool manually.
  3. Set LTI version: LTI 1.3; Public key type: Keyset URL (JWKS).
  4. Paste your tool’s Tool URL (launch), Redirection URI(s), Initiate Login URL, JWKS URL.
  5. Enable “Supports Deep Linking (Content-Item Message)”.
  6. Save. (Moodle Docs , success.vitalsource.com )

Moodle’s docs and vendor guides show the same menu path. (Moodle Docs , CompTIA Help )

2) Turn on services & privacy

  • In Services, set IMS LTI Assignment and Grade Services to Use this service for grade sync and column management.
  • Set IMS LTI Names and Roles Provisioning to Use this service to retrieve members’ information.
  • In Privacy, allow sharing user name and email if your tool needs them for accounts. (support.scorm.com , Moodle Docs )

3) Add to a course

Teachers can now Add an activity or resource → External tool, pick your preconfigured tool, and place links. (Grok Knowledge Base )

Moodle also supports Dynamic Registration in some flows, but manual registration works universally across LTI Advantage platforms. (Moodle Docs )


Google Classroom / alternatives

Short answer: Google Classroom is not an LTI 1.3 platform. Classroom integrations are built as Classroom Add-ons and via the CourseWork API, not LTI. If your institution uses Classroom as its primary LMS, you’ll integrate via Google’s add-on framework rather than LTI. (Google for Developers )

Google does offer Google Workspace LTI modules (Assignments, Drive, Meet) to bring Google tools into LTI-based LMSs like Canvas and Schoology—but that’s the opposite direction (Google as a tool, not Classroom as the platform). (Google for Education )

Multiple sources confirm Classroom itself doesn’t support LTI 1.3; plan on Google’s Add-ons route if you’re a vendor or on migrating courses to an LTI-based LMS if you need third-party LTI tools. (ADInstruments , Edlink )


Security & scopes to review (checklist)

When you create your tool or Developer Key, audit the following:

  • OIDC endpoints and allowed Redirect URIs (strict matching; include all valid hosts/paths). (Instructure Developer Documentation )

  • JWKS URL publishes your public keys (rotate safely). (IMS Global )

  • Deep Linking 2.0 enabled if you want instructors to pick specific items. (IMS Global )

  • AGS scopes (as needed):

    • .../lti-ags/scope/lineitem (create/manage columns)
    • .../lti-ags/scope/lineitem.readonly (read columns)
    • .../lti-ags/scope/score (post scores)
    • .../lti-ags/scope/result.readonly (read computed results) (IMS Global )
  • NRPS scope: .../lti-nrps/scope/contextmembership.readonly. (IMS Global )


Testing & troubleshooting

Below are frequent issues and how to resolve them quickly.

SymptomLikely causeHow to fix
“redirect_uri mismatch” during OIDCRedirect URI not listed in Canvas/Moodle configAdd the exact redirect URL(s) to your LTI key / tool settings; Canvas requires explicit allow-listing. (Instructure Developer Documentation )
Launch rejected; target link mismatchtarget_link_uri differs between OIDC login and LTI launchEnsure your target_link_uri equals what the platform sent in the OIDC login. (IMS Global )
Invalid/expired state or nonceOIDC state/nonce not stored/validated or clock skewPersist and verify state/nonce; check server clocks per 1EdTech Security Framework. (IMS Global )
NRPS call returns 401 / empty listToken missing NRPS scope or service disabled in platformRequest token with .../lti-nrps/scope/contextmembership.readonly and enable NRPS in Canvas/Moodle tool settings. (IMS Global , Zoom Support )
AGS “invalid access token / insufficient scope”Token doesn’t include AGS scopes or using wrong audience/token endpointRequest score, lineitem/lineitem.readonly, result.readonly; ensure you’re using the platform’s OAuth token endpoint and client credentials grant. (IMS Global , Instructure Developer Documentation , docs.anthology.com )
Grades don’t appear in LMS gradebookNo Line Item or wrong association for resource linkCreate/associate a Line Item for the launch context before sending Score; platform docs note the Line Items/Results/Score relationship. (IMS Global )
Roster lacks names/emailsPrivacy settings restrict sharingIn Moodle, allow sharing launcher’s name/email; in Canvas, request NRPS scope and check admin’s privacy settings. (Moodle Docs )
Deep Linking opens but nothing insertsPlacement not supported or content item format offVerify the Canvas placement supports Deep Linking and your message conforms to Deep Linking 2.0. (Instructure Developer Documentation , IMS Global )

Smoke test sequence: (1) LTI launch (id_token valid, role claims present) → (2) Create or discover Line Item → (3) POST Score → (4) read Result to confirm gradebook entry. (IMS Global )


Canvas: quick reference (copy/paste steps)

  1. Developer Key: Admin → Developer Keys → + LTI Key → Paste JSON (include OIDC, launch, JWKS, Redirect URIs, scopes). Toggle On. (Canvas Community , Instructure Developer Documentation )
  2. Deploy App: Admin → Settings → Apps → View App Configurations → + App → By Client ID → paste Client ID → Install → copy Deployment ID. (Canvas Community , success.vitalsource.com )
  3. Verify services: AGS/NRPS/Deep Linking enabled by scopes and placements. (Instructure Developer Documentation )

Moodle: quick reference (copy/paste steps)

  1. Register tool: Site administration → Plugins → Activity modules → External tool → Manage tools → Configure a tool manually → set LTI 1.3; keyset (JWKS) URL; add Tool URL, Redirection URI(s), Initiate Login URL; enable Supports Deep Linking. (Moodle Docs )
  2. Enable services: AGS = “Use this service for grade sync and column management”; NRPS = “Use this service to retrieve members’ information”; set Privacy to share user name/email if needed. (support.scorm.com )
  3. Add to course: Teacher → Add an activity → External tool → choose preconfigured tool. (Grok Knowledge Base )

Example: what the platform sends (claims & scopes)

At launch, platforms advertise what your tool may do via AGS/NRPS claims and scope lists (e.g., allowed AGS scopes and context_memberships_url for NRPS). Examples from the 1EdTech reference show the endpoint claim with lineitems URL and AGS scopes. Your tool should read these and request matching OAuth scopes. (lti-ri.imsglobal.org )


Annotated screenshots to include

Replace placeholders with your own captures:

  • Canvas Developer Key (LTI Key) form: highlight Paste JSON, Redirect URIs, JWKS URL.
  • Canvas App deployment: By Client ID dialog; gear → Deployment ID.
  • Moodle Manage tools → Configure manually: highlight LTI 1.3, Keyset URL, Services (AGS/NRPS), Privacy.

(These match the menu paths in the official/partner docs cited above.)


FAQ

Do I need NRPS for AI grading? It’s optional but recommended: NRPS lets you map LMS users to tool users deterministically for grade passback and analytics. The service and its scope are defined by 1EdTech. (IMS Global )

Which scopes are minimally required for grade return? Typically lineitem (or lineitem.readonly if line items are pre-created), plus score. Add result.readonly if your tool verifies what the LMS computed. (IMS Global )

Can we deep link assignments instead of a generic launch? Yes—enable Deep Linking 2.0 so instructors can select specific items; platforms like Canvas and Blackboard document this flow. (IMS Global , docs.anthology.com )

Where does Google fit in? Use Google Workspace LTI (Assignments/Drive/Meet) inside Canvas/Schoology, or use Classroom Add-ons if your institution stays on Google Classroom. Classroom itself is not an LTI 1.3 platform. (Google for Education , Google for Developers , ADInstruments )


If you’re ready to connect Exam AI Grader via LTI 1.3, request your LTI keys and platform-specific JSON so you can paste once and start grading with audit trails and rubric-based prompts:

  • Canvas guide: /integrations/canvas
  • Moodle guide: /integrations/moodle

We’ll provide Client-specific Redirect URIs, JWKS URL, Initiate Login URL, and Target Link URI, plus a test plan for AGS / NRPS.


References & further reading

  • LTI 1.3 Core (OIDC + target_link_uri requirement). (IMS Global )
  • 1EdTech Security Framework (OAuth2/OIDC). (IMS Global )
  • Assignments & Grade Services (AGS) v2.0. (IMS Global )
  • Names & Roles Provisioning Service (NRPS) v2.0. (IMS Global )
  • Deep Linking 2.0. (IMS Global )
  • Canvas: Configure an LTI key (Developer Key). (Canvas Community )
  • Canvas: App install “By Client ID” & Deployment ID. (Canvas Community , success.vitalsource.com )
  • Canvas: AGS/NRPS docs & scopes mapping. (Instructure Developer Documentation , jsums.instructure.com )
  • Moodle: LTI External tools (overview). (Moodle Docs )
  • Moodle: Manual 1.3 configuration & services. (Moodle Docs , support.scorm.com )
  • Google: Workspace LTI (for Canvas/Schoology). (Google for Education )
  • Google Classroom Add-ons (developer). (Google for Developers )
  • Classroom not LTI 1.3 (industry notes). (ADInstruments , Edlink )

Ready to Transform Your Grading Process?

Experience the power of AI-driven exam grading with human oversight. Get consistent, fast, and reliable assessment results.

Try AI Grader

Related Reading

Prompt Templates for Fair, Specific, Actionable Essay Feedback

Copy-paste prompts to generate clear, rubric-aligned feedback on structure, evidence, clarity, and citations.

September 7, 2025
Detecting & Mitigating Bias in AI Grading: A Practical Playbook (2025)

Make bias checks routine, not ad hoc. A step-by-step, classroom-ready workflow to test and reduce AI grading bias—counterfactuals, blinded samples, prompts, monitoring, and audit docs.

September 7, 2025
Migration Guide: Move from Manual to AI Grading (4-Week Plan)

Pilot, calibrate, and roll out AI grading in four weeks—templates, comms, and QA checkpoints included.

September 7, 2025
  • AI Grader
  • Posts
  • RSS
  • Contact
  • Privacy
  • Terms

© 2025 AI Grader. All rights reserved.