Hi @ShannonClarke,
Canvas lets you integrate LTI apps in a few different ways:
- Course-level installation: LTI apps can be installed directly into courses. If you're sure that your app will only be used in one course, the app can be installed once and will follow the course to the new cohort when the course is copied. If the course is rebuilt from the ground up frequently, the tool can still be installed into the course.
- Department-level installation: LTI apps can also be installed into a subaccount, making it available to every course in that subaccount. For example, if this is a tool for chemistry students, the tool could be installed into the chemistry department's subaccount. Then, it'd be available to every chemistry course.
- Institution-level installation: Finally, you can install the app for every course in the institution using the school's root account. This will make the tool available in every courses in the school.
Regardless of how the app is deployed, Canvas will still send the same information over, including the user's information and role in the course, the course they launched the tool from, and any other information you tell Canvas to send using LTI Variable Substitution. For example, if the tool is installed in the root account and a teacher in the 2023 CHEM-101 class launches the tool, you'd get something that looks roughly like this:
{
"aud": "123450000000000008",
"azp": "123450000000000008",
"https://purl.imsglobal.org/spec/lti/claim/deployment_id": "66:1e94049cbf884ed89cace905742e7ad2",
"iss": "https://canvas.instructure.com", // Always https://canvas.instructure.com for Canvas
"sub": "d306e191-424e-40d0-afae-dfb6ea583e12", // The ID of the user who launched the tool
"https://purl.imsglobal.org/spec/lti/claim/target_link_uri": "https://course.prod.ally.ac/api/v2/auth/lti/1.3/target",
"https://purl.imsglobal.org/spec/lti/claim/context": {
"id": "2bff1825e50c4cad865bd865d7371aee",
"label": "Demo 101", // The label that shows in the upper lefthand corner of the course
"title": "DEMO-101-01 Canvas Demo Course" // The name of the course
},
"https://purl.imsglobal.org/spec/lti/claim/tool_platform": {
"guid": "8d4f6b29e6094493b9d100469139edf1:canvas-lms",
"name": "Test School",
"version": "cloud",
"product_family_code": "canvas"
},
"https://purl.imsglobal.org/spec/lti/claim/roles": [
"http://purl.imsglobal.org/vocab/lis/v2/institution/person#Administrator", // User is an account administrator for the school (i.e., a Canvas admin)
"http://purl.imsglobal.org/vocab/lis/v2/institution/person#Instructor", // User teaches courses at the school
"http://purl.imsglobal.org/vocab/lis/v2/membership#Instructor", // User is a teacher in this course
"http://purl.imsglobal.org/vocab/lis/v2/system/person#User"
],
"https://www.instructure.com/placement": "course_navigation",
"picture": "https://canvas.example.edu/images/thumbnails/11369252/6dc88f7a1de748cb85a5ef697f19eb3f",
"email": "test@example.edu",
"name": "Test User",
"given_name": "Test",
"family_name": "User",
"https://purl.imsglobal.org/spec/lti-ags/claim/endpoint": {
"scope": [
"https://purl.imsglobal.org/spec/lti-ags/scope/lineitem",
"https://purl.imsglobal.org/spec/lti-ags/scope/lineitem.readonly",
"https://purl.imsglobal.org/spec/lti-ags/scope/result.readonly",
"https://purl.imsglobal.org/spec/lti-ags/scope/score"
],
"lineitems": "https://canvas.example.edu/api/lti/courses/26262/line_items" // For passing grades back to the gradebook
},
"https://purl.imsglobal.org/spec/lti/claim/lis": {
"person_sourcedid": "STUDENT_456123", // The user's SIS User ID
"course_offering_sourcedid": "COURSE_2023-DEMO-101-01" // The course's SIS Course ID
},
"https://purl.imsglobal.org/spec/lti-nrps/claim/namesroleservice": {
"context_memberships_url": "https://canvas.example.edu/api/lti/courses/26262/names_and_roles", // For getting the list of users and their roles in the course
"service_versions": [
"2.0"
]
}
}
I hope this helps!