Skip to content
Susan Dreher edited this page Oct 14, 2021 · 28 revisions

in progress

Basics

Overview

Learning Tools Interoperability is a specification developed by IMS Global Learning Consortium. The principal concept of LTI is to establish a standard way of integrating rich learning applications (often remotely hosted and provided through third-party services) with platforms like learning management systems, portals, learning object repositories, or other educational environments. In LTI these learning applications are called Tools (delivered by Tool Providers) and the LMS, or platforms, are called Tool Consumers.

Launch integration

A user logged into a configured LTI consumer can now seamlessly launch and login to a Mediathread course via an embedded module or LMS sidebar link. The user's existing Mediathead account will be looked up via e-mail address. Or, if the user is new to Mediathread, an LMS-specific account will be created via an auto-generated username (based on a hashed LTI consumer key and username). The user will be placed into a Mediathread course based on a configured parameter passed by the LTI consumer.

Extended integration

In the Canvas platform, Mediathread also supports editor button integration to allow item and selection embedding in assignments and discussions.

Installation

For application maintainers: The LMS Consumer authenticates to Mediathread via a shared consumer key and secret. To configure a specific key and secret for your Mediathread instance.

  1. Generate a Consumer Key and Secret. You can enter any combination of letters, numbers or symbols for either of these fields. Note: It's a good idea to choose a distinguishing name for the Consumer Key if you plan on having multiple Consumer Keys.

  2. In the local_settings.py or deploy_specific/settings.py, configure the keys and secret.

PYLTI_CONFIG = {
    'consumers': {
        '_consumer_key_': {
            'secret': '_secret_key_'
        }
    }
}
  1. Configure the optional settings.
# This is the default set of options configured in settings_shared.py
LTI_TOOL_CONFIGURATION = {
    'title': 'Mediathread',
    'description': 'View and filter your Mediathread selections. '
    'A new icon will show up in your course rich editor letting you '
    'search and filter your Mediathread selections and click to '
    'embed selections in your course material.',
    'launch_url': 'lti/',
    'embed_url': 'asset/embed/',
    'embed_icon_url': 'img/icons/icon-16.png',
    'embed_tool_id': 'mediathread',
    'landing_url': '{}://{}/course/lti/{}/'
}

# Optional: Specify domains where teaching assistants
# should assume a Mediathread faculty role
LTI_ELEVATE_TEACHINGASSISTANTS = [
    'www.canvas.domain',
]

Configuring Your LMS

Blackboard

coming soon

Canvas

  1. Login and navigate to your Canvas course.
  2. Click the Settings link on the left-hand sidebar.
  3. Click the Apps tab
  4. Click the View App Configurations button.
  5. Click Add App
  6. In the Add App Dialog
  • Choose Configuration By Url
  • Name: Mediathread
  • Add your generated consumer key and secret
  • Config Url: https://your mediathread domain/lti/config.xml
  • Submit
  • An App Was Added message will appear
  1. A Mediathread link will now be available on the left-hand sidebar. Click the Mediathread link to see a list of available courses. Choose one and click the connect button.

Mediathread configuration is now complete. Students will see the Mediathread link in the left sidebar. And, a Mediathread icon will display in the Canvas composition editor for discussions, assignments and assignment responses. Items and selections can be embedded in any written material.

EdX

coming soon

Architecture

Auth

On any interaction, the LMS will send along an oAuth authentication request. The user is authenticated via a custom Django authentication layer, implemented in auth.py. The following steps occur:

  1. The oAuth request is verified based on session type.

  2. A course is identified by the LTI context_id passed along by the LMS Consumer. The LTICourseContext holds the context and the pointers to two groups: one for all class members and one for faculty. (The LTICourseContext is created during the initial connect step.)

  3. A user is created or retrieved. The code first attempts to find a user by these identifiers:

  • lis_person_sourcedid
  • lis_person_contact_email_primary
  • A hashed username based on oauth_consumer_key and the user_id If the user is not found, a user is created based on the above parameters plus the lis_person_name_full.
  1. The user is added to the Mediathread groups identified by the LTICourseContext.

Launch

Once a user is authenticated, the view is routed appropriately to the requested course. Edx and Moodle both can launch Mediathread in a new page. Canvas is routed to a special "landing page" to force a launch in a new page.