hypothesis / lms

LTI app for integrating with learning management systems
BSD 2-Clause "Simplified" License
46 stars 14 forks source link

EPIC: IMS LTI 1.3 Certification #705

Closed klemay closed 2 years ago

klemay commented 5 years ago

Track related tasks (source of truth)

LTI 1.3 Migration

As part of https://github.com/hypothesis/lms/issues/850, Rob covered the gist of the problem in 2019:

Are we compatible with LTI 1.3?

I had a read through of the LTI 1.3 specs this morning [1]. In short, implementing LTI 1.3 is a substantial project. Our "LMS" application is currently an "LTI 1.0/1.1 Tool Provider". LTI 1.3 preserves many of the basic concepts of LTI 1.1, but the security protocols on which it is built are different [2], and this significantly changes the registration process, flow of execution when launching an LTI assignment, and methods used by the LTI tool to pass back grades and other information to the LMS.

The LTI 1.3 specifications are quite recent and Canvas has only just implemented LTI 1.3 + associated specs for grading and other extensions ("LTI Advantage") behind a feature flag.

Due to changes in the information required by the Hypothesis LMS app and the LMS itself for an LTI 1.3 tool, separate registration documentation + guides will most likely be required for LTI 1.3.

[1] The specs are comprised of IMS Security Framework which explains how the LTI tool and the LMS communicate securely, the LTI 1.3 core specification which explains how a basic "External tool" assignment/content is created using LTI 1.3 and additional specifications which cover "deep linking" and reporting of grades/progress from the LTI tool back to the LMS.

[2] In technical terms, LTI 1.0/1.1 uses OAuth 1.0, LTI 1.3 uses OAuth 2 and OpenID Connect. LTI 1.3 also has a more complex launch flow to fix a security issue with LTI 1.0 where a malicious student (call them Mallory) could, in theory, trick another student (call them Alice) into doing an assignment under Mallory's identity.

Resources

Recommended

Optional

seanh commented 4 years ago

I've created a separate epic for 1.1 certification only: https://github.com/hypothesis/lms/issues/1130

marcospri commented 2 years ago

This is now done: https://site.imsglobal.org/certifications/hypothesis/hypothesis

Ideally we could extend our certification to cover "Deep Linking" and "Names and Roles" but that can be tracked in a different issue.