LTI v1.3 and LTI Advantage

The next version of LTI is almost here and it is shaping up to be great. In a nutshell, LTI v1.3 takes v1.1, swaps out OAuth 1.0a for OpenID Connect and OAuth 2.0, and wraps the name/value parameters in a nicely designed JSON Web Token (JWT). For example, in v1.1 the context was sent to the tool like this:

context_id=456434513
context_label=SI182
context_title=Design of Personal Environments
context_type=CourseSection

In v1.3 it is sent like this:

"https://purl.imsglobal.org/spec/lti/claim/context": {
  "id": "456434513",
  "label": "SI182"
  "title": "Design of Personal Environments",
  "type": [
    "CourseSection"
  ]
}

LTI Advantage is a label (and soon a certification) that says your platform or tool supports LTI v1.3, Assignment and Grade Services v2.0 (replacing Outcomes v1.0 in LTI v1.1), Names and Role Provisioning Services v2.0, and Deep Linking v2.0. By combining all 4 under one moniker and by offering a certification, I think IMS is hoping to build a critical mass of converts to the suite of services quickly. I hope this works.

This new combination of services solves two major problems with LTI v1.1: weak security and a poor teacher experience.

  • Weak Security – OAuth 1.0a has been deprecated for years because it does not provide much protection. In practice, it is very hard to control who has access to the secret, and nearly impossible to figure out who is using it. By relying on current state-of-the-art technology, LTI Advantage should be much more secure. I’m not a security expert or even good at security. But this decision seems like the right way to go.
  • Poor teacher experience 1 – Using just LTI v1.1 (i.e. w/o syncing class rosters using OneRoster), there is no way for a tool to know the current class roster. This means the tool cannot show the teacher which students should have, but have not finished an activity or taken a test. And, making it worse, there is no way for a tool to know who has left the class, so the teacher ends up having to wade through extra information to find the needle. That’s a big enough problem that some teachers will not use brilliant LTI activities, even if they are better than the tools built into their LMS. Names and Role Provisioning Services v2.0 (NRPS) solves both problems.
  • Poor teacher experience 2 – Second, using Outcomes v1.0, a tool can only tell the teacher’s LMS when the assignment has a grade, but not when the assignment has been started, turned in, waiting for manual grading, or has a document that needs reviewing. The combination of Assignment and Grade Services v2.0 (AGS) and Deep Linking v2.0 (DL) solves that. AGS has several statuses the LMS can surface in their teacher dashboard. And DL can be used to send attachments to the LMS to the teacher can easily review them.

IMS has built a reference implementation of LTI Advantage in written in Ruby. And I have built samples using ASP.NET Core. IMS’ reference implementation has both the platform and the tool in one app. I separated them into two: one platform and one tool. My source code is available on GitHub: platform and tool. Contact IMS if you want access to their source code.

Both implement the entire LTI Advantage suite of services (LTI v1.3, AGS, DL, and NRPS). And both implementations work seamlessly with each other (i.e. an IMS platform works with my tools, and my platform works with IMS’ tools).

Next time, I’ll write a bit about how I built my samples.

This entry was posted in LTI and tagged , , . Bookmark the permalink.

1 Response to LTI v1.3 and LTI Advantage

  1. Pingback: Using ASP.NET Core for LTI v1.3 and LTI Advantage | Learning Tools

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.