LTI Tool Provider

Component ID

1809350

Component name

LTI Tool Provider

Component type

module

Maintenance status

Development status

Component security advisory coverage

not-covered

Downloads

56825

Component created

Component changed

Component body

Overview

The LTI Tool Provider module (lti_tool_provider) allows a Drupal site to serve as a Learning Tools Interoperability (LTI) Tool in any Learning Management System (LMS) supporting the LTI standard. (http://developers.imsglobal.org/)
Example LTI compliant LMSs are Angel, Blackboard Learn, Moodle and Sakai.

Major Features

  • Configure multiple tool consumers (LMS)
  • Support for consumers which don't identify users
  • Configure user attribute mapping, including optional consumer domain
  • Drupal role mapping
  • Landing page based on custom path with home menu link
  • LTI return menu link
  • Supports setting language based on LTI context
  • Custom launch parameters for landing page path and label
  • lti_tool_provider_og submodule (requires Organic Groups 7.x-2.x)
    • Course (LTI context) to group mapping
    • Group role mapping
    • Landing page on Group home page
    • Custom launch parameters course title
    • Group context negotiation from the LTI context
  • lti_tool_provider_outcomes submodule
    • Supports LTI 1.0 Outcomes extension and LTI 1.1 Outcomes services
    • Each student may have a score for each unique consumer/context/resource set
    • API and rules actions to set/get score
    • Student's score submitted to consumer gradebook when student returns to consumer
    • Instructors may fetch or submit all score for a resource
    • Manual score management views for instructors
  • lti_tool_provider_memberships submodule
    • Supports LTI 1 Context Memberships extension service
    • Membership registered on launch or by Instructor requesting memberships list
    • Management of membership changes
    • Optional removal of users content when dropped from membership

Installation

Note: The dev build is a bit out of date so it is best to checkout from git for now.

  1. Download and place the module in your sites/all/modules or other suitable directory.
  2. Download the module dependencies Libraries
  3. Optionally download Organic Groups 7.x-2.x if you need course/group functionality.
  4. Download the OAuth.php library file https://github.com/juampy72/OAuth-PHP http://oauth.googlecode.com/svn/code/php/OAuth.php and place it in a folder sites/all/libraries/oauth/
    Note: The original googlecode library is incompatible with the oauth pecl php module, use the modified library until the googlecode one is updated.
  5. Enable the LTI Tool Provider module and optionally the LTI Tool Provider OG, LTI Tool Provider Outcomes and LTI Tool Provider Memberships submodules.
  6. The provider must be registered in the consumer and the consumer must be registered in the provider, with a shared key/secret pair.
    1. Configure your consumer at admin/config/lti-tool-provider/lti-tool-consumers.
    2. Configure your provider in the consumer system (LMS) with the same key/secret. For the launch url use the path /lti at your site. http(s)://drupalprovider.example.com/?q=lti or http(s)://drupalprovider.example.com/lti if you have clean urls enabled. See security note below.
  7. Optional: Add the following three lines to the end of your sites settings.php file. See README.txt for the reason why you might need this.
    if (!headers_sent()) {
      header('P3P: CP="We do not have a P3P policy."');
    }

Security Note: LTI uses OAuth which relies on the https protocol for security. Production sites should be configured to support https at least to the https://drupalprovider.example.com/lti path used to launch the tool. http should only be used for testing. Consumers may enforce this requirement.

Development Status

The core functionality as described in Major Features is done and has been tested in Bb, Moodle and the IMS test harness.
Current development efforts are focused on completing the testing of LTI Outcomes and the Context Memberships extension features. These have been developed as submodules.
The current dev release contains the lti_tool_provider module and the lti_tool_provider_og sub-module. Testing of the lti_tool_provider_outcomes and lti_tool_provider_memberships sub-modules will be happening in git and will eventuate with an alpha release containing all these sub-modules. There may be api and database changes between the current dev release and the first alpha.

Documentation

Community Documentation for LTI Tool Provider.
Also see the README.txt.

Presentations

Sponsor

Developed as a project of the Centre for Educational Innovation and Technology (CEIT) at the University of Queensland