Review: LTI Provider for Moodle 2.2

Today’s plugin for review is the hotly anticipated and very recently released LTI Provider plugin.


Recently I had done a post on the LTI capabilities of Moodle 2.2. This provided an IMS LTI tool ability which enabled a Moodle site to connect to an IMS LTI capable external application/system such as Noteflight and . However, one aspect that wasn’t covered was the ability of Moodle 2 to be an IMS Provider (a tool) itself. We didn’t have to wait long for someone in the community to fill in the gap – Enter Juan Leyva, a very active developer in the Moodle sphere from Spain. Currently there are six plugins in the plugin database with Juan as a contributor/author including the popular Configurable Reports.

The first version of the LTI Provider module was released on Jan 2nd 2012, with some bug fixes released four days later.

What does it do?

This is a local plugin. It enables Moodle to provide access to an activity or a full course from other systems (either Moodle 2.2+ sites using the External Tool capability, or Sakai and other LTI compliant systems which can connect to LTI tools/providers).

Just to be clear on the language:

The LTI Provider  is an application which provides features that other people want to and can connect to from their own LMS.

The LTI Consumer is an application which can connect to the 3rd party Provider system to avail of the features it has.

So with Moodle 2.2, it has the LTI consumer activity called External Tool

With this plugin, Moodle 2 has now gained the LTI provider aspect too.

So what are the basics of the LTI provider application?

  • Firstly, it provides a single sign on so that users do not have to re-register on the LTI Provider platform – this happens automatically.
  • Secondly it sends back course or activity grades to the consumer system.

This application also provides a few other features which are more Moodle related

  • The option to provide access to a single activity or a full course
  • The ability to modify the page for hiding headers, footer, and right/left blocks
  • The ability to change the navigation block of a course or activity for showing just links related to the activity/course in question.

UPDATED ** 29th Jan 2012

This module also now has Settings for

  • Enrolment duration
  • Enrolment start and end dates
  • Enrolments quota
  • Support for Moodle 2.2 allowframembedding option

Is it simple to install?

Most people will not have installed a local plugin before, however it is really just as simple as a normal mod or block. This was easy to install. I downloaded the plugin directly from the Moodle Plugins. After downloading the zip, and unzipped it there was a folder called ltiprovider. I uploaded this into the moodle/local folder of my Moodle site. When logging in as admin to the site I was prompted to upgrade to install the module. It installed and produced no errors. There was no global settings so that was that all it needed.

The source code is managed on Github and you can browse the code if you need.

Is there documentation for it?

The plugins page gave a good overview on the plugin. There is also a detailed Moodle Docs page which provided details on the local plugin, installation, configuration and information on how it works and grading. It also provided some details on the future versions of the plugin. There is a forum thread about the module where help queries should be posted too.

The README.txt in the zip provides an overview on the functionality too

Is it easy for the teacher/admin to use?

When you go into a course, the navigation block will have another link to the LTI Provider. This brings you to the management page for the tools you enable.

LTI Provider Settings

LTI Provider Settings

So under Tool settings you can choose

  • which tool to provide: course or a specific activity
  • whether to send grades back
  • whether to force/override the navigation

There are also advanced options to map roles of teacher, student on course and activity.

Under the Remote system the two options which are there are

  • Shared secret (which you provide to the IMS LTI Consumer application
  • Remote System Encoding

There are no advanced options in this section.

In the User Default values section, this is related to the dynamic creation of users.

You can set two basic settings

  • Email display
  • City/Town name

Under advanced you can also set:

  • Country
  • Timezone
  • Preferred Language
  • Institution

Lastly, and not least, the settings in the Layout and CSS are very useful

  • you can hide the page header
  • you can hide the page footer

Under advanced you can

  • hide left blocks
  • hide  right blocks
  • add some custom CSS

Once submitted it provides you a table of the

  • Tool Name
  • Shared Secret
  • Launch URL
  • Edit options

Once it was configured that was it. The other site or application (Moodle 2.2 in my case) just needed the two key bits of information:

  • Shared Secret
  • Launch URL

So I went over to my main test site for 2.2 and created an External Tool entry in a course using the Launch URL and putting the Shared secret in both the Consumer Key and Shared Secret fields, for clarity I also set the tool to open in a New Window. Once added, I clicked on it and it just worked.

So how does it work?

The user is auto-created with a username beginning with ltiprovider……. with nologin as their authentication method, so that they cannot log in to the tool site except through the LTI Provider/Consumer relationship. Very nice!

UPDATED ** 29th Jan 2012

The new enrolment options in the Jan 29th release enables a but better level of control for use of the Provider tool.

If you want to let just ten people from another institution access the course, you can now control how many use the LTI Provider tool.

If you are running a course for a set period, the LTI Provider now has the option to provide a date range for access so that people are not accessing it before it begins and after it is finished.

These are great use cases for training companies and collaborative academic courses too.

Is it easy for the learner/student to use?

For a student, yes, so very easy to use. I logged in as a student into my main site and clicked on the link in the course and it brought the user to the other site, auto-logged in able to view the course.

Does it do what it promises?

Yes. For the first version of the code this is an exciting piece of work. This moves the IMS LTI support within Moodle forward significantly and opens the door for real course sharing and collaboration across multiple LMS.

A course ran on a Moodle site in Australia could have students from classes in many other institutions all collaborating together in the one area. Just using the IMS provider and the built-in External Tool, not having to handle user lists, or authentication or enrolment. The potential is just huge.

But equally, this really does open up easier content selling as a SaaS too. A training company sets up their course in Moodle. When they sell access to a company for it, they provide the URL and Secret and it all just works after that.

An interesting start, this is a plugin to keep an eye on.

Note –

Initially I could not find the link in the Navigation block in the course. This was because I choose to use only Categories and Courses showing on the Navigation block settings (Option under Generate navigation for the following)  so if you restrict the block in the same way, you will need to undo it and set to view more than that.

Since the restricted option still shows Participants and Reports links in navigation block perhaps Juan will change this to also include the LTI provider link at this level rather than requiring showing structure and activities.

Stars: 4 out of 5 stars for this plugin

**Standard Reminder**

These reviews check out the plugin for usability not for security. If you are considering installing any module on your site you should also check that is secure and does not impact the server performance.


Creative Commons Licence
This work by Gavin Henrick is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

This entry was posted in Moodle and tagged , , , , . Bookmark the permalink.

13 Responses to Review: LTI Provider for Moodle 2.2

  1. Hi Gavin,
    Thanks for the review – this combined with Charles Severance’s video at

    give a neat overview of how the new plugin works.
    One thing I am still struggling with though is the potential for separation of content/activities from the presentation layer in this scenario. By the looks of it, an LTI provider can’t abstract out just the functionality and present this using (for example) the stylesheet components of the requesting system – meaning that (as in Chuck’s example) unless the two systems are themed in a very similar style then it will always look like two very different systems with an SSO capability rather than one unified learning environment. Is this necessarily a bad thing? Not sure – its just some ‘thinking out loud’ at this stage after my first look 🙂
    Thanks again,

  2. ghenrick says:

    Hi Mark,

    Thanks for the feedback.

    Think of it as a remote-scorm like experience.

    Scorm packages are themed independently of the LMS they are in, and this will be the case for LTI, except that:

    If you are the person to use the Provider, you can give the person who is configuring the provider some CSS to make it more like yours….

    It is a start and could longterm be even easier…


  3. Pingback: Developer Profile: Juan Leyva | Some Random Thoughts

  4. Very nice. Last year we had to write our own Basic LTI tool provider code (for Moodle 1.9) when we wanted to integrate it (with SSO) from our portal product and LMS. Now it seems we won’t have to support our own one-off. More sleep … good …

    But one issue we might have is the insistence of the plugin to create new accounts with the “ltiprovider” prefix and the requirement for the nologin setting. In the real world the Moodle system may already exist with users, and integration between it and another (consumer) system (e.g. the school’s portal or SIS) may need to reuse those same user accounts. That’s where some sort of provisioning logic (bulk upload) comes into play. It is often easy to get the usernames to align for an initial integration of existing accounts. Based on matching values of the username column a bulk upload/update can populate the usually spare idnumber field with some consumer-side unique value for each user, e.g. a student ID or per-user GUID from the consumer database, and this field can be used to establish user identity between the systems from then on. If the usernames are unaligned then if the numbers are not too large one can look for matches on emails, names, and so on, and simply require a manual process for the accounts that just cannot be paired up with confidence in any algorithmic way. True, it’s a pain in the neck sometimes, but some schools may not be able to forego establishing the identity of existing Moodle users and users in the consumer system.

    Also, the ability to directly log in to Moodle other than through LTI is important for all sorts of reasons. Simple case is where one user emails or otherwise publishes a direct link to a resource inside Moodle. I think Moodle users should be able to use the link, hitting the login screen en route if need be. It is not always possible or easy to publish links to locations inside the consumer where the LTI link exists to get to the Moodle page. So I would say that if the users can authenticate in the consumer system (using LDAP, say) and occasionally choose to go directly to Moodle they should be able to do so. Of course this presupposes that the LTI plugin is not going to generate new accounts for the users.


  5. ghenrick says:

    There are so many possible use cases, no method can handle them all.

    Personally, I think that having it as accounts, but isolated in name and authentication option (nologin) is actually a really strong point for people who do not want to have to manage accounts.

    They don’t want them to have normal moodle login access just to that course.

    They are just providing controlled bulk access time or numeric based to a class, or group of people who hae their own LMS and can connect using IMS LTI.

    The type of integration you are suggesting, is probably more suited to an authentication plugin providing SSO rather than IMS LTI no?


  6. Well, we did provide an authentication plugin and SSO, but we used LTI inside the loginhook_page method of the authentication plugin. This enabled a deep link from the portal into the specific Moodle course, so we definitely needed the “launch” logic of LTI as opposed to the “pure authentication” nature of, say, SAML.
    I am wondering if you might consider a configuration setting that says “don’t create new user accounts but instead match this user (in the LTI launch parameters) with the Moodle user whose XYZ field is the same”. XYZ might be idnumber (e.g. if a bulk upload has been run to fill in that column before turning on this plugin, as we would do), or it might just be username, which is the case for most of our customers integrating our portal and Moodle. The point is: let the school decide this one way or the other. It would not be your responsibility to provide the utility to populate the selected column, of course.

  7. Pingback: Moodle is 10 years old – some Moodle-y Lists of 10 | Some Random Thoughts

  8. Mark says:

    I agree with Alan Z. I would very much like to see a capability like “a configuration setting that says “don’t create new user accounts but instead match this user (in the LTI launch parameters) with the Moodle user whose XYZ field is the same”. ”

    This would be very handy for Moodle and another system, both sharing the same authoritative credential source ( e.g. ldap ) to work together. And example would be Moodle and a Virtual Lab system where the virtual lab system would be able to use moodle for quizzes.

  9. Marc Matthes says:

    Is there a way to restrict users from accessing the LTI tool link in a Moodle course either by roles or some other way? we are using moodle 2.2.1.

    • ghenrick says:

      From the Eternal Tool side – you can use groupings & groups to only provide access to the activity to some people.

      Or you could use a role overview to remove some roles ability to click it in that course.

  10. Brendan L. says:

    Thanks for the great discussion here. I’m looking to use Moodle as LTI provider and WordPress as consumer. I’ve seen WP plugins:

    * Simon Booth’s “LTI Connector for WordPress” ( and
    * the Open University of Catalonia’s “LTI for WordPress” (

    I didn’t notice these or other relevant LTI plugins offered on the WP site. Any suggestion as to which would best implement my desired set-up? (Perhaps one not listed here?)

    Vermont State College system

    • ghenrick says:


      What are you trying to achieve?

      The way these work is that Moodle connects “out” to them, so students within Moodle can connect to them to provide the blogging feature.

      Is this what you are trying to do?

      If you are hoping to connect to a Moodle course from WordPress via LTI, I have not seen/ tested a plugin that enables that yet.



      • Brendan L. says:

        That is basically what I’m trying to do, actually.

        If my students have authenticated through our college Moodle, though, shouldn’t I (somehow) be able to create, say, a WordPress page containing course content and also – in iframes – interspersed quizzes or other activities from Moodle? I hoped that the block-hiding and header/footer-hiding features of the plugin would help render the iframed content less busily inside the iframe on the WP page.

        Or perhaps I don’t understand yet what it means to say Moodle is “the LTI provider.” According to the plugin page, this plugin can be used “to provide access to full courses or activities from remote systems” (like an suitably enabled WordPress).

        No? 🙁

Comments are closed.