Search code examples
canvaslti

Canvas LTI 1.3 mixin roles


I have the following scenario with Canvas and my LTI 1.3 tool. I have a course X and I assigned a Canvas teacher into the course as student .When the user open the tool, the LTI payload contain both roles in the LTI role claim ( teacher + student) but it also assigned the role to the other courses. Shouldn't Canvas assign the role per course instead of assign it globally for the user ?

Shouldn't Canvas assign one role instead of mixing them ? Asking because based on this scenario the tool is not able to determine when the user have an specific role for an specific course.


Solution

  • Canvas sends you a set of LTI roles but only the membership roles are based on the Course context. https://www.imsglobal.org/spec/lti/v1p3#lis-membership-variables.

    {
     "https://purl.imsglobal.org/spec/lti/claim/roles":[
        "http://purl.imsglobal.org/vocab/lis/v2/institution/person#Administrator"
        "http://purl.imsglobal.org/vocab/lis/v2/institution/person#Instructor"
        "http://purl.imsglobal.org/vocab/lis/v2/institution/person#Student"
        "http://purl.imsglobal.org/vocab/lis/v2/membership#Instructor"
        "http://purl.imsglobal.org/vocab/lis/v2/system/person#User"
     ]
    }
    

    In the previous example, the user is a Teacher/Instructor based on his membership role