Skip to content
Susan Dreher edited this page Nov 10, 2015 · 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.

Secrets

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

  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_'
        }
    }
}

The Course

  1. Create your Mediathread course via the /admin/ console. See README
  2. Note the course group name and the course faculty group name.
  3. Get the course LTI context_id for your LMS.
  4. In the Mediathread admin/ area. Create a new LTI Course Context.
  • Choose the course group name and the course faculty group.
  • Specify the LMS course context_id.
  • Click Save.

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 Add App
  5. In the Add App Dialog
  • Choose Configuration By Url
  • Name: Mediathread
  • Add your generated consumer key and secret
  • Config Url: your mediathread domain/lti/config.xml

Mediathread will now be available on the left-hand 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

  1. Login to EdX and access your course.
  2. In the top menu, click Settings > Advanced Settings
  3. In the Advanced Module List, verify or add: "lti" to the array
  4. In the LTI Passports section, add: "lti_mediathread:_consumer_key:_secret_key",
  5. Return to the main course page.
  6. In a existing or new unit, choose to add a new component > advanced > LTI.
  7. Click Edit and configure the Mediathread interaction.

The Mediathread component should now be configured. When you click Launch, EdX will launch Mediathread in a new tab, log the user in and navigate them to their course.

Moodle

coming soon

Architecture & Implementation

The Mediathread LTI provider implementation relies on the PyLTI library, a python implementation of the LTI standard. The lti interaction is a Django port of the MIT LTI Flask Sample.

Authentication

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's group and faculty group is identified via the LTICourseContext and the LTI context_id passed by the LMS consumer.

  3. A user is created or retrieved. The code first attempts to match the user up by e-mail address. If that fails, an LTI-only username is concocted based on the oauth_consumer_key and the user_id passed by the LMS consumer. This username is matched with an existing User (i.e. a return visit) or newly created.

  4. The user is added to the groups identified by the LTICourseContext.

Launch

Once a user is authenticated, the view is routed appropriately. 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.

Issues, Notes, ToDo

  • Verify interaction via HTTPS
  • Video annotations are not queued up correctly. ("seek" is missing)