### LTI Platform Instance Claim Example Source: https://www.imsglobal.org/spec/lti/v1p3 This example demonstrates the 'https://purl.imsglobal.org/spec/lti/claim/tool_platform' claim, used to identify the specific learning platform instance initiating the LTI launch. The 'guid' is a required, locally unique identifier for the platform instance. ```json "https://purl.imsglobal.org/spec/lti/claim/tool_platform": { "guid": "ex/48bbb541-ce55-456e-8b7d-ebc59a38d435", "product_family_code": "ExamplePlatformVendor-ZLMS", "name": "LMS from Example University" } ``` -------------------------------- ### LTI 1.3 Resource Link Launch Form Post Source: https://www.imsglobal.org/spec/lti/v1p3 This example shows the HTTP POST request used to send the LTI 1.3 resource link launch message. The `id_token` parameter contains the JWT-encoded JSON object from the previous example. ```http POST https://example.tool.com/videos/f7701643-d79a-468a-ba8e-998f98b71638 Content-Type: application/x-www-form-urlencoded id_token=eyJhbGciOiJIAzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL3BsYXRmb3JtLmV4YW1wbGUub3JnIiwic3ViIjoiYTZkNWM0NDMtMWY1MS00NzgzLWJhMWEtNzY4NmZmZTNiNTRhIiw iYXVkIjpbIjk2MmZhNGQ4LWJjYmYtNDlhMC05NGIyLTJkZTA1YWQyNzRhZiJdLCJleHAiOjE1MTAxODU3MjgsImlhdCI6MTUxMDE4NTIyOCwiYXpwIjoiOTYyZmE0ZDgtYmNiZi0... ``` -------------------------------- ### Custom Parameter Substitution with Empty String Source: https://www.imsglobal.org/spec/lti/v1p3 Example where a supported custom parameter 'xstart' has an empty string value. This indicates that the variable is supported but has no value, such as when a course has no start date. ```json { ... "https://purl.imsglobal.org/spec/lti/claim/custom": { "xstart": "", ... } ... } ``` -------------------------------- ### LTI 1.3 Platform Data Claim Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of the tool platform claim in LTI 1.3, including GUID, contact, name, URL, and version. ```json { "https://purl.imsglobal.org/spec/lti/claim/tool_platform": { "guid": "cen-01/a527c23f-8684-41bb-9292-2b274c229c32", "contact_email": "support@platform.example.edu", "description": "The LMS of Example University", "name": "The LMS of Example University", "url": "https://platform.example.edu", "product_family_code": "ExamplePlatformVendor-Product", "version": "1.0" } } ``` -------------------------------- ### LTI 1.1 Custom Parameter Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of a custom parameter in an LTI 1.1 launch. ```python custom_xstart = "2017-04-21T01:00:00Z" ``` -------------------------------- ### LTI 1.1 LTI Version Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of the LTI version string in LTI 1.1. ```python lti_version = "LTI-1p1" ``` -------------------------------- ### LTI 1.1 Roles Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of a single role string in LTI 1.1. ```python roles = "student" ``` -------------------------------- ### LTI 1.1 Launch Presentation Data Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of launch presentation parameters like target, dimensions, and return URL in LTI 1.1. ```python launch_presentation_document_target = "iframe" launch_presentation_width = "320" launch_presentation_height = "240" launch_presentation_return_url = "https://platform.example.edu/terms/201601/courses/7/sections/1/resources/2" ``` -------------------------------- ### LTI 1.3 LTI Version Claim Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of the LTI version claim in LTI 1.3. ```json { "https://purl.imsglobal.org/spec/lti/claim/version": "1.3.0" } ``` -------------------------------- ### LTI 1.1 Platform Data Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of platform instance identifiers and contact information in LTI 1.1. ```python tool_consumer_instance_guid = "cen-01/a527c23f-8684-41bb-9292-2b274c229c32" tool_consumer_instance_contact_email = "support@platform.example.edu" tool_consumer_instance_description = "The LMS of Example University" tool_consumer_instance_name = "The LMS of Example University" tool_consumer_instance_url = "https://platform.example.edu" tool_consumer_info_version = "1.0" ``` -------------------------------- ### LTI 1.3 Launch Presentation Claim Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of the launch presentation claim in LTI 1.3, including document target, dimensions, and return URL. ```json { "https://purl.imsglobal.org/spec/lti/claim/launch_presentation": { "document_target": "iframe", "height": 320, "width": 240, "return_url": "https://platform.example.edu/terms/201601/courses/7/sections/1/resources/2" } } ``` -------------------------------- ### Launch Presentation Claim Example Source: https://www.imsglobal.org/spec/lti/v1p3 Shows the structure of the optional launch presentation claim, which describes how the message sender expects to host the message receiver's user experience. ```json { ... "https://purl.imsglobal.org/spec/lti/claim/launch_presentation": { "document_target": "iframe", ... "return_url": "https://platform.example.edu/terms/201601/courses/7/sections/1/resources/2" } ... } ``` -------------------------------- ### LTI 1.1 Course Data Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of course-related identifiers and titles in LTI 1.1. ```python context_id = "c1d887f0-a1a3-4bca-ae25-c375edcc131a" context_title = "CPS 435 Learning Analytics" context_label = "CPS 435" context_type = "CourseOffering" ``` -------------------------------- ### LTI 1.1 User ID Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of a user identifier in LTI 1.1. ```python user_id = "4676-8317-719e225aacdd" ``` -------------------------------- ### LTI 1.1 Resource Link Data Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of resource link identifiers and descriptions in LTI 1.1. ```python resource_link_id = "A200d101f2c14" resource_link_description = "Assignment to introduce who you are" resource_link_title = "Introduction Assignment" ``` -------------------------------- ### Resolved Custom Parameter Substitution Source: https://www.imsglobal.org/spec/lti/v1p3 Example of a custom parameter 'xstart' resolved with a date-time value from 'CourseSection.timeFrame.begin'. This occurs when the platform supports the variable and authorizes its access. ```json { ... "https://purl.imsglobal.org/spec/lti/claim/custom": { "xstart": "2017-04-21T01:00:00Z", ... } ... } ``` -------------------------------- ### LTI 1.3 Course Data Claim Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of the course context claim in LTI 1.3, including ID, title, label, and type. ```json { "https://purl.imsglobal.org/spec/lti/claim/context": { "id": "c1d887f0-a1a3-4bca-ae25-c375edcc131a", "title": "CPS 435 Learning Analytics", "label": "CPS 435", "type": ["http://purl.imsglobal.org/vocab/lis/v2/course#CourseOffering"] } } ``` -------------------------------- ### Unresolved Custom Parameter Substitution Source: https://www.imsglobal.org/spec/lti/v1p3 Example of a custom parameter 'xstart' passed unresolved as '$CourseSection.timeframe.begin'. This happens when the platform does not support the variable or has not authorized the tool to access it. ```json { ... "https://purl.imsglobal.org/spec/lti/claim/custom": { "xstart": "$CourseSection.timeframe.begin", ... } ... } ``` -------------------------------- ### LTI 1.1 Authentication Data Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of OAuth 1.0 authentication parameters used in LTI 1.1. ```python oauth_version = "1.0" oauth_nonce = "fc5fdc6d-5dd6-47f4-b2c9-5d1216e9b771" oauth_timestamp = "1510185728" oauth_consumer_key = "12345" oauth_signature_method = "HMAC-SHA1" oauth_callback = "about:blank" oauth_signature = "TPFPK4u3NwmtLt0nDMP1G1zG30U=" ``` -------------------------------- ### LTI 1.3 Roles Claim Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of the roles claim in LTI 1.3, which is an array of role URIs. ```json { "https://purl.imsglobal.org/spec/lti/claim/roles": [ "http://purl.imsglobal.org/vocab/lis/v2/institution/person#Student", "http://purl.imsglobal.org/vocab/lis/v2/membership#Learner", "http://purl.imsglobal.org/vocab/lis/v2/membership#Mentor" ] } ``` -------------------------------- ### LTI Role-Scope Mentor Claims Example Source: https://www.imsglobal.org/spec/lti/v1p3 This snippet illustrates the 'https://purl.imsglobal.org/spec/lti/claim/role_scope_mentor' claim, which contains an array of user IDs that the current user can access as a mentor. The sender must include 'http://purl.imsglobal.org/vocab/lis/v2/membership#Mentor' in the 'roles' claim to send this information. ```json { ... "https://purl.imsglobal.org/spec/lti/claim/role_scope_mentor": [ "fad5fb29-a91c-770-3c110-1e687120efd9", "5d7373de-c76c-e2b-01214-69e487e2bd33", "d779cfd4-bc7b-019-9bf1a-04bf1915d4d0" ] ... } ``` -------------------------------- ### LTI 1.3 LIS Claim Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of the LIS claim in LTI 1.3, including person, course offering, and section sourced IDs. ```json { "https://purl.imsglobal.org/spec/lti/claim/lis": { "person_sourcedid": "example.edu:71ee7e42-f6d2-414a-80db-b69ac2defd4", "course_offering_sourcedid": "example.edu:SI182-F16", "course_section_sourcedid": "example.edu:SI182-001-F16" } } ``` -------------------------------- ### Vendor-Specific Extension Claim Example Source: https://www.imsglobal.org/spec/lti/v1p3 Demonstrates how a vendor can extend the LTI message information model by adding custom claims using fully-qualified URLs as claim names. ```json "http://www.ExamplePlatformVendor.com/session": { "id": "89023sj890dju080" } ``` -------------------------------- ### LTI 1.3 Resource Link Claim Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of the resource link claim in LTI 1.3, including ID, description, and title. ```json { "https://purl.imsglobal.org/spec/lti/claim/resource_link": { "id": "200d101f-2c14-434a-a0f3-57c2a42369fd", "description": "Assignment to introduce who you are", "title": "Introduction Assignment" } } ``` -------------------------------- ### LTI 1.1 LIS Information Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of LIS (Learning Information Services) person sourced ID in LTI 1.1. ```python lis_person_sourcedid = "example.edu:71ee7e42-f6d2-414a-80db-b69ac2defd4" ``` -------------------------------- ### LTI 1.3 Authentication Data (JWT Claims) Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of JWT claims used for authentication in LTI 1.3. ```json { "iss": "https://platform.example.edu", "sub": "a6d5c443-1f51-4783-ba1a-7686ffe3b54a", "aud": ["292832126"], "exp": 1510185728, "iat": 1510185228, "azp": "962fa4d8-bcbf-49a0-94b2-2de05ad274af", "nonce": "fc5fdc6d-5dd6-47f4-b2c9-5d1216e9b771" } ``` -------------------------------- ### LTI 1.3 User Data Claims Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of user-related claims in LTI 1.3, including name, email, and locale. ```json { "name": "Ms Jane Marie Doe", "given_name": "Jane", "family_name": "Doe", "middle_name": "Marie", "picture": "https://platform.example.edu/jane.jpg", "email": "jane@platform.example.edu", "locale": "en-US" } ``` -------------------------------- ### LTI Context Claim Example Source: https://www.imsglobal.org/spec/lti/v1p3 This snippet shows the structure of the 'https://purl.imsglobal.org/spec/lti/claim/context' claim, which provides details about the course or learning environment from which the LTI launch originates. The 'id' is a required, stable identifier for the context. ```json { ... "https://purl.imsglobal.org/spec/lti/claim/context": { "id": "c1d887f0-a1a3-4bca-ae25-c375edcc131a", "label": "CPS 435", "title": "CPS 435 Learning Analytics", "type": ["http://purl.imsglobal.org/vocab/lis/v2/course#CourseOffering"] } ... } ``` -------------------------------- ### LTI Resource Link Claim Example Source: https://www.imsglobal.org/spec/lti/v1p3 Illustrates the structure of the resource link claim, including the required 'id' and optional 'description' and 'title' properties. The 'id' must be a stable, locally unique identifier. ```json { ... "https://purl.imsglobal.org/spec/lti/claim/resource_link": { ... "id": "200d101f-2c14-434a-a0f3-57c2a42369fd", ... } ... } ``` -------------------------------- ### Referencing LTI Link in Organization Section Source: https://www.imsglobal.org/spec/lti/v1p3 An example of how to reference a basic LTI link defined in the resources section from the organization section of the IMS Common Cartridge manifest. The 'identifierref' attribute links to the resource's identifier. ```xml Homework Problems ``` -------------------------------- ### LTI 1.1 Non-Claim User Data Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of user-related data not part of standard claims in LTI 1.1. ```python lis_person_name_full = "Ms Jane Marie Doe" lis_person_name_given = "Jane" lis_person_name_family = "Doe" lis_person_contact_email_primary = "jane@platform.example.edu" user_image = "https://platform.example.edu/jane.jpg" launch_presentation_locale = "en-US" ``` -------------------------------- ### LTI 1.3 Custom Parameter Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of a custom parameter within the claims of an LTI 1.3 resource link request. ```json { "https://purl.imsglobal.org/spec/lti/claim/custom": { "xstart": "2017-04-21T01:00:00Z" } } ``` -------------------------------- ### Full LTI 1.3 Resource Link Launch Request JSON Source: https://www.imsglobal.org/spec/lti/v1p3 This JSON object represents a complete LTI 1.3 resource link launch request. It includes standard JWT claims and LTI-specific claims for roles, context, resource link details, tool platform information, and launch presentation. ```json { "iss": "https://platform.example.edu", "sub": "a6d5c443-1f51-4783-ba1a-7686ffe3b54a", "aud": ["962fa4d8-bcbf-49a0-94b2-2de05ad274af"], "exp": 1510185728, "iat": 1510185228, "azp": "962fa4d8-bcbf-49a0-94b2-2de05ad274af", "nonce": "fc5fdc6d-5dd6-47f4-b2c9-5d1216e9b771", "name": "Ms Jane Marie Doe", "given_name": "Jane", "family_name": "Doe", "middle_name": "Marie", "picture": "https://platform.example.edu/jane.jpg", "email": "jane@platform.example.edu", "locale": "en-US", "https://purl.imsglobal.org/spec/lti/claim/deployment_id": "07940580-b309-415e-a37c-914d387c1150", "https://purl.imsglobal.org/spec/lti/claim/message_type": "LtiResourceLinkRequest", "https://purl.imsglobal.org/spec/lti/claim/version": "1.3.0", "https://purl.imsglobal.org/spec/lti/claim/roles": [ "http://purl.imsglobal.org/vocab/lis/v2/institution/person#Student", "http://purl.imsglobal.org/vocab/lis/v2/membership#Learner", "http://purl.imsglobal.org/vocab/lis/v2/membership#Mentor" ], "https://purl.imsglobal.org/spec/lti/claim/role_scope_mentor": [ "fad5fb29-a91c-770-3c110-1e687120efd9", "5d7373de-c76c-e2b-01214-69e487e2bd33", "d779cfd4-bc7b-019-9bf1a-04bf1915d4d0" ], "https://purl.imsglobal.org/spec/lti/claim/context": { "id": "c1d887f0-a1a3-4bca-ae25-c375edcc131a", "label": "ECON 1010", "title": "Economics as a Social Science", "type": ["http://purl.imsglobal.org/vocab/lis/v2/course#CourseOffering"] }, "https://purl.imsglobal.org/spec/lti/claim/resource_link": { "id": "200d101f-2c14-434a-a0f3-57c2a42369fd", "description": "Assignment to introduce who you are", "title": "Introduction Assignment" }, "https://purl.imsglobal.org/spec/lti/claim/tool_platform": { "guid": "ex/48bbb541-ce55-456e-8b7d-ebc59a38d435", "contact_email": "support@platform.example.edu", "description": "An Example Tool Platform", "name": "Example Tool Platform", "url": "https://platform.example.edu", "product_family_code": "ExamplePlatformVendor-Product", "version": "1.0" }, "https://purl.imsglobal.org/spec/lti/claim/target_link_uri": "https://tool.example.com/lti/48320/ruix8782rs", "https://purl.imsglobal.org/spec/lti/claim/launch_presentation": { "document_target": "iframe", "height": 320, "width": 240, "return_url": "https://platform.example.edu/terms/201601/courses/7/sections/1/resources/2" }, "https://purl.imsglobal.org/spec/lti/claim/custom": { "xstart": "2017-04-21T01:00:00Z", "request_url": "https://tool.com/link/123" }, "https://purl.imsglobal.org/spec/lti/claim/lis": { "person_sourcedid": "example.edu:71ee7e42-f6d2-414a-80db-b69ac2defd4", "course_offering_sourcedid": "example.edu:SI182-F16", "course_section_sourcedid": "example.edu:SI182-001-F16" }, "http://www.ExamplePlatformVendor.com/session": { "id": "89023sj890dju080" } } ``` -------------------------------- ### LTI 1.3 User ID (Subject Claim) Source: https://www.imsglobal.org/spec/lti/v1p3/impl Example of the user identifier within the 'sub' claim in LTI 1.3. ```json { "sub": "4676-8317-719e225aacdd" } ```