Learning Tools Interoperability (LTI)
Learning Tools Interoperability (LTI) is a standard created by the IMS Global Learning Consortium that links content and resources to learning platforms.
Its primary purpose is to connect learning systems such as a learning management system (LMS) with external service tools in a standard way across learning systems. The standard describes the connecting system as an LTI Tool Consumer and the connected tool as an LTI Tool Provider.
For a basic overview of how LTI works, see https://www.imsglobal.org/basic-overview-how-lti-works.
Moodle as an LTI Tool provider
Moodle uses the built in ‘Publish as LTI tool’ enrolment plugin, together with the ‘LTI authentication plugin’, to allow remote users on a different site (known as an LTI consumer) to access selected courses and activities. In other words, moodle functions as an LTI tool provider. Grades are sent back to the remote system.
If your moodle instance is using HTTP (and not HTTPS) you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It’s recommended that you use HTTPS on your moodle instance. See Transitioning to HTTPS
LTI version support
LTI version | Moodle version |
---|---|
LTI v1.0 | Moodle v2.6 |
LTI v1.1 | Moodle v2.6 |
LTI v2.0 | Moodle v2.8 |
LTI v1.3 | Moodle v3.7 |
Setup
Enabling ‘Publish as LTI tool’ at site level
An administrator can enable the ‘Publish as LTI tool’ for use across the site:
- Go to
Site administration > Plugins > Authentication > Manage authentication
and enable ‘LTI’. - Go to
Site administration > Plugins > Enrolments > Manage enrol plugins
and enable ‘Publish as LTI tool’.
It is recommended that the site administration setting ‘Allow frame embedding’ is enabled (in Site Administration > Security > HTTP security
) so that tools are displayed within a frame rather than in a new window.
Sharing access to a course or activity
- Go to the ‘Enrolment methods’ page and add ‘Publish as LTI tool’ as an enrolment method
- In ‘Tool to be published’ select the course or activity to be shared
- Click the ‘Add method’ button
- Go to
Course Administration > Published as LTI tools
page (/enrol/lti/index.php?courseid=n
) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form:.../enrol/lti/...
- You will also need to give the LTI consumer site a consumer key - this can be anything you want.
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS, such as Blackboard. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.
Grading and user synchronization
Grade and user synchronization (if required) are done via the ‘Publish as LTI tool grade sync’ and ‘Publish as LTI tool users sync’ scheduled tasks. This is a Cron task and is by default run every 30 minutes.
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled.
Moodle as an LTI Tool consumer
Setup
- Visit a course.
- Add a LTI activity.
- Use the URL and secret from the LTI provider site
- Enter any consumer key you want. This can be thought of as a username used to authenticate access to the tool. It can be used by the tool provider to uniquely identify the Moodle site from which the users launch into the tool. If you provide the same consumer key in another LTI activity, you will maintain your progress/session in the external resource (reuses the same user).
- If you would like to not show blocks for teachers, you can pass the custom parameter “
force_embed = 1
”. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter. - Log in as a student.
- Visit the course and click on the LTI activity.
- Check the activity displays as expected.
Blackboard as an LTI Tool provider
Blackboard as an LTI Tool consumer
IMS specs support
IMS Spec | Moodle | Canvas | Edu app center (Canvas) | Desire2Learn | Blackboard | Sakai |
---|---|---|---|---|---|---|
Tool consumer | External Tool | External App | App | Link | LTI Tool provider* | Sakai Basic LTI portlet |
Launch URL | Tool URL | Launch URL | n/a | URL | Provider Domain | Remote Tool URL |
Secret | Secret | Secret | Secret | Secret | Tool Provider Secret | Remote tool secret |
Cartridge URL | Tool URL | Paste XML | Configuration URL | n/a | n/a | Tool registration file? |
Proxy URL | Registration URL/Tool URL | LTI 2 Registration URL | n/a | n/a | n/a | - |
LTI versions
LTI 1 actually means a launch URL (which is compatible with LTI 1 or LTI 2 compliant consumers).
LTI 2 actually means a proxy (which is compatible with LTI 2 compliant consumers).
Feature</td> | LTI 1.0</td> | LTI 1.1</td> | LTI 1.2</td> | LTI 2.0</td> | Comment</td> </tr> |
---|---|---|---|---|---|
Basic Launch | X | X | X | X | LTI 2+ greatly reduces requirements for optional data to be carried in every launch. |
Simple Outcomes | X | X | X | Return single numeric value that scores the value of launch activity. | |
Tool Consumer Profile | X | X | TCP is metadata that describes attributes and available services of the Tool Consumer. It's made available by a REST service. | ||
Tool Proxy | X | TP is metadata that describes the negotiated interface contract between a particular ToolConsumer and ToolProvider. | |||
Credential Management | X | Automatic secure exchange of key/secret | |||
Registration Flow | X | LMS Admin initiates new tool provisioning including tool proxy creation and credential management. | |||
Reregistration Flow | LMS Admin initiates an existing tool reprovisioning. | ||||
Model-driven documentation | X | X | Tool-generated, exhaustive, reference documentation generated from UML | ||
REST services | X | X | REST level 3 services for a variety of server-to-server tasks. Note that LTI 1.2 limits REST service implementation to be on ToolConsumer only. |