A minimal LTI 1.3 / LTI Advantage Tool built with the LtiAdvantage library and ASP.NET Core 10. Demonstrates:
- OIDC third-party login initiation
- Resource-link launch with full id_token validation against the platform's JWKS
- Deep linking response (signed by the tool)
- Assignment and Grade Services: line items, results
- Names and Role Provisioning Service: course members
- A per-platform JWKS endpoint so the platform can validate tool-signed JWTs
cd src/AdvantageTool
dotnet runThen in a browser:
- Open the printed URL.
- Register a tool admin account (the password rules are deliberately lax — this is a sample).
- Go to Platforms → Add platform and fill in your LMS's Issuer, Authorize URL, Access token URL, JWKS URL, and Client ID.
- The page also shows the URLs to give the platform side: Login URL, Launch URL, Deep linking URL, JWKS URL, and the public key.
Pages/OidcLogin.cshtml.cs— third-party login initiation.Pages/Tool.cshtml.cs— resource-link launch handler with full id_token validation against the platform's JWKS.Pages/Catalog.cshtml.cs— deep linking response: select activities, build and sign theLtiDeepLinkingResponse, post it back.Pages/Components/LineItems/LineItemsViewComponent.cs— token-protected AGS + NRPS calls using the LtiAdvantage models.Services/AccessTokenService.cs— JWT client-credentials flow.Services/JwksService.csand theMapGet("/jwks/{platformId}", ...)inProgram.cs— the tool's JWKS endpoint.
A separate sample LTI Advantage platform lives at LtiAdvantagePlatform. The IMS reference implementation (lti-ri.imsglobal.org) also works.