LTI Provider: Difference between revisions
Juan Leyva (talk | contribs) |
Juan Leyva (talk | contribs) |
||
(18 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
== Description == | == Description == | ||
=== About IMS LTI === | === About IMS LTI === | ||
According IMS: | According to IMS ([http://www.imsglobal.org]): | ||
''IMS is developing Learning Tools Interoperability (LTI) to allow remote tools and content to be integrated into a Learning Management System (LMS).'' | ''IMS is developing '''Learning Tools Interoperability (LTI)''' to allow remote tools and content to be integrated into a Learning Management System (LMS).'' | ||
=== About this plugin === | === About this plugin === | ||
This is a local plugin for making Moodle | This is a local plugin for making Moodle an LTI provider tool. | ||
It can be | It can be used to provide access to full courses or activities from remote systems (other Moodle installations, Sakai, or any LMS LTI consumer compliant) | ||
Please note that since Moodle 2.2 there is a core activity plugin called "External tool" that is | Please note that since Moodle 2.2 there is a core activity plugin called "External tool" that is an LTI consumer. | ||
=== Why this plugin === | === Why this plugin === | ||
This plugin | This plugin provides remote systems users (LTI consumers) access to Moodle courses or Moodle activities inside a course. | ||
Moodle (version 2.2 and onwards) is a LTI consumer tool. | Moodle (version 2.2 and onwards) is a LTI consumer tool also. | ||
You can use this plugin to share activities and courses between Moodle installations without configuring a Moodle network. | You can use this plugin to share activities and courses between Moodle installations without configuring a Moodle network. | ||
You can also share activities and courses with other LTI consumer tools like Sakai. | |||
You have a detailed view of this plugin possibilities in [http://www.somerandomthoughts.com/blog/2012/01/08/review-lti-provider-for-moodle-2-2/ this post by Gavin Henrik] | |||
== Main feautres == | == Main feautres == | ||
Line 32: | Line 37: | ||
Modify the course or activity page for hiding the header, footer and left or right blocks | Modify the course or activity page for hiding the header, footer and left or right blocks | ||
== Plugin version 2.3 and above features == | |||
=== The plugin settings link is displayed in the settings block, instead the course one === | |||
=== Several new settings to control different features of the plugin: === | |||
- How the user profile is updated | |||
- Default authentication method | |||
- Format of the course shortname, fullname and idnumber (using LTI variables) | |||
- Roles allowed to create new contexts | |||
- Roles allowed to create new resources | |||
=== The remote tool can be opened using the context_id === | |||
The tool can also be opened using the context_id instead the current internal Moodle id | |||
=== Support for context memberships service === | |||
See http://developers.imsglobal.org/ext_membership.html | |||
=== LTI custom parameters to force settings on SSO === | |||
See https://tracker.moodle.org/browse/CONTRIB-4502 | |||
=== Service for context (course) creation, using other courses as template === | |||
Service URL local/ltiprovider/services.php | |||
Custom parameters: | |||
custom_service = create_context | |||
custom_context_template = Moodle idnumber for a course to be used as a template (the course will be duplicate) | |||
The course will be created populating the fullname, shortname and idnumber configured in the plugin settings | |||
=== Service for resources duplication === | |||
Service URL local/ltiprovider/services.php | |||
Custom parameters: | |||
custom_service = duplicate_resource | |||
custom_resource_link_copy_id = Moodle idnumber of the activity to be duplicated in the current context | |||
=== SSO to resources === | |||
If the context resource_link_id matches to an activity idnumber, the user will be redirect to that activity in Moodle | |||
=== Automatic creation of resources (moodle activities) === | |||
If this additional parameter is present in the request custom_resource_link_type (mod_forum, etc...) and also resource_link_title and resource_link_description a new moodle activity will be created | |||
See: https://tracker.moodle.org/browse/CONTRIB-4409 | |||
=== Automatic creation of contexts on SSO === | |||
Two additional request parameters are required: | |||
custom_create_context (0 or 1) | |||
custom_context_template (Moodle course idnumber) | |||
=== Resources duplication on SSO === | |||
Additional parameter required: | |||
custom_resource_link_copy_id = Moodle idnumber of the activity to be duplicated in the current context | |||
== Installing and configuring == | |||
Follow instructions here: http://moodle.org/plugins/pluginversions.php?plugin=local_ltiprovider | |||
'''Important''' If you are using Moodle 2.2 or above, please, be sure that this option: | |||
Home / > Site administration / > Security / > HTTP security Allow frame embedding | |||
Is checked, if you leave this option unchecked your provider site will not be "embedable" via an iframe in other sites. | |||
Once installed, a new link called "LTI Provider" will be displayed in the course navigation block . | |||
In this page, you can add, modify and disable the tools provided in your course. | |||
Please note that you can provide a tool n times with different configurations | |||
There are options for hiding the page header, footer, and left and right blocks and also options for force the Moodle navigation inside a course or activity. | |||
There are also options for assign different roles in the course or activity to the remote users. | |||
Once a tool is added, you will need to use two settings in your consumer tool: | |||
* Shared secret | |||
* Launch URL | |||
Your consumer tool will ask you for a consumer private key, you can use a unique random string (please, do not use the shared secret as the private key) in order to identify your site. | |||
Please, note that the consumer key used by the LTI provider plugin to uniquely identify the consumer site from which users launch into the tool. Usernames are pre-fixed using this identifier so if you are going to use the same Moodle Provider instance to share resources to different consumers you should use a different consumer key for each consumer instance. (The same key can be used for all the resources in the same consumer installation, but not in two different installations). | |||
For a more detailed view of the plugin options see [http://www.somerandomthoughts.com/blog/2012/01/08/review-lti-provider-for-moodle-2-2/ this detailed review of the plugin by Gavin Henrik] | |||
== How it works == | == How it works == | ||
Line 37: | Line 144: | ||
=== User authentication === | === User authentication === | ||
* Users are created automatically in their first access to the system. | * Users are created automatically in their first access to the system. | ||
* Users are created with a hashed username and also with an auth method that | * Users are created with a hashed username and also with an auth method that disables direct login to Moodle. | ||
* Users are | * Users are always enrolled in the course where the activities are located. | ||
You can choose which role has the Learner and the Teacher from the remote system. | You can choose which role has the Learner and the Teacher from the remote system. | ||
Line 54: | Line 161: | ||
A cron job checks periodically activities for sending back grades (overall course grade or activity grade). | A cron job checks periodically activities for sending back grades (overall course grade or activity grade). | ||
= | In order to work correctly, your php.ini settings file needs to have the following setting enabled: | ||
allow_url_fopen = On | |||
== Credits == | == Credits == | ||
Line 68: | Line 173: | ||
== See also == | == See also == | ||
[http://www.somerandomthoughts.com/blog/2012/01/08/review-lti-provider-for-moodle-2-2/ Review: LTI Provider by Gavin Henrik] | |||
[http://moodle.org/plugins/pluginversions.php?plugin=local_ltiprovider Plugin entry] | |||
[https://github.com/jleyva/moodle-local_ltiprovider Github page] | [https://github.com/jleyva/moodle-local_ltiprovider Github page] | ||
[[Category: Contributed code]] | [[Category: Contributed code]] |
Latest revision as of 08:03, 30 April 2015
Description
About IMS LTI
According to IMS ([1]):
IMS is developing Learning Tools Interoperability (LTI) to allow remote tools and content to be integrated into a Learning Management System (LMS).
About this plugin
This is a local plugin for making Moodle an LTI provider tool.
It can be used to provide access to full courses or activities from remote systems (other Moodle installations, Sakai, or any LMS LTI consumer compliant)
Please note that since Moodle 2.2 there is a core activity plugin called "External tool" that is an LTI consumer.
Why this plugin
This plugin provides remote systems users (LTI consumers) access to Moodle courses or Moodle activities inside a course.
Moodle (version 2.2 and onwards) is a LTI consumer tool also.
You can use this plugin to share activities and courses between Moodle installations without configuring a Moodle network.
You can also share activities and courses with other LTI consumer tools like Sakai.
You have a detailed view of this plugin possibilities in this post by Gavin Henrik
Main feautres
Provide access to full courses or single activities.
Change the navigation block of a course or activity for displaying information and links only regarding to your current course.
Send backs course or activity final grades to the LTI consumer tool
Modify the course or activity page for hiding the header, footer and left or right blocks
Plugin version 2.3 and above features
The plugin settings link is displayed in the settings block, instead the course one
Several new settings to control different features of the plugin:
- How the user profile is updated - Default authentication method - Format of the course shortname, fullname and idnumber (using LTI variables) - Roles allowed to create new contexts - Roles allowed to create new resources
The remote tool can be opened using the context_id
The tool can also be opened using the context_id instead the current internal Moodle id
Support for context memberships service
See http://developers.imsglobal.org/ext_membership.html
LTI custom parameters to force settings on SSO
See https://tracker.moodle.org/browse/CONTRIB-4502
Service for context (course) creation, using other courses as template
Service URL local/ltiprovider/services.php
Custom parameters:
custom_service = create_context
custom_context_template = Moodle idnumber for a course to be used as a template (the course will be duplicate)
The course will be created populating the fullname, shortname and idnumber configured in the plugin settings
Service for resources duplication
Service URL local/ltiprovider/services.php
Custom parameters:
custom_service = duplicate_resource
custom_resource_link_copy_id = Moodle idnumber of the activity to be duplicated in the current context
SSO to resources
If the context resource_link_id matches to an activity idnumber, the user will be redirect to that activity in Moodle
Automatic creation of resources (moodle activities)
If this additional parameter is present in the request custom_resource_link_type (mod_forum, etc...) and also resource_link_title and resource_link_description a new moodle activity will be created
See: https://tracker.moodle.org/browse/CONTRIB-4409
Automatic creation of contexts on SSO
Two additional request parameters are required:
custom_create_context (0 or 1)
custom_context_template (Moodle course idnumber)
Resources duplication on SSO
Additional parameter required:
custom_resource_link_copy_id = Moodle idnumber of the activity to be duplicated in the current context
Installing and configuring
Follow instructions here: http://moodle.org/plugins/pluginversions.php?plugin=local_ltiprovider
Important If you are using Moodle 2.2 or above, please, be sure that this option:
Home / > Site administration / > Security / > HTTP security Allow frame embedding
Is checked, if you leave this option unchecked your provider site will not be "embedable" via an iframe in other sites.
Once installed, a new link called "LTI Provider" will be displayed in the course navigation block .
In this page, you can add, modify and disable the tools provided in your course.
Please note that you can provide a tool n times with different configurations
There are options for hiding the page header, footer, and left and right blocks and also options for force the Moodle navigation inside a course or activity.
There are also options for assign different roles in the course or activity to the remote users.
Once a tool is added, you will need to use two settings in your consumer tool:
- Shared secret
- Launch URL
Your consumer tool will ask you for a consumer private key, you can use a unique random string (please, do not use the shared secret as the private key) in order to identify your site.
Please, note that the consumer key used by the LTI provider plugin to uniquely identify the consumer site from which users launch into the tool. Usernames are pre-fixed using this identifier so if you are going to use the same Moodle Provider instance to share resources to different consumers you should use a different consumer key for each consumer instance. (The same key can be used for all the resources in the same consumer installation, but not in two different installations).
For a more detailed view of the plugin options see this detailed review of the plugin by Gavin Henrik
How it works
User authentication
- Users are created automatically in their first access to the system.
- Users are created with a hashed username and also with an auth method that disables direct login to Moodle.
- Users are always enrolled in the course where the activities are located.
You can choose which role has the Learner and the Teacher from the remote system.
There is also settings for setting Users profile default values (email visible, etc...)
If you are going to have courses with local and remote users enrolled, I recommend you to create these new roles:
- External teacher
- External student
Grading
A cron job checks periodically activities for sending back grades (overall course grade or activity grade).
In order to work correctly, your php.ini settings file needs to have the following setting enabled:
allow_url_fopen = On
Credits
Juan Leyva <http://twitter.com/#!/jleyvadelgado>
http://moodle.org/user/profile.php?id=49568