Harden an LTI 1.3 tool launch against replay and forged id_tokens by validating nonce, state, and platform JWKS keys.

domain: imsglobal.org · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. Generate a unique nonce and state in the tool's login-initiation redirect to the platform's authorization_endpoint, storing state tied to the browser session.
  2. After redirect back, verify the returned state matches the stored session before processing the id_token.
  3. Fetch the platform's JWKS via jwks_uri (never trust an inline jwks array) and verify the id_token signature using the key matching its kid.
  4. Validate the id_token's iss, aud, exp, and nonce claims, confirming the nonce hasn't been seen before within your acceptable time window.
  5. Cache JWKS keys with a TTL and only refetch on a kid cache-miss instead of on every launch.
  6. Track consumed nonces in a short-lived store to reject duplicate/replayed id_tokens.

Known gotchas

Related routes

Validate an LTI 1.3 id_token JWT from a platform using the platform's JWKS endpoint
imsglobal.org · 6 steps · unrated
Implement an LTI 1.3 tool launch (OIDC third-party login flow)
imsglobal.org · 5 steps · unrated
Implement LTI 1.3 Dynamic Registration to automate tool registration on a new platform without manual administrator data entry
imsglobal.org · 6 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans