Skip to content

Include context claim in deep linking launch #610

@ayub02

Description

@ayub02

Problem

I tired to integrate an LTI 1.3 tool named Ed Lessons in Ulmo sandbox. The integration worked but deep linking did NOT work. As seen in the screenshot below, user sees the message "There are no lessons that you can select from".

On the call with Ed stem's LTI dev, we figured out the reason: deep linking launch is NOT sharing context. Ed Lessons needs this to determine which courses they need to show in the deep linking launch.

As per the standard (link), context claim is optional. Here's what a sample context claim looks like.

"https://purl.imsglobal.org/spec/lti/claim/context": { "id": "c1d887f0-a1a3-4bca-ae25-c375edcc131a", "label": "ECON 101", "title": "Economics as a Social Science", "type": ["CourseOffering"] },

Suggestion

We add context claim in deep linking launch as specified in the standard. This will enable tools like Ed Lessons to use course ID from Open edX platform.

Resources

Link to course unit in Studio where you can try deep linking launch with Ed Lessons: https://apps.ulmo.openedx.io/authoring/course/course-v1:OpenedX+M101+2026/container/block-v1:OpenedX+M101+2026+type@vertical+block@0cdf61069fe141dd97c665f657554188/block-v1:OpenedX+M101+2026+type@sequential+block@d465b5c514f54c15b9d74d2ea63b91bc

Image

Here's the decode id_token from deep linking launch:

{ "https://purl.imsglobal.org/spec/lti/claim/message_type": "LtiDeepLinkingRequest", "https://purl.imsglobal.org/spec/lti/claim/version": "1.3.0", "iss": "https://ulmo.openedx.io", "aud": _removed_, "azp": _removed_, "https://purl.imsglobal.org/spec/lti/claim/deployment_id": "1", "https://purl.imsglobal.org/spec/lti/claim/target_link_uri": "https://us.edstem.org/api/lti/launch?tool=lessons", "sub": _removed_, "https://purl.imsglobal.org/spec/lti/claim/roles": [ "http://purl.imsglobal.org/vocab/lis/v2/institution/person#Instructor" ], "name": "admin", "email": "aayub@axim.org", "preferred_username": "admin_aayub", "https://purl.imsglobal.org/spec/lti/claim/resource_link": { "id": "block-v1:OpenedX+M101+2026+type@lti_consumer+block@9dbb3c27462b4491986501d37cce7cfb" }, "https://purl.imsglobal.org/spec/lti-dl/claim/deep_linking_settings": { "accept_types": [ "ltiResourceLink", "link", "html", "image" ], "accept_presentation_document_targets": [ "iframe", "window", "embed" ], "accept_multiple": true, "auto_create": true, "title": "", "text": "", "deep_link_return_url": "https://ulmo.openedx.io/api/lti_consumer/v1/lti/20/lti-dl/response" }, "nonce": _removed_, "iat"_removed_, "exp":_removed_ }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions