LTI 1.3 / Advantage Tool

External access and result notifications via Learning Tools Interoperability

The Electude LMS can act as a LTI 1.3 Tool which allows users from a LTI 1.3 Platform (typically another LMS) to automatically log in and access content. When a student accesses a module, the results are sent back to the platform via the LTI Assignment and Grade Services v2.0 (AGS). Teachers can select a module or course to use in the platform via LTI Deep Linking v2.0.

For a quick setup in Canvas or Moodle, please see these guides:

1. External access settings

The administrator of the Electude LMS site has to allow external access. The settings are made via the main menu Settings and the submenu External access.

  • Most LTI platforms show content in iframes. To make this work, you have to Allow site in frames.

  • From the drop down list for Direct access select LTI 1.3

  • For Default group new students you can select a group (created by a teacher) in which students are enrolled if the group is not provided in the LTI launch message. If you select none, must be specified in the request and the LTI launch message does not provide a Context or group value in the Custom data, new student accounts will not be created. For more information see 3.4 Group.

  • It is recommended to set Force external access to yes. This prevents users from logging in directly, without LTI. This ensures results are sent back to the platform, because the LTI AGS requires that the user is logged in via LTI.

  • Direct module access determines whether students start the module immediately or see an overview page first, after clicking on a deep link to a specific module. If an overview page is shown, students are able to see the progress bar and other personal statistics of the specified module.

  • The setting Delete result on group change determines whether a student's results are removed when the student switches groups. If enabled, the student's previous module results will be reset upon accessing the module in the new group. However, if the module is reopened within the same group where the results were originally achieved, those results will remain intact.

  • For a quick configuration of some popular LMSes the administrator can choose to use defaults for a 3rd party LMS. If your LMS is not listed, use no specific LMS, no defaults.

  • Fill out the values for the LTI platform. Note that the OAuth2 access token URL is required for AGS.

  • Use the values provided in the LTI tool section to configure the tool in your platform. If your platform supports it you should use a JWK set URL, as this automatically rotates the keys periodically.

1.1. Trouble shooting LTI requests

If an LTI launch or deep linking request fails, the user will get an access denied page. To trouble shoot configuration issues, you can inspect recently failed requests at the bottom of the External access settings page. Clicking on a failed request will show all details of the HTTP request including any error messages that occurred in processing.

2. Result notifications settings

If you have set up a OAuth2 access token URL, in the Result notifications settings automatically LTI Assignment and Grade Services v2.0 is switched on.

You should switch on the types on modules for which you want to receive grades in the platform and have the Electude LMS create line items (typically gradebook columns) in the LTI platform as the results ('grades') as passed.

Alternatively, if you want more fine grained control over what modules to receive grades for, you can choose not to create line items through result notifications and only receive grades for line items that exist. If the line item for the result notification does not exist, the grade will not be passed and the result notification will be discarded. This setting should be used in combination with selecting modules as an LTI Tool with a line item during the deep linking work flow. See the teacher manual for more details on selecting modules as LTI tools.

2.1. Trouble shooting AGS calls

If a result notification cannot be deliverd to the other LMS, it is listed at the bottom of the page as a Deferred result notification.

Clicking on a deferred notification, will attempt a new call to the platform's AGS. Any error messages will be displayed.

3. Request handling

The sections below detail how the Electude LMS handles LTI launch requests.

3.1. Role mapping

In the LTI launch request the platform specifies the role(s) of the user in the roles claim, by applying these rules:

  • If the claim contains one or more of the membership roles listed below, the user will become a teacher in the Electude LMS.
    http://purl.imsglobal.org/vocab/lis/v2/membership#Administrator
    http://purl.imsglobal.org/vocab/lis/v2/membership#ContentDeveloper
    http://purl.imsglobal.org/vocab/lis/v2/membership#Instructor
    http://purl.imsglobal.org/vocab/lis/v2/membership#Manager
    http://purl.imsglobal.org/vocab/lis/v2/membership#Officer
  • If there are other membership roles specified in the request, the user will become a student.
  • If the claim contains no membership roles but does contain one or more of the system or institution roles listed below, the user will become a teacher in the Electude LMS.
    http://purl.imsglobal.org/vocab/lis/v2/system/person#Administrator
    http://purl.imsglobal.org/vocab/lis/v2/system/person#AccountAdmin
    http://purl.imsglobal.org/vocab/lis/v2/system/person#Creator
    http://purl.imsglobal.org/vocab/lis/v2/system/person#SysAdmin
    http://purl.imsglobal.org/vocab/lis/v2/system/person#SysSupport
    http://purl.imsglobal.org/vocab/lis/v2/institution/person#Administrator
    http://purl.imsglobal.org/vocab/lis/v2/institution/person#Faculty
    http://purl.imsglobal.org/vocab/lis/v2/institution/person#Staff
    http://purl.imsglobal.org/vocab/lis/v2/institution/person#Instructor
  • If no role is matched, the user will become a student.

3.2. User identity and anonymous launches

The sub, given_name, family_name and email properties of the user identity claims are used to create a new user account (student or teacher) if it does not yet exist. The sub property is used as the username. If the user already exists, the given_name, family_name and email properties are ignored: the existing account is not updated.

If an account is created and the optional properties given_name, family_name and email are missing in the request, the user will be asked to supply these account details. This can be disabled by the administrator by selecting Users cannot change their account details in the Privacy settings. In that case, the user's first name will be left empty and the surname of the user will be set to the email address. If no valid email property is specified in the request, a default no-reply Electude email address is used. This allows for account pseudonymization.

Anonymous launches are not supported. All launch requests must contain the sub property.

3.3. Language

The user's language is determined by the locale of the OIDC standard claims. If this is not specified, the locale property of the Launch presentation claim is considered.

If the language cannot be determined from the launch request, the current language of the user account is used. If a new account is created, this will default to the Language of the site set by the administrator in the General settings.

Note that sometimes content may not be available in a certain language, because it is not translated. To mitigate this, the administrator can force a single language by setting Other languages to no other languages in the General settings. Then the language specified in the request is ignored as well.

To minimize issues with untranslated content, the Electude LMS returns the selected language in Deep Linking request. If the resulting resource link is followed, this language serves as fallback when the content is not available in the user's language.

3.4. Group

The Default group new students set by the administrator is used as a fallback, if the data below is missing.

Normally the group of the student or teacher is determined by the context claim. The name of the group is the label property of the claim. If there is no label the title property is used instead.

If you want to override the context claim, a group property can be specified in the Custom data claim.

If the group does not exist yet, it will automatically be created.

3.5. Additional custom data

In the LTI launch message these additional custom data are supported:

  • parentgroup
    This value will be used if a group is created. The parent of the new group will be set to the specified parentgroup. If the parent group does not exist, this is ignored.
  • profile
    If a new teacher account is created, the specified profile will be used. If the profile is not found, access will be denied.
  • browse
    If this is set to 1 students will be able to browse modules and are not required to answer questions. Progress, results and time spent are not recorded.