<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/500/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jaked</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/500/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jaked"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/Special:Contributions/Jaked"/>
	<updated>2026-04-19T02:08:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=LTI_Moodle_to_Moodle&amp;diff=148033</id>
		<title>LTI Moodle to Moodle</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=LTI_Moodle_to_Moodle&amp;diff=148033"/>
		<updated>2024-03-12T09:18:44Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Moodle to Moodle LTI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Moodle to Moodle LTI==&lt;br /&gt;
&lt;br /&gt;
This document focusses on connecting Two instances of Moodle 4.3 or later via LTI1.3 (Advantage). For more general details of Moodle&#039;s LTI tool setup, see&lt;br /&gt;
[[Publish as LTI tool]]. For details on the platform setup, see [[LTI External tools]].&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage==&lt;br /&gt;
This document will focus on LTI Advantage, which is described here https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
And covers Assignment and Grade Services, Names and Role provisioning and Deep Linking.&lt;br /&gt;
Term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool.  So where you see Platform think “Consumer” and where you see Tool you can think “Provider”&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
#Go to Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication and enable LTI (admin/settings.php?section=manageauths)&lt;br /&gt;
#Go to Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins and enable &#039;Publish as LTI tool&#039; (/admin/settings.php?section=manageenrols)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. (/admin/search.php?query=allowframembedding)&lt;br /&gt;
Configure Moodle as the Tool&lt;br /&gt;
Registration between Tool (producer) and Platform (consumer)  is essentially a security contract between those two systems.&lt;br /&gt;
Dynamic registration automates the exchange of the relevant URLs and IDs. &lt;br /&gt;
&lt;br /&gt;
As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot; (/admin/settings.php?section=enrolsettingslti_registrations)&lt;br /&gt;
Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==Configure Moodle as the Platform==&lt;br /&gt;
&lt;br /&gt;
On the Platform (consumer) as an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot; (/mod/lti/toolconfigure.php)&lt;br /&gt;
Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Once complete, platform details and an associated deployment id will have been automatically added to the registration in the Moodle tool. To see this, go to&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;.  (/admin/settings.php?section=enrolsettingslti_registrations)&lt;br /&gt;
&lt;br /&gt;
You&#039;ll see the updated registration listed as &amp;quot;Active&amp;quot;. Clicking the &amp;quot;View platform details&amp;quot; action will display the relevant platform information, while the &amp;quot;Manage deployments&amp;quot; action will allow you to add or remove deployments. No changes to either of these sections are required, however. &lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
&lt;br /&gt;
On the Moodle tool (provider), from the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
Enable grade and user sync for the resource, if required&lt;br /&gt;
Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow. &lt;br /&gt;
&lt;br /&gt;
Note: The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled.&lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &lt;br /&gt;
&lt;br /&gt;
* Student first launch provisioning mode &lt;br /&gt;
* Teacher first launch provisioning mode &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently, accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site.&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
&lt;br /&gt;
===Mixed protocol limitations===&lt;br /&gt;
&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS) you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See Transitioning to HTTPS.&lt;br /&gt;
&lt;br /&gt;
===A required parameter (oauth_consumer_key) was missing===&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
===User has free access to the entire site, isn&#039;t contained to the course===&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable Allow frame embedding in Site Administration &amp;gt; Security &amp;gt; HTTP Security and, on the consumer site LTI tool settings, add force_embed=1 in the custom parameters settings.&lt;br /&gt;
&lt;br /&gt;
===Invalid request===&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that deep linking is enabled in the tool consumer.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
Please post in the LTI and Moodle forum on moodle.org&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=LTI_Moodle_to_Moodle&amp;diff=148032</id>
		<title>LTI Moodle to Moodle</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=LTI_Moodle_to_Moodle&amp;diff=148032"/>
		<updated>2024-03-12T09:16:25Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Configure Moodle as the Platform */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Moodle to Moodle LTI==&lt;br /&gt;
&lt;br /&gt;
This document focusses on connecting Two instances of Moodle 4.3 or later via LTI1.3 (Advantage). For more general details of LTI see&lt;br /&gt;
[[Publish as LTI tool]]&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage==&lt;br /&gt;
This document will focus on LTI Advantage, which is described here https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
And covers Assignment and Grade Services, Names and Role provisioning and Deep Linking.&lt;br /&gt;
Term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool.  So where you see Platform think “Consumer” and where you see Tool you can think “Provider”&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
#Go to Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication and enable LTI (admin/settings.php?section=manageauths)&lt;br /&gt;
#Go to Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins and enable &#039;Publish as LTI tool&#039; (/admin/settings.php?section=manageenrols)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. (/admin/search.php?query=allowframembedding)&lt;br /&gt;
Configure Moodle as the Tool&lt;br /&gt;
Registration between Tool (producer) and Platform (consumer)  is essentially a security contract between those two systems.&lt;br /&gt;
Dynamic registration automates the exchange of the relevant URLs and IDs. &lt;br /&gt;
&lt;br /&gt;
As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot; (/admin/settings.php?section=enrolsettingslti_registrations)&lt;br /&gt;
Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
&lt;br /&gt;
==Configure Moodle as the Platform==&lt;br /&gt;
&lt;br /&gt;
On the Platform (consumer) as an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot; (/mod/lti/toolconfigure.php)&lt;br /&gt;
Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Once complete, platform details and an associated deployment id will have been automatically added to the registration in the Moodle tool. To see this, go to&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;.  (/admin/settings.php?section=enrolsettingslti_registrations)&lt;br /&gt;
&lt;br /&gt;
You&#039;ll see the updated registration listed as &amp;quot;Active&amp;quot;. Clicking the &amp;quot;View platform details&amp;quot; action will display the relevant platform information, while the &amp;quot;Manage deployments&amp;quot; action will allow you to add or remove deployments. No changes to either of these sections are required, however. &lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
&lt;br /&gt;
On the Moodle tool (provider), from the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
Enable grade and user sync for the resource, if required&lt;br /&gt;
Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow. &lt;br /&gt;
&lt;br /&gt;
Note: The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled.&lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &lt;br /&gt;
&lt;br /&gt;
* Student first launch provisioning mode &lt;br /&gt;
* Teacher first launch provisioning mode &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently, accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site.&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
&lt;br /&gt;
===Mixed protocol limitations===&lt;br /&gt;
&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS) you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See Transitioning to HTTPS.&lt;br /&gt;
&lt;br /&gt;
===A required parameter (oauth_consumer_key) was missing===&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
===User has free access to the entire site, isn&#039;t contained to the course===&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable Allow frame embedding in Site Administration &amp;gt; Security &amp;gt; HTTP Security and, on the consumer site LTI tool settings, add force_embed=1 in the custom parameters settings.&lt;br /&gt;
&lt;br /&gt;
===Invalid request===&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that deep linking is enabled in the tool consumer.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
Please post in the LTI and Moodle forum on moodle.org&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Share_to_MoodleNet&amp;diff=146035</id>
		<title>Share to MoodleNet</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Share_to_MoodleNet&amp;diff=146035"/>
		<updated>2023-04-28T02:43:17Z</updated>

		<summary type="html">&lt;p&gt;Jaked: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://moodle.net/ MoodleNet] is an open, social, media platform for educators, initially focused on sharing and curating collections of open content. It is a central place from where educators can easily detect quality content to meet the needs of their learners and courses. You can either use MoodleNet Central, the global public MoodleNet, or install your own instance of MoodleNet. Read the [https://docs.moodle.org/moodlenet/Main_Page MoodleNet documentation] for more information about MoodleNet.&lt;br /&gt;
==MoodleNet inbound settings==&lt;br /&gt;
As an administrator you can connect to an instance of MoodleNet so course teachers can browse for and import content.&lt;br /&gt;
&lt;br /&gt;
# From &#039;&#039;Site administration &amp;gt; Advanced features,&#039;&#039; make sure Enable MoodleNet integration (inbound) is checked. (It is enabled by default.)&lt;br /&gt;
# From &#039;&#039;Site administration &amp;gt; General &amp;gt; MoodleNet settings&#039;&#039;, check the settings in the link MoodleNet inbound settings.&lt;br /&gt;
# Optionally, from Site administration &amp;gt; Courses &amp;gt; Activity chooser &amp;gt; Activity chooser settings, select MoodleNet from the footer dropdown. This will then display a link in the [[Activity chooser]].&lt;br /&gt;
&lt;br /&gt;
==MoodleNet outbound settings==&lt;br /&gt;
{{New features}}&lt;br /&gt;
As an administrator you can connect to an instance of MoodleNet so that course teachers or others with the capability [[Capabilities/moodle/moodlenet:shareactivity| moodlenet:shareactivity]] can send course content to the selected MoodleNet site. (Note that the feature does not currently support sharing whole courses.)&lt;br /&gt;
&lt;br /&gt;
# From &#039;&#039;Site administration &amp;gt; Development &amp;gt; Experimental settings&#039;&#039;, check the box Enable sharing to MoodleNet (outbound)&lt;br /&gt;
# You will then have an extra setting (Enable sharing to MoodleNet (outbound)) from &#039;&#039;Site administration &amp;gt; General &amp;gt; MoodleNet settings&#039;&#039;, prompting you to set up a MoodleNet OAuth 2 service.&lt;br /&gt;
# From &#039;&#039;Site administration &amp;gt; Server &amp;gt; OAuth2 services&#039;&#039;, click the MoodleNet button and set up your service. See [[OAuth 2 MoodleNet service]].&lt;br /&gt;
# Once the service is created, go to &#039;&#039;Site administration &amp;gt; General &amp;gt; MoodleNet outbound settings&#039;&#039; and set the OAuth 2 service to the service you just created.&lt;br /&gt;
# When everything is configured correctly, users with the Capabilities/moodle/moodlenet:shareactivity will see a link &amp;quot;Share to MoodleNet&amp;quot; from the More tab of an item they want to share.&lt;br /&gt;
&lt;br /&gt;
[[File:ShareMoodleNet.png|More link to share to MoodleNet]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=OAuth_2_MoodleNet_service&amp;diff=146034</id>
		<title>OAuth 2 MoodleNet service</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=OAuth_2_MoodleNet_service&amp;diff=146034"/>
		<updated>2023-04-28T02:39:11Z</updated>

		<summary type="html">&lt;p&gt;Jaked: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OAuth2}}&lt;br /&gt;
==Features requiring the MoodleNet OAuth 2 service==&lt;br /&gt;
&lt;br /&gt;
You will need to set up a MoodleNet OAuth 2 service in order to use the following features:&lt;br /&gt;
&lt;br /&gt;
* [[MoodleNet]] (Only the outbound &amp;quot;Share to MoodleNet&amp;quot; feature, not the inbound features)&lt;br /&gt;
&lt;br /&gt;
==MoodleNet OAuth 2 service setup==&lt;br /&gt;
&lt;br /&gt;
Note: Currently, only MoodleNet central ([https://moodle.net/ MoodleNet]) supports the share API. The OAuth 2 service template is preset to support configuration of this MoodleNet central application. &lt;br /&gt;
&lt;br /&gt;
To set up the service in Moodle:&lt;br /&gt;
&lt;br /&gt;
1. Go to OAuth 2 services (Site administration &amp;gt; Server &amp;gt; OAuth 2 services) and create a new MoodleNet service.&lt;br /&gt;
&lt;br /&gt;
2. The service configuration form is now shown. Note the Service base URL is preset to MoodleNet central. You may change the name of the service here if you wish, however, please leave other fields unchanged.&lt;br /&gt;
&lt;br /&gt;
3. Save the changes.&lt;br /&gt;
&lt;br /&gt;
4. The service will now auto-configure itself and Moodle will redirect to the services listing. If you see a green tick in the &amp;quot;Discovery&amp;quot; column, your newly created service is ready for use.&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143182</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143182"/>
		<updated>2022-04-04T04:04:15Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Manual registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
Regardless of the registration method, the first step is always to create a platform registration via Site administration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:registration tool details.png|thumb|Once the registration has been created, the endpoint URLs used for either dynamic or manual registration can be accessed via the &amp;quot;Tool details&amp;quot; tab.]]&lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
[[File:registration completed active.png|thumb|Completed registrations are denoted by an &amp;quot;Active&amp;quot; status in the registrations listing. From here, administrators can view tool endpoints or edit platform details or deployments via the respective registration actions.]]&lt;br /&gt;
Once complete, platform details and an associated deployment id will have been automatically added to the registration in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. You&#039;ll see the updated registration listed as &amp;quot;Active&amp;quot;. Clicking the &amp;quot;View platform details&amp;quot; action will display the relevant platform information, while the &amp;quot;Manage deployments&amp;quot; action will allow you to add or remove deployments. No changes to either of these sections are required, however.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the Moodle tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# You&#039;ll see a &amp;quot;Tool details&amp;quot; tab. Leave this browser window open.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
Now, in the platform (the exact setup is platform dependent but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# If you have the registration open still, simply click the &amp;quot;Platform details&amp;quot; tab. If not, from the registration table, click the &amp;quot;View platform details&amp;quot; action. You&#039;ll see a table listing the various platform endpoints and identifiers.&lt;br /&gt;
# Click &amp;quot;Edit platform details&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Save&lt;br /&gt;
# Next, select the &amp;quot;Deployments&amp;quot; tab&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete. Click the &amp;quot;Back&amp;quot; button or navigate to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;, where you will now see the registration listed as &amp;quot;Active&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143181</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143181"/>
		<updated>2022-04-04T04:02:38Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Dynamic Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
Regardless of the registration method, the first step is always to create a platform registration via Site administration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:registration tool details.png|thumb|Once the registration has been created, the endpoint URLs used for either dynamic or manual registration can be accessed via the &amp;quot;Tool details&amp;quot; tab.]]&lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
[[File:registration completed active.png|thumb|Completed registrations are denoted by an &amp;quot;Active&amp;quot; status in the registrations listing. From here, administrators can view tool endpoints or edit platform details or deployments via the respective registration actions.]]&lt;br /&gt;
Once complete, platform details and an associated deployment id will have been automatically added to the registration in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. You&#039;ll see the updated registration listed as &amp;quot;Active&amp;quot;. Clicking the &amp;quot;View platform details&amp;quot; action will display the relevant platform information, while the &amp;quot;Manage deployments&amp;quot; action will allow you to add or remove deployments. No changes to either of these sections are required, however.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the Moodle tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# You&#039;ll see a &amp;quot;Tool details&amp;quot; tab. Leave this browser window open.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
Now, in the platform (the exact setup is platform dependent but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# If you have the registration open still, simply click the &amp;quot;Platform details&amp;quot; tab. If not, from the registration table, click the &amp;quot;View platform details&amp;quot; action.&lt;br /&gt;
# Click &amp;quot;Edit platform details&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Save&lt;br /&gt;
# Next, select the &amp;quot;Deployments&amp;quot; tab&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete. Click the &amp;quot;Back&amp;quot; button or navigate to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;, where you will now see the registration listed as &amp;quot;Active&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143180</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143180"/>
		<updated>2022-04-04T04:01:05Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Dynamic Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
Regardless of the registration method, the first step is always to create a platform registration via Site administration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:registration tool details.png|thumb|Once the registration has been created, the endpoint URLs used for either dynamic or manual registration can be accessed via the &amp;quot;Tool details&amp;quot; tab.]]&lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
[[File:registration completed active.png|thumb|Completed registrations are denoted by an &amp;quot;Active&amp;quot; status in the registrations listing. From here, administrators can view tool endpoints or edit platform details or deployments via the respective registration actions.]]&lt;br /&gt;
Once complete, platform details and an associated deployment id will have been autoamtically added to the registration in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. You&#039;ll see the updated registration listed as &amp;quot;Active&amp;quot;. Clicking the &amp;quot;Platform details&amp;quot; action will display the relevant platform information, while the &amp;quot;Deployments&amp;quot; action will list the deployments. No changes to either of these sections are required, however.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the Moodle tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# You&#039;ll see a &amp;quot;Tool details&amp;quot; tab. Leave this browser window open.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
Now, in the platform (the exact setup is platform dependent but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# If you have the registration open still, simply click the &amp;quot;Platform details&amp;quot; tab. If not, from the registration table, click the &amp;quot;View platform details&amp;quot; action.&lt;br /&gt;
# Click &amp;quot;Edit platform details&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Save&lt;br /&gt;
# Next, select the &amp;quot;Deployments&amp;quot; tab&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete. Click the &amp;quot;Back&amp;quot; button or navigate to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;, where you will now see the registration listed as &amp;quot;Active&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143179</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143179"/>
		<updated>2022-04-04T04:00:07Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Dynamic Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
Regardless of the registration method, the first step is always to create a platform registration via Site administration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:registration tool details.png|thumb|Once the registration has been created, the endpoint URLs used for either dynamic or manual registration can be accessed via the &amp;quot;Tool details&amp;quot; tab.]]&lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
[[File:registration completed active.png|thumb|Completed registrations are denoted by an &amp;quot;Active&amp;quot; status in the registrations listing. From here, administrators can view tool endpoints or edit platform details or deployments via the respective registration actions.]]&lt;br /&gt;
Once complete, platform details and an associated deployment id will have been autoamtically added to the registration in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. You&#039;ll see the updated registration listed as &amp;quot;Active&amp;quot;. Clicking the &amp;quot;Platform details&amp;quot; action will display the relevant platform information, while the &amp;quot;Deployments&amp;quot; action will list the deployments. No changes to either of these sections are required, however.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the Moodle tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# You&#039;ll see a &amp;quot;Tool details&amp;quot; tab. Leave this browser window open.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
Now, in the platform (the exact setup is platform dependent but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# If you have the registration open still, simply click the &amp;quot;Platform details&amp;quot; tab. If not, from the registration table, click the &amp;quot;View platform details&amp;quot; action.&lt;br /&gt;
# Click &amp;quot;Edit platform details&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Save&lt;br /&gt;
# Next, select the &amp;quot;Deployments&amp;quot; tab&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete. Click the &amp;quot;Back&amp;quot; button or navigate to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;, where you will now see the registration listed as &amp;quot;Active&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=File:registration_completed_active.png&amp;diff=143178</id>
		<title>File:registration completed active.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=File:registration_completed_active.png&amp;diff=143178"/>
		<updated>2022-04-04T03:58:38Z</updated>

		<summary type="html">&lt;p&gt;Jaked: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Completed registrations are denoted by an &amp;quot;Active&amp;quot; status in the registrations listing. From here, administrators can view tool endpoints, platform details or tool deployments via the registration actions.&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143177</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143177"/>
		<updated>2022-04-04T03:49:30Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Manual registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
Regardless of the registration method, the first step is always to create a platform registration via Site administration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:registration tool details.png|thumb|Once the registration has been created, the endpoint URLs used for either dynamic or manual registration can be accessed via the &amp;quot;Tool details&amp;quot; tab.]]&lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, platform details and an associated deployment id will have been autoamtically added to the registration in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. You&#039;ll see the updated registration listed as &amp;quot;Active&amp;quot;. Clicking the &amp;quot;Platform details&amp;quot; action will display the relevant platform information, while the &amp;quot;Deployments&amp;quot; action will list the deployments. No changes to either of these sections are required, however.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the Moodle tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# You&#039;ll see a &amp;quot;Tool details&amp;quot; tab. Leave this browser window open.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
Now, in the platform (the exact setup is platform dependent but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# If you have the registration open still, simply click the &amp;quot;Platform details&amp;quot; tab. If not, from the registration table, click the &amp;quot;View platform details&amp;quot; action.&lt;br /&gt;
# Click &amp;quot;Edit platform details&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Save&lt;br /&gt;
# Next, select the &amp;quot;Deployments&amp;quot; tab&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete. Click the &amp;quot;Back&amp;quot; button or navigate to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;, where you will now see the registration listed as &amp;quot;Active&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143176</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143176"/>
		<updated>2022-04-04T03:49:04Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Dynamic Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
Regardless of the registration method, the first step is always to create a platform registration via Site administration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:registration tool details.png|thumb|Once the registration has been created, the endpoint URLs used for either dynamic or manual registration can be accessed via the &amp;quot;Tool details&amp;quot; tab.]]&lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, platform details and an associated deployment id will have been autoamtically added to the registration in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. You&#039;ll see the updated registration listed as &amp;quot;Active&amp;quot;. Clicking the &amp;quot;Platform details&amp;quot; action will display the relevant platform information, while the &amp;quot;Deployments&amp;quot; action will list the deployments. No changes to either of these sections are required, however.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the Moodle tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# You&#039;ll see a &amp;quot;Tool details&amp;quot; tab. Leave this browser window open.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependent but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# If you have the registration open still, simply click the &amp;quot;Platform details&amp;quot; tab. If not, from the registration table, click the &amp;quot;View platform details&amp;quot; action.&lt;br /&gt;
# Click &amp;quot;Edit platform details&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Save&lt;br /&gt;
# Next, select the &amp;quot;Deployments&amp;quot; tab&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete. Click the &amp;quot;Back&amp;quot; button or navigate to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;, where you will now see the registration listed as &amp;quot;Active&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=File:registration_tool_details.png&amp;diff=143175</id>
		<title>File:registration tool details.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=File:registration_tool_details.png&amp;diff=143175"/>
		<updated>2022-04-04T03:47:25Z</updated>

		<summary type="html">&lt;p&gt;Jaked: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Once a registration has been created, the various endpoint URLs used for either dynamic and manual registration can be accessed via the &amp;quot;Tool details&amp;quot; tab&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143174</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143174"/>
		<updated>2022-04-04T03:26:00Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Manual registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
Regardless of the registration method, the first step is always to create a platform registration via Site administration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, platform details and an associated deployment id will have been autoamtically added to the registration in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. You&#039;ll see the updated registration listed as &amp;quot;Active&amp;quot;. Clicking the &amp;quot;Platform details&amp;quot; action will display the relevant platform information, while the &amp;quot;Deployments&amp;quot; action will list the deployments. No changes to either of these sections are required, however.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the Moodle tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# You&#039;ll see a &amp;quot;Tool details&amp;quot; tab. Leave this browser window open.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependent but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# If you have the registration open still, simply click the &amp;quot;Platform details&amp;quot; tab. If not, from the registration table, click the &amp;quot;View platform details&amp;quot; action.&lt;br /&gt;
# Click &amp;quot;Edit platform details&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Save&lt;br /&gt;
# Next, select the &amp;quot;Deployments&amp;quot; tab&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete. Click the &amp;quot;Back&amp;quot; button or navigate to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;, where you will now see the registration listed as &amp;quot;Active&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143173</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143173"/>
		<updated>2022-04-04T03:24:33Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Manual registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
Regardless of the registration method, the first step is always to create a platform registration via Site administration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, platform details and an associated deployment id will have been autoamtically added to the registration in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. You&#039;ll see the updated registration listed as &amp;quot;Active&amp;quot;. Clicking the &amp;quot;Platform details&amp;quot; action will display the relevant platform information, while the &amp;quot;Deployments&amp;quot; action will list the deployments. No changes to either of these sections are required, however.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# You&#039;ll see a &amp;quot;Tool details&amp;quot; tab. Leave this browser window open.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependent but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# If you have the registration open still, simply click the &amp;quot;Platform details&amp;quot; tab. If not, from the registration table, click the &amp;quot;View platform details&amp;quot; action.&lt;br /&gt;
# Click &amp;quot;Edit platform details&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Save&lt;br /&gt;
# Next, select the &amp;quot;Deployments&amp;quot; tab&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete. Click the &amp;quot;Back&amp;quot; button or navigate to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;, where you will now see the registration listed as &amp;quot;Active&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143172</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143172"/>
		<updated>2022-04-04T03:24:13Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Dynamic Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
Regardless of the registration method, the first step is always to create a platform registration via Site administration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, platform details and an associated deployment id will have been autoamtically added to the registration in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. You&#039;ll see the updated registration listed as &amp;quot;Active&amp;quot;. Clicking the &amp;quot;Platform details&amp;quot; action will display the relevant platform information, while the &amp;quot;Deployments&amp;quot; action will list the deployments. No changes to either of these sections are required, however.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# You&#039;ll see a &amp;quot;Tool details&amp;quot; tab. Leave this browser window open.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependent but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# If you have the registration open still, simply click the &amp;quot;Platform details&amp;quot; tab. If not, from the registration table, click the &amp;quot;View platform details&amp;quot; action icon.&lt;br /&gt;
# Click &amp;quot;Edit platform details&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Save&lt;br /&gt;
# Next, select the &amp;quot;Deployments&amp;quot; tab&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete. Click the &amp;quot;Back&amp;quot; button or navigate to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;, where you will now see the registration listed as &amp;quot;Active&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143171</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143171"/>
		<updated>2022-04-04T03:19:23Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Manual registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
Regardless of the registration method, the first step is always to create a platform registration via Site administration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. Clicking the &amp;quot;Platform details&amp;quot; action icon for the registration in question will display the relevant platform information, while the &amp;quot;Deployments&amp;quot; action icon will list the deployments.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# You&#039;ll see a &amp;quot;Tool details&amp;quot; tab. Leave this browser window open.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependent but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# If you have the registration open still, simply click the &amp;quot;Platform details&amp;quot; tab. If not, from the registration table, click the &amp;quot;View platform details&amp;quot; action icon.&lt;br /&gt;
# Click &amp;quot;Edit platform details&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Save&lt;br /&gt;
# Next, select the &amp;quot;Deployments&amp;quot; tab&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete. Click the &amp;quot;Back&amp;quot; button or navigate to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;, where you will now see the registration listed as &amp;quot;Active&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143170</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143170"/>
		<updated>2022-04-04T03:18:01Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Manual registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
Regardless of the registration method, the first step is always to create a platform registration via Site administration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. Clicking the &amp;quot;Platform details&amp;quot; action icon for the registration in question will display the relevant platform information, while the &amp;quot;Deployments&amp;quot; action icon will list the deployments.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# You&#039;ll see a &amp;quot;Tool details&amp;quot; tab. Leave this browser window open.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependent but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# If you have the registration open still, simply click the &amp;quot;Platform details&amp;quot; tab. If not, from the registration table, click the &amp;quot;View platform details&amp;quot; action icon.&lt;br /&gt;
# Click &amp;quot;Edit platform details&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Save&lt;br /&gt;
# Next, select the &amp;quot;Deployments&amp;quot; tab&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143169</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143169"/>
		<updated>2022-04-04T03:15:51Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Manual registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
Regardless of the registration method, the first step is always to create a platform registration via Site administration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. Clicking the &amp;quot;Platform details&amp;quot; action icon for the registration in question will display the relevant platform information, while the &amp;quot;Deployments&amp;quot; action icon will list the deployments.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# You&#039;ll see a &amp;quot;Tool details&amp;quot; tab. Leave this browser window open.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependent but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# If you have the registration open still, simply click the &amp;quot;Platform details&amp;quot; tab. If not, from the registration table, click the &amp;quot;View platform details&amp;quot; action icon.&lt;br /&gt;
# Click &amp;quot;Edit platform details&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143168</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143168"/>
		<updated>2022-04-04T03:15:00Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Manual registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
Regardless of the registration method, the first step is always to create a platform registration via Site administration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. Clicking the &amp;quot;Platform details&amp;quot; action icon for the registration in question will display the relevant platform information, while the &amp;quot;Deployments&amp;quot; action icon will list the deployments.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# You&#039;ll see a &amp;quot;Tool details&amp;quot; tab. Leave this browser window open.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependent but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# If you have the registration open still, simply click the &amp;quot;Platform details&amp;quot; tab. If not, from the registration table, click the &amp;quot;Platform details&amp;quot; action icon.&lt;br /&gt;
# Click &amp;quot;Edit platform details&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143167</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143167"/>
		<updated>2022-04-04T03:12:33Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Manual registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
Regardless of the registration method, the first step is always to create a platform registration via Site administration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. Clicking the &amp;quot;Platform details&amp;quot; action icon for the registration in question will display the relevant platform information, while the &amp;quot;Deployments&amp;quot; action icon will list the deployments.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# You&#039;ll see a &amp;quot;Tool details&amp;quot; tab. Leave this browser window open.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependent but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143166</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143166"/>
		<updated>2022-04-04T03:09:29Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Register Moodle with the platform */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
Regardless of the registration method, the first step is always to create a platform registration via Site administration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. Clicking the &amp;quot;Platform details&amp;quot; action icon for the registration in question will display the relevant platform information, while the &amp;quot;Deployments&amp;quot; action icon will list the deployments.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143165</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=143165"/>
		<updated>2022-04-04T03:07:52Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Dynamic Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
{{New features}}&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Click the &amp;quot;Register a platform&amp;quot; button to create a new platform registration&lt;br /&gt;
# Enter the name of the platform and click &amp;quot;Continue&amp;quot;&lt;br /&gt;
# When presented with the &amp;quot;Tool details&amp;quot; tab, click to copy the Registration URL under the &amp;quot;Dynamic registration&amp;quot; section&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. Clicking the &amp;quot;Platform details&amp;quot; action icon for the registration in question will display the relevant platform information, while the &amp;quot;Deployments&amp;quot; action icon will list the deployments.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142990</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142990"/>
		<updated>2022-02-22T03:56:14Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* User account provisioning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under the &amp;quot;Dynamic registration&amp;quot; tab, click &amp;quot;Generate registration URL&amp;quot;&lt;br /&gt;
# Copy the resulting URL to the clipboard using the copy to clipboard icon&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. The &amp;quot;Registered platforms&amp;quot; table contains the relevant information, however, no changes to this information are required.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;. Users without an account in Moodle cannot use this feature.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142989</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142989"/>
		<updated>2022-02-22T03:54:30Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Link creation via content selection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under the &amp;quot;Dynamic registration&amp;quot; tab, click &amp;quot;Generate registration URL&amp;quot;&lt;br /&gt;
# Copy the resulting URL to the clipboard using the copy to clipboard icon&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. The &amp;quot;Registered platforms&amp;quot; table contains the relevant information, however, no changes to this information are required.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book by selecting &amp;quot;Add to gradebook&amp;quot;]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142988</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142988"/>
		<updated>2022-02-22T03:51:24Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Link creation via content selection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under the &amp;quot;Dynamic registration&amp;quot; tab, click &amp;quot;Generate registration URL&amp;quot;&lt;br /&gt;
# Copy the resulting URL to the clipboard using the copy to clipboard icon&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. The &amp;quot;Registered platforms&amp;quot; table contains the relevant information, however, no changes to this information are required.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
[[File:content selection activity list.png|thumb|Teachers can select from a list of published activities and courses, optionally adding a coupled line item to the platform&#039;s grade book at the time of link creation.]]&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection.&lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=File:content_selection_activity_list.png&amp;diff=142987</id>
		<title>File:content selection activity list.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=File:content_selection_activity_list.png&amp;diff=142987"/>
		<updated>2022-02-22T03:48:51Z</updated>

		<summary type="html">&lt;p&gt;Jaked: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Content selection allows teachers to create resource links by picking from a list of published activities and courses&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142986</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142986"/>
		<updated>2022-02-22T03:16:37Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* User account provisioning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under the &amp;quot;Dynamic registration&amp;quot; tab, click &amp;quot;Generate registration URL&amp;quot;&lt;br /&gt;
# Copy the resulting URL to the clipboard using the copy to clipboard icon&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. The &amp;quot;Registered platforms&amp;quot; table contains the relevant information, however, no changes to this information are required.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Content selection launches (Deep linking) require an existing account in Moodle, so always use &amp;quot;Existing accounts only (prompt)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection. &lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142985</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142985"/>
		<updated>2022-02-22T02:16:57Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Manual registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under the &amp;quot;Dynamic registration&amp;quot; tab, click &amp;quot;Generate registration URL&amp;quot;&lt;br /&gt;
# Copy the resulting URL to the clipboard using the copy to clipboard icon&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. The &amp;quot;Registered platforms&amp;quot; table contains the relevant information, however, no changes to this information are required.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details, along with the deployment id, must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection. &lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142984</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142984"/>
		<updated>2022-02-21T08:54:39Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Sharing access to a course or activity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under the &amp;quot;Dynamic registration&amp;quot; tab, click &amp;quot;Generate registration URL&amp;quot;&lt;br /&gt;
# Copy the resulting URL to the clipboard using the copy to clipboard icon&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. The &amp;quot;Registered platforms&amp;quot; table contains the relevant information, however, no changes to this information are required.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
[[File:publishing_resources.png|thumb|Publishing an activity using LTI Advantage. Note the limited launch details, which are only required if manually configuring an activity link in the platform]]     &lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection. &lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=File:publishing_resources.png&amp;diff=142983</id>
		<title>File:publishing resources.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=File:publishing_resources.png&amp;diff=142983"/>
		<updated>2022-02-21T08:52:13Z</updated>

		<summary type="html">&lt;p&gt;Jaked: Jaked uploaded a new version of File:publishing resources.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Publishing an assignment using LTI Advantage&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=File:publishing_resources.png&amp;diff=142982</id>
		<title>File:publishing resources.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=File:publishing_resources.png&amp;diff=142982"/>
		<updated>2022-02-21T08:45:45Z</updated>

		<summary type="html">&lt;p&gt;Jaked: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Publishing an assignment using LTI Advantage&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142981</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142981"/>
		<updated>2022-02-21T08:41:43Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Manual registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under the &amp;quot;Dynamic registration&amp;quot; tab, click &amp;quot;Generate registration URL&amp;quot;&lt;br /&gt;
# Copy the resulting URL to the clipboard using the copy to clipboard icon&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. The &amp;quot;Registered platforms&amp;quot; table contains the relevant information, however, no changes to this information are required.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:platform registration.png|thumb|Once Moodle has been configured in the platform, the platform details must be registered with Moodle to complete the registration]]&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection. &lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=File:platform_registration.png&amp;diff=142980</id>
		<title>File:platform registration.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=File:platform_registration.png&amp;diff=142980"/>
		<updated>2022-02-21T08:38:31Z</updated>

		<summary type="html">&lt;p&gt;Jaked: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Registering platform details with the Moodle tool during manual registration&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142979</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142979"/>
		<updated>2022-02-21T08:31:32Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Dynamic Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under the &amp;quot;Dynamic registration&amp;quot; tab, click &amp;quot;Generate registration URL&amp;quot;&lt;br /&gt;
# Copy the resulting URL to the clipboard using the copy to clipboard icon&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# If prompted, select &amp;quot;Register as a new external tool&amp;quot; (you will only be prompted if another Moodle tool from the same domain is already configured on the platform)&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. The &amp;quot;Registered platforms&amp;quot; table contains the relevant information, however, no changes to this information are required.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection. &lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142978</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142978"/>
		<updated>2022-02-21T08:25:58Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Manual registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under the &amp;quot;Dynamic registration&amp;quot; tab, click &amp;quot;Generate registration URL&amp;quot;&lt;br /&gt;
# Copy the resulting URL to the clipboard using the copy to clipboard icon&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. The &amp;quot;Registered platforms&amp;quot; table contains the relevant information, however, no changes to this information are required.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[File:manual registration tool endpoints.png|thumb|The tool endpoints are required if manually configuring Moodle on the platform]]&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection. &lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142976</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142976"/>
		<updated>2022-02-21T08:16:26Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Dynamic Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
&lt;br /&gt;
[[File:copying registration url.png|thumb|Generating and copying a dynamic registration URL]]     &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under the &amp;quot;Dynamic registration&amp;quot; tab, click &amp;quot;Generate registration URL&amp;quot;&lt;br /&gt;
# Copy the resulting URL to the clipboard using the copy to clipboard icon&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. The &amp;quot;Registered platforms&amp;quot; table contains the relevant information, however, no changes to this information are required.&lt;br /&gt;
&lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection. &lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142974</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142974"/>
		<updated>2022-02-21T06:46:37Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* LTI 1.3 and LTI Advantage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMS Global website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
    &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under the &amp;quot;Dynamic registration&amp;quot; tab, click &amp;quot;Generate registration URL&amp;quot;&lt;br /&gt;
# Copy the resulting URL to the clipboard using the copy to clipboard icon&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. The &amp;quot;Registered platforms&amp;quot; table contains the relevant information, however, no changes to this information are required.&lt;br /&gt;
    &lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection. &lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142973</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142973"/>
		<updated>2022-02-21T06:04:18Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Legacy resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMSGlobal website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
    &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under the &amp;quot;Dynamic registration&amp;quot; tab, click &amp;quot;Generate registration URL&amp;quot;&lt;br /&gt;
# Copy the resulting URL to the clipboard using the copy to clipboard icon&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. The &amp;quot;Registered platforms&amp;quot; table contains the relevant information, however, no changes to this information are required.&lt;br /&gt;
    &lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection. &lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
The following resources pertain to now deprecated versions of LTI (1.1 and 2.0).&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142972</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142972"/>
		<updated>2022-02-21T06:00:13Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Manual registration: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMSGlobal website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
    &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under the &amp;quot;Dynamic registration&amp;quot; tab, click &amp;quot;Generate registration URL&amp;quot;&lt;br /&gt;
# Copy the resulting URL to the clipboard using the copy to clipboard icon&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. The &amp;quot;Registered platforms&amp;quot; table contains the relevant information, however, no changes to this information are required.&lt;br /&gt;
    &lt;br /&gt;
===Manual registration===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection. &lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142971</id>
		<title>Publish as LTI tool</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Publish_as_LTI_tool&amp;diff=142971"/>
		<updated>2022-02-21T05:59:37Z</updated>

		<summary type="html">&lt;p&gt;Jaked: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Enrolment}}&lt;br /&gt;
==Moodle as an LTI provider==&lt;br /&gt;
&lt;br /&gt;
The &#039;Publish as LTI tool&#039; enrolment plugin, together with the LTI authentication plugin, allows remote users on a different platform to access selected courses and activities. In other words, Moodle functions as an LTI tool. Courses and activities can be completed by accessing them from the remote platform. When grades are recorded, these will also be sent back to the remote platform.&lt;br /&gt;
&lt;br /&gt;
==LTI 1.3 and LTI Advantage==&lt;br /&gt;
    &lt;br /&gt;
LTI 1.3 describes the core specification needed for securely launching a Tool resource from within a Platform. When the core LTI 1.3 functionality is packaged alongside the three essential services (Assignment and Grade Services v2.0, Names and Role Provisioning Services v2.0 and Deep Linking v2.0), it&#039;s called LTI Advantage. More information about LTI Advantage and its services can be found on the IMSGlobal website. See https://www.imsglobal.org/activity/learning-tools-interoperability.&lt;br /&gt;
    &lt;br /&gt;
With LTI Advantage, the term &#039;Tool&#039; is used to refer to the external service providing functionality, while &#039;Platform&#039; is used to refer to the application wanting to use the functionality provided by the tool. The terms &#039;Platform&#039; and &#039;Tool&#039; can be thought of as replacements for the legacy terms &#039;Consumer&#039; and &#039;Provider&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
==Enabling the &#039;Publish as LTI tool&#039; feature==&lt;br /&gt;
&lt;br /&gt;
An administrator can enable the &#039;Publish as LTI tool&#039; for use across the site:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable LTI&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable &#039;Publish as LTI tool&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended that the site administration setting &#039;Allow frame embedding&#039; is enabled (in &amp;quot;Site Administration &amp;gt; Security &amp;gt; HTTP security&amp;quot;) so that tools can be displayed within a frame rather than in a new window, if desired. &lt;br /&gt;
&lt;br /&gt;
==Register Moodle with the platform==&lt;br /&gt;
&lt;br /&gt;
The security model for LTI 1.3 and LTI Advantage services is based on OAuth 2.0 and OpenID Connect. This differs from previous versions of the LTI standard, which used OAuth 1.0. Practically, this means the Tool and Platform must register with one another ahead of time, before activities and courses can be accessed from the platform. This also means that the use of &#039;consumer key&#039; and &#039;consumer secret&#039; to secure access to resource is no longer required. Registration happens only once, when setting up a link between the tool and a platform, and is essentially a security contract between those two respective systems.&lt;br /&gt;
&lt;br /&gt;
Registration can be completed one of several ways:&lt;br /&gt;
* Manual registration - A manual exchange of URLs and IDs between the platform and tool performed by an admin user.&lt;br /&gt;
* Dynamic registration - Exchange of the relevant URLs and IDs is automated. The platform uses the tool&#039;s registration URL to begin this process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dynamic registration simplifies the configuration process for administrators significantly and should be preferred, provided it is supported by the platform. Manual registration will work on any LTI Advantage compliant platforms, so is the natural choice when the platform doesn&#039;t yet support dynamic registration.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Registration===&lt;br /&gt;
    &lt;br /&gt;
In the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under the &amp;quot;Dynamic registration&amp;quot; tab, click &amp;quot;Generate registration URL&amp;quot;&lt;br /&gt;
# Copy the resulting URL to the clipboard using the copy to clipboard icon&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
In the platform:&lt;br /&gt;
The exact method of using a registration URL is platform-dependent.&lt;br /&gt;
    &lt;br /&gt;
In Moodle (for Moodle-to-Moodle LTI):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Paste the registration URL into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Click &amp;quot;Add LTI Advantage&amp;quot;&lt;br /&gt;
# When the page reloads and the tool card is visible, click &amp;quot;Activate&amp;quot;. &lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Once complete, a platform registration and associated deployment will have been automatically configured in the Moodle tool. To see this, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;. The &amp;quot;Registered platforms&amp;quot; table contains the relevant information, however, no changes to this information are required.&lt;br /&gt;
    &lt;br /&gt;
===Manual registration:===&lt;br /&gt;
    &lt;br /&gt;
There are two parts to the manual registration process. Firstly, it requires information be copied from the Moodle tool into the platform, as part of configuring the tool there. Finally it requires information about the tool configuration in the platform be copied into the tool site to complete the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Starting in the Moodle tool:&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Select the &amp;quot;Manual registration&amp;quot; tab and leave this browser window open&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
Now, in the platform (the exact setup is platform dependant but this guide assumes another Moodle site is being used as the platform):&lt;br /&gt;
# As an admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; External tool &amp;gt; Manage tools&amp;quot;&lt;br /&gt;
# Click &amp;quot;Configure a tool manually&amp;quot;&lt;br /&gt;
# Change the field &amp;quot;LTI version&amp;quot; to &amp;quot;LTI 1.3&amp;quot;&lt;br /&gt;
# Change &amp;quot;Public key type&amp;quot; to &amp;quot;Keyset URL&amp;quot;&lt;br /&gt;
# Enable &amp;quot;Supports Deep Linking (Content-Item Message)&amp;quot;&lt;br /&gt;
# Copy the following URLs from the tool site into the respective form fields on the platform site:&lt;br /&gt;
#* Copy &amp;quot;Tool URL&amp;quot; into both the &amp;quot;Tool URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Initiate login URL&amp;quot; into the &amp;quot;Initiate login URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;JWKS URL&amp;quot; into the &amp;quot;Public keyset&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Deep linking URL&amp;quot; into both the &amp;quot;Content selection URL&amp;quot; field and the &amp;quot;Redirection URI(s)&amp;quot; field (on a new line)&lt;br /&gt;
# Set a tool name and save the configuration.&lt;br /&gt;
# On the resulting tool card, click &amp;quot;View configuration details&amp;quot; and leave this browser window open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now, back in the Moodle tool again:&lt;br /&gt;
# As the admin user, go to &amp;quot;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Publish as LTI tool &amp;gt; Tool registration&amp;quot;&lt;br /&gt;
# Under &amp;quot;Registered platforms&amp;quot; click &amp;quot;Register a platform&amp;quot;&lt;br /&gt;
# Copy the following values from the platform site&#039;s tool configuration into the respective form fields:&lt;br /&gt;
#* Copy &amp;quot;Platform ID&amp;quot; into the &amp;quot;Platform ID (issuer)&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Client ID&amp;quot; into the &amp;quot;Client ID&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Public keyset URL&amp;quot; into the &amp;quot;Public keyset URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Access token URL&amp;quot; into the &amp;quot;Access token URL&amp;quot; field&lt;br /&gt;
#* Copy &amp;quot;Authentication request URL&amp;quot; into the &amp;quot;Authentication request URL&amp;quot; field&lt;br /&gt;
# Enter a name for the platform and save&lt;br /&gt;
# For the registration you just created, click &amp;quot;Manage deployments&amp;quot;&lt;br /&gt;
# Click &amp;quot;Add a deployment&amp;quot;&lt;br /&gt;
# Copy the &amp;quot;Deployment ID&amp;quot; from the platform site&#039;s tool configuration into the &amp;quot;Deployment ID&amp;quot; field&lt;br /&gt;
# Enter a deployment name and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The registration process is now complete.&lt;br /&gt;
&lt;br /&gt;
==Sharing access to a course or activity==&lt;br /&gt;
# From the course navigation, select &amp;quot;Published as LTI tools&amp;quot;&lt;br /&gt;
# Under the &amp;quot;LTI Advantage&amp;quot; tab (this is selected by default) click the &amp;quot;Add&amp;quot; button&lt;br /&gt;
# In &amp;quot;Tool to be published&amp;quot; select the course or activity to be shared&lt;br /&gt;
# Enable grade and user sync for the resource, if required&lt;br /&gt;
# Click the &amp;quot;Add method&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The published activity or course is now ready for use in platforms via the content selection flow.&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The fields &amp;quot;Launch URL&amp;quot; and &amp;quot;Custom properties&amp;quot; are only relevant when sharing the content with instructors who don&#039;t have an account in the Moodle tool. If you&#039;re using Content selection, you can ignore these values.&lt;br /&gt;
    &lt;br /&gt;
Grade and user synchronisation (if configured) is handled asynchronously via the &#039;Publish as LTI tool grade sync&#039; and &#039;Publish as LTI tool users sync&#039; scheduled tasks, which run by default every 30 minutes.&lt;br /&gt;
&lt;br /&gt;
If user synchronisation is set to yes, enrolled users in the remote system are synchronised with enrolments in the course, with an account created for each remote user as necessary, and the user enrolled or unenrolled as required. If set to no, at the moment when a remote user accesses the tool, an account will be created for them and they will be automatically enrolled. &lt;br /&gt;
&lt;br /&gt;
===User account provisioning===&lt;br /&gt;
&lt;br /&gt;
When users access a shared activity or course for the first time, Moodle will need to either find an existing account or create an account for them. Historically, all first launches resulted in the creation of new user accounts in Moodle, meaning users with existing accounts had no way to reuse those accounts. Account provisioning modes solve this problem by providing control over how accounts are created or linked on first launch. Additionally, in the case of teachers, they permit a richer experience via Content Selection, a process allowing the teacher to launch into Moodle using their existing Moodle account and select from any shared course or activity they have access to. More on this in the next section.&lt;br /&gt;
&lt;br /&gt;
There are two relevant settings in the published resource settings; &amp;quot;Student first launch provisioning mode&amp;quot; and &amp;quot;Teacher first launch provisioning mode&amp;quot;. Each setting controls how Moodle will handle the first launch for a user of that particular role (the role assigned to the user in the platform from which they launch the tool). Currently, several modes are supported:&lt;br /&gt;
* New accounts only (automatic) - A new account will automatically be created for the user during first launch. This account will then be reused on subsequent launches.&lt;br /&gt;
* Existing and new accounts (prompt) - The user will be prompted to either link an existing account they have in Moodle, or have a new account created for them. Subsequent launches will use whichever account is the result of this choice.&lt;br /&gt;
* Existing accounts only (prompt) - Only existing accounts may be used. If the user does not have an existing Moodle account to use, they will be unable to access the shared resources.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
By default, &amp;quot;Teacher first launch provisioning mode&amp;quot; is set to &amp;quot;Existing and new accounts (prompt)&amp;quot;, granting teachers flexibility in how they access the tool resources. Those having accounts can choose to use their existing account, while those not having an account can opt for the latter.&lt;br /&gt;
&lt;br /&gt;
The default for &amp;quot;Student first launch provisioning mode&amp;quot; is &amp;quot;New accounts only (automatic)&amp;quot;. Students will have accounts created for them automatically during first launch.&lt;br /&gt;
&lt;br /&gt;
Each setting can be changed for each published resource, however, with a caveat. Once a user account is linked to a platform user, subsequent launches by that platform user will use that linked account. If a user accesses one resource using &#039;automatic&#039; provisioning mode, and then later launches another resource which permits the use of existing accounts, the user will not be prompted to sign in because an account is already associated with them (the account which was automatically created for them during the first launch). The same is not true for the reverse situation. If the user accesses a resource permitting the use of existing accounts first, their existing account can be linked. Subsequently accessing a resource using &#039;automatic&#039; provisioning mode, will only result in the reuse of their existing (now linked) account, and not the creation of a new account.&lt;br /&gt;
&lt;br /&gt;
==On the LTI platform site==&lt;br /&gt;
&lt;br /&gt;
Different platforms have different means of configuring and using LTI tools. The preferred means of configuring a course or activity link is by using Deep Linking (Content Selection), however, this requires that instructors have an existing account on the Moodle tool site. In instances where this isn&#039;t the case, course or activity links can be manually configured in the platform. Both methods are described below.&lt;br /&gt;
&lt;br /&gt;
=== Link creation via content selection===&lt;br /&gt;
The following describes the recommended process for teachers when using another Moodle site as the platform and assumes the tool-platform registration process has already been completed. More information on the Moodle external tool setup can be found at [[External tool]].&lt;br /&gt;
&lt;br /&gt;
# Make sure you&#039;re signed in to the Moodle tool site in another browser tab (if not, you will be prompted to do so later)&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click the &amp;quot;Select content&amp;quot; button&lt;br /&gt;
# When prompted, link your account&lt;br /&gt;
# Select from a list of activities and courses to which you have access (optionally adding line items to the platform gradebook, where applicable - see note below), clicking &amp;quot;Add content&amp;quot; when done&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For platforms supporting coupled line items, Moodle can send information about the activity&#039;s grade to the platform during content selection. This allows the platform to create the respective line item in its grade book at the time of link creation. Whether this information is returned to the platform or not depends on two things: whether the published course or activity supports grades, and whether the &#039;Add to gradebook&#039; checkbox is ticked during content selection. &lt;br /&gt;
&lt;br /&gt;
===Manual link creation===&lt;br /&gt;
For users who don&#039;t have an account on the Moodle tool site, content selection isn&#039;t possible. These users can manually configure the activity link in the platform via the following process. Again, this assumes the tool-platform registration process has already been completed.&lt;br /&gt;
&lt;br /&gt;
# In the platform site, visit a course&lt;br /&gt;
# Add an External Tool activity, or select a pre-configured tool from the activity chooser.&lt;br /&gt;
# Click &amp;quot;Show more&amp;quot;&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Launch URL&amp;quot; into the &amp;quot;Tool URL&amp;quot; field&lt;br /&gt;
# Enter the published course or activity&#039;s &amp;quot;Custom properties&amp;quot; into the &amp;quot;Custom parameters&amp;quot; field&lt;br /&gt;
# Save and launch the activity&lt;br /&gt;
&lt;br /&gt;
===Custom launch parameters===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you would prefer to not show blocks for teachers, you can pass the custom parameter &amp;quot;force_embed = 1&amp;quot;. This may limit the functionality available to teachers and admins. To get blocks back, simply remove the parameter.&lt;br /&gt;
&lt;br /&gt;
==LTI Advantage, LTI 1.1 or LTI 2.0?==&lt;br /&gt;
    &lt;br /&gt;
Moodle supports publication of content over several IMS LTI standards; LTI Advantage, LTI 1.1 and LTI 2.0. LTI Advantage is the current standard; LTI 1.1 and 2.0 have been deprecated. Courses and activities should be published using LTI Advantage. The legacy publication methods will continue to function in their current state to allow organisations to progressively move to LTI Advantage and will be removed in the future. More information about legacy methods can be found in the &amp;quot;Legacy resources&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
==Legacy resources==&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/cMQiKjXdm3A}}&lt;br /&gt;
&lt;br /&gt;
===Sharing access to a course or activity (LTI 1.1 and 2.0)===&lt;br /&gt;
[[File:published tools.png|thumb|Published tools]]&lt;br /&gt;
# Go to the &#039;Enrolment methods&#039; page and add &#039;Publish as LTI tool&#039; as an enrolment method&lt;br /&gt;
# In &#039;Tool to be published&#039; select the course or activity to be shared&lt;br /&gt;
# Click the &#039;Add method&#039; button&lt;br /&gt;
# Go to &#039;&#039;Course Administration &amp;gt; Published as LTI tools&#039;&#039; page (/enrol/lti/index.php?courseid=&#039;&#039;n&#039;&#039;) and make a note of the launch details or the registration URL for the LTI consumer site (see below for info on which to choose). The URL will be of the form: .../enrol/lti/...&lt;br /&gt;
# You will also need to give the LTI consumer site a consumer key - this can be anything you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The LTI consumer can be another Moodle site or any other LTI-consumer-compliant LMS. Depending on the requirements of the LTI consumer, you can provide either a cartridge URL (also called configuration URL) plus secret OR a launch URL (new in Moodle 3.5.2) OR a registration URL.&lt;br /&gt;
&lt;br /&gt;
Grade and user synchronisation follow the same rules as with LTI 1.3 and LTI Advantage publishing.&lt;br /&gt;
&lt;br /&gt;
===Comparison of LTI 1.1 and 2.0 terms across platforms===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!IMS Spec&lt;br /&gt;
!Moodle&lt;br /&gt;
!Canvas&lt;br /&gt;
!Edu app center (Canvas)&lt;br /&gt;
!Desire2Learn&lt;br /&gt;
!Blackboard&lt;br /&gt;
!Sakai&lt;br /&gt;
!Chamilo&lt;br /&gt;
|-&lt;br /&gt;
|Tool consumer&lt;br /&gt;
|External Tool&lt;br /&gt;
|External App&lt;br /&gt;
|App&lt;br /&gt;
|Link&lt;br /&gt;
|LTI Tool provider*&lt;br /&gt;
|Sakai Basic LTI portlet&lt;br /&gt;
|IMS/LTI Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Launch URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|n/a&lt;br /&gt;
|URL&lt;br /&gt;
|Provider Domain&lt;br /&gt;
|Remote Tool URL&lt;br /&gt;
|Launch URL&lt;br /&gt;
|-&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Secret&lt;br /&gt;
|Tool Provider Secret&lt;br /&gt;
|Remote tool secret&lt;br /&gt;
|Secret&lt;br /&gt;
|-&lt;br /&gt;
|Cartridge URL&lt;br /&gt;
|Tool URL&lt;br /&gt;
|Paste XML&lt;br /&gt;
|Configuration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|Tool registration file?&lt;br /&gt;
|n/a&lt;br /&gt;
|-&lt;br /&gt;
|Proxy URL&lt;br /&gt;
|Registration URL/Tool URL&lt;br /&gt;
|LTI 2 Registration URL&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
|n/a&lt;br /&gt;
| -&lt;br /&gt;
|n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Common issues==&lt;br /&gt;
The setup of LTI can be tricky, these are some of the most frequently reported issues by Moodle users. As always, enabling debug information can help trace the roots of a problem.&lt;br /&gt;
&lt;br /&gt;
===LTI 1.1 and 2.0 Common issues===&lt;br /&gt;
&lt;br /&gt;
====Mixed protocol limitations====&lt;br /&gt;
If your Moodle instance is using HTTP (and not HTTPS)  you will only be able to use the tool on sites that are also using HTTP (and not HTTPS). It&#039;s recommended that you use HTTPS on your Moodle instance. See [[Transitioning to HTTPS]].&lt;br /&gt;
&lt;br /&gt;
==== A required parameter (oauth_consumer_key) was missing ====&lt;br /&gt;
This exception occurs when the Tool Consumer is missing a Consumer Key parameter. As mentioned above, the consumer key can be anything you want so long as the field isn&#039;t left empty. Best keep it simple and without special characters, however.&lt;br /&gt;
&lt;br /&gt;
==== User has free access to the entire site, isn&#039;t contained to the course ====&lt;br /&gt;
This can happen when the course content isn&#039;t embedded. Enable &#039;&#039;Allow frame embedding&#039;&#039; in &#039;&#039;Site Administration &amp;gt; Security &amp;gt; HTTP Security&#039;&#039; and, on the consumer site LTI tool settings, add &#039;&#039;force_embed=1&#039;&#039; in the &#039;&#039;custom parameters&#039;&#039; settings.&lt;br /&gt;
&lt;br /&gt;
==== This XML file does not appear to have any style information associated with it. ====&lt;br /&gt;
Some tool consumers do not support cartridge URLs such as Sakai and Chamilo, in that case, it&#039;s better to use the launch URL.&lt;br /&gt;
&lt;br /&gt;
==== Invalid request ====&lt;br /&gt;
This exception can happen for various reasons, so it can be difficult to trace the root of the problem. One of the possibilities is that &#039;&#039;deep linking&#039;&#039; is enabled in the tool consumer. Disabling it can help in LMS that have it like Chamilo and Canvas.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[LTI and Moodle]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=345828 LTI authentication not working] forum discussion&lt;br /&gt;
* [http://lti.tools/saltire/ saLTIre - a testing system for LTI]&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=7978 LTI and Moodle forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:LTI]]&lt;br /&gt;
&lt;br /&gt;
[[es:Herramienta publicar como LTI]]&lt;br /&gt;
[[de:Als LTI-Tool bereitstellen]]&lt;br /&gt;
[[fr:Publier comme outil LTI]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Standards&amp;diff=139928</id>
		<title>Standards</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Standards&amp;diff=139928"/>
		<updated>2021-04-01T05:05:42Z</updated>

		<summary type="html">&lt;p&gt;Jaked: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
Moodle is a global learning management platform that supports open standards, and is interoperable by design to enable integration of external applications and information onto a single Moodle platform. &lt;br /&gt;
&lt;br /&gt;
Our commitment to open standards means institutions and organisations can leverage Moodle to customise and extend features for any teaching and learning requirements, and benefit from increased cost efficiencies, flexibility, easier manageability along with performance and scalability advantages of using Moodle. &lt;br /&gt;
&lt;br /&gt;
Moodle has achieved and is compliant with the following international standards:&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10px&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 170px;&amp;quot; | [[File:moodle-opensource.png|left|160px|middle]]&lt;br /&gt;
| &#039;&#039;&#039; 1. An Open Source Initiative&#039;&#039;&#039;&lt;br /&gt;
Moodle is provided as a free, open source software that can be used, modified and freely distributed under the terms of the [[License|GNU General Public License]]. There are also plenty of documentation, course content and resources available on Moodle.org for anyone to use under the terms of various licenses, including:&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;Moodle Documentation&#039;&#039;&#039;&#039;&#039;: All documentation on [[Main_page|docs.moodle.org]] is openly licensed under the terms of the GNU General Public License, and is Copyright © 2005 onwards by the individual authors of each page. &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 170px;&amp;quot; | [[File:moodle-imslticertified.png|left|160px|middle]]&lt;br /&gt;
| &#039;&#039;&#039;2. IMS LTI™ Certified&#039;&#039;&#039;&lt;br /&gt;
Moodle is certified [https://site.imsglobal.org/certifications/moodle/moodle#tab-v310 Learning Tool Interoperability (LTI) Advantage Complete]. The LTI™ certification is a global technical standard of integrating learning applications. [https://www.imsglobal.org/lti-advantage-overview LTI Advantage] is a package of services that improves upon 1.1 and 2.0 and is the current standard. Users can integrate and present externally hosted applications and content within a single Moodle platform without having to develop and maintain custom integrations. Learn more about [[External_tool|integrating LTI resources onto your Moodle platform]]. In Moodle 3.1 onwards, Moodle can also act as an LTI 1.1 and 2.0 tool provider with the [[Publish as LTI tool]].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 170px;&amp;quot; | [[File:moodle-scormcertified.png|left|160px|middle]]&lt;br /&gt;
| &#039;&#039;&#039;3. SCORM-ADL compliant&#039;&#039;&#039;&lt;br /&gt;
Moodle complies with the SCORM 1.2 specification. The SCORM (Sharable Content Object Reference Model) is a set of specifications and standards for web-based e-learning. Users can [[SCORM_module|deliver SCORM content via Moodle]] by uploading any SCORM or AICC package to the Moodle course. There are also community plugins available that provide limited support for the Experience API (Tin Can). A commercial plugin that provides full support for SCORM 2004 and the Experience API is also available in Plugins [https://moodle.org/plugins/view.php?plugin=mod_scormcloud/ here].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 170px;&amp;quot; | [[File:moodle-openbadges.png|left|160px|middle]]&lt;br /&gt;
| &#039;&#039;&#039;4. Open Badges &#039;&#039;&#039;&lt;br /&gt;
[http://openbadges.org/ Open Badges] project is an online standard to recognise and verify learning using digital badges. Integrated as a core feature in Moodle, any institution, organisation or individual can create and issue [[Badges|badges]] to learners on their Moodle learning platform. Moodle is certified [https://site.imsglobal.org/certifications/moodle/moodle#cert_pane_nid_402893 Open Badges v2.0 compliant as Issuer by IMS].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 170px;&amp;quot; | [[File:wcag21AA-logo.png|left|160px|middle]]&lt;br /&gt;
| &#039;&#039;&#039;5. WCAG 2.1 Level AA&#039;&#039;&#039;&lt;br /&gt;
Moodle has received [https://www.webkeyit.com/accessibility-services/accessibility-accreditations/moodle/ WCAG 2.1 Level AA accreditation] based on successfully resolving the issues identified in an external audit of key pages which were chosen as representative of its overall functionality and accessibility. Continuing work is being done to further improve the accessibility of other areas in Moodle in order to maintain conformance with the [https://www.w3.org/TR/WCAG21/ WCAG 2.1 Level AA guidelines].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Moodle and Interoperability ==&lt;br /&gt;
&lt;br /&gt;
In supporting the seamless integration and use of content from different sources and multiple vendors, the Moodle platform is designed to exchange data using open industry standards for Web deployments, and supports: &lt;br /&gt;
#	&#039;&#039;&#039;[[Authentication]]&#039;&#039;&#039; using:&lt;br /&gt;
#*	[[LDAP_authentication|LDAP]], the most widely-used standard protocol for authentication.&lt;br /&gt;
#*	Direct direct database lookup (e.g. in an external Oracle database), or on the Shibboleth protocol, or alternatively using IMAP, NNTP, CAS or FirstClass.&lt;br /&gt;
#	&#039;&#039;&#039;[[Enrolment]]&#039;&#039;&#039; using:&lt;br /&gt;
#*	LDAP server (e.g. Active Directory)&lt;br /&gt;
#*	[[IMS_Enterprise|IMS Enterprise standard]] (via a downloadable plugin).&lt;br /&gt;
#	&#039;&#039;&#039;Content&#039;&#039;&#039; using the import of Reusable Learning Objects, packaged according to the SCORM/AICC/IMS Content Packaging standards. &lt;br /&gt;
#*	Moodle 1.9.5 is certified [[SCORM_module|SCORM]] 1.2 compliant. &lt;br /&gt;
#*	Moodle supports [[IMS Common Cartridge import and export]]&lt;br /&gt;
#*	The use of XML for content import/export (standard in Moodle). The &amp;quot;web services&amp;quot; method of exchanging data with other systems (e.g. via SOAP or XML-RPC) is not yet standard - but is in active development.&lt;br /&gt;
#	&#039;&#039;&#039;Quiz questions&#039;&#039;&#039; via [[Import_questions|import]] and [[Export_questions|export]] using a variety of formats.&lt;br /&gt;
#	&#039;&#039;&#039;[[RSS|RSS newsfeeds]]&#039;&#039;&#039;, integrated into a Moodle site or course. &lt;br /&gt;
#*	Forum discussions, glossary entries and database content can be accessed as RSS newsfeeds, and therefore integrated into other RSS-capable websites or systems.&lt;br /&gt;
&lt;br /&gt;
[[fr:Standards]]&lt;br /&gt;
[[es:Estándares]]&lt;br /&gt;
[[de:Standards]]&lt;br /&gt;
[[it:Standard]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Standards&amp;diff=139927</id>
		<title>Standards</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Standards&amp;diff=139927"/>
		<updated>2021-04-01T05:04:43Z</updated>

		<summary type="html">&lt;p&gt;Jaked: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
Moodle is a global learning management platform that supports open standards, and is interoperable by design to enable integration of external applications and information onto a single Moodle platform. &lt;br /&gt;
&lt;br /&gt;
Our commitment to open standards means institutions and organisations can leverage Moodle to customise and extend features for any teaching and learning requirements, and benefit from increased cost efficiencies, flexibility, easier manageability along with performance and scalability advantages of using Moodle. &lt;br /&gt;
&lt;br /&gt;
Moodle has achieved and is compliant with the following international standards:&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10px&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 170px;&amp;quot; | [[File:moodle-opensource.png|left|160px|middle]]&lt;br /&gt;
| &#039;&#039;&#039; 1. An Open Source Initiative&#039;&#039;&#039;&lt;br /&gt;
Moodle is provided as a free, open source software that can be used, modified and freely distributed under the terms of the [[License|GNU General Public License]]. There are also plenty of documentation, course content and resources available on Moodle.org for anyone to use under the terms of various licenses, including:&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;Moodle Documentation&#039;&#039;&#039;&#039;&#039;: All documentation on [[Main_page|docs.moodle.org]] is openly licensed under the terms of the GNU General Public License, and is Copyright © 2005 onwards by the individual authors of each page. &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 170px;&amp;quot; | [[File:moodle-imslticertified.png|left|160px|middle]]&lt;br /&gt;
| &#039;&#039;&#039;2. IMS LTI™ Certified&#039;&#039;&#039;&lt;br /&gt;
Moodle is certified [https://site.imsglobal.org/certifications/moodle/moodle#tab-v310 Learning Tool Interoperability (LTI) Advantage Complete]. The LTI™ certification is a global technical standard of integrating learning applications. [https://www.imsglobal.org/lti-advantage-overview LTI Advantage] is a package of services that improves upon 1.1 and 2.0 and the current standard. Users can integrate and present externally hosted applications and content within a single Moodle platform without having to develop and maintain custom integrations. Learn more about [[External_tool|integrating LTI resources onto your Moodle platform]]. In Moodle 3.1 onwards, Moodle can also act as an LTI 1.1 and 2.0 tool provider with the [[Publish as LTI tool]].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 170px;&amp;quot; | [[File:moodle-scormcertified.png|left|160px|middle]]&lt;br /&gt;
| &#039;&#039;&#039;3. SCORM-ADL compliant&#039;&#039;&#039;&lt;br /&gt;
Moodle complies with the SCORM 1.2 specification. The SCORM (Sharable Content Object Reference Model) is a set of specifications and standards for web-based e-learning. Users can [[SCORM_module|deliver SCORM content via Moodle]] by uploading any SCORM or AICC package to the Moodle course. There are also community plugins available that provide limited support for the Experience API (Tin Can). A commercial plugin that provides full support for SCORM 2004 and the Experience API is also available in Plugins [https://moodle.org/plugins/view.php?plugin=mod_scormcloud/ here].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 170px;&amp;quot; | [[File:moodle-openbadges.png|left|160px|middle]]&lt;br /&gt;
| &#039;&#039;&#039;4. Open Badges &#039;&#039;&#039;&lt;br /&gt;
[http://openbadges.org/ Open Badges] project is an online standard to recognise and verify learning using digital badges. Integrated as a core feature in Moodle, any institution, organisation or individual can create and issue [[Badges|badges]] to learners on their Moodle learning platform. Moodle is certified [https://site.imsglobal.org/certifications/moodle/moodle#cert_pane_nid_402893 Open Badges v2.0 compliant as Issuer by IMS].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 170px;&amp;quot; | [[File:wcag21AA-logo.png|left|160px|middle]]&lt;br /&gt;
| &#039;&#039;&#039;5. WCAG 2.1 Level AA&#039;&#039;&#039;&lt;br /&gt;
Moodle has received [https://www.webkeyit.com/accessibility-services/accessibility-accreditations/moodle/ WCAG 2.1 Level AA accreditation] based on successfully resolving the issues identified in an external audit of key pages which were chosen as representative of its overall functionality and accessibility. Continuing work is being done to further improve the accessibility of other areas in Moodle in order to maintain conformance with the [https://www.w3.org/TR/WCAG21/ WCAG 2.1 Level AA guidelines].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Moodle and Interoperability ==&lt;br /&gt;
&lt;br /&gt;
In supporting the seamless integration and use of content from different sources and multiple vendors, the Moodle platform is designed to exchange data using open industry standards for Web deployments, and supports: &lt;br /&gt;
#	&#039;&#039;&#039;[[Authentication]]&#039;&#039;&#039; using:&lt;br /&gt;
#*	[[LDAP_authentication|LDAP]], the most widely-used standard protocol for authentication.&lt;br /&gt;
#*	Direct direct database lookup (e.g. in an external Oracle database), or on the Shibboleth protocol, or alternatively using IMAP, NNTP, CAS or FirstClass.&lt;br /&gt;
#	&#039;&#039;&#039;[[Enrolment]]&#039;&#039;&#039; using:&lt;br /&gt;
#*	LDAP server (e.g. Active Directory)&lt;br /&gt;
#*	[[IMS_Enterprise|IMS Enterprise standard]] (via a downloadable plugin).&lt;br /&gt;
#	&#039;&#039;&#039;Content&#039;&#039;&#039; using the import of Reusable Learning Objects, packaged according to the SCORM/AICC/IMS Content Packaging standards. &lt;br /&gt;
#*	Moodle 1.9.5 is certified [[SCORM_module|SCORM]] 1.2 compliant. &lt;br /&gt;
#*	Moodle supports [[IMS Common Cartridge import and export]]&lt;br /&gt;
#*	The use of XML for content import/export (standard in Moodle). The &amp;quot;web services&amp;quot; method of exchanging data with other systems (e.g. via SOAP or XML-RPC) is not yet standard - but is in active development.&lt;br /&gt;
#	&#039;&#039;&#039;Quiz questions&#039;&#039;&#039; via [[Import_questions|import]] and [[Export_questions|export]] using a variety of formats.&lt;br /&gt;
#	&#039;&#039;&#039;[[RSS|RSS newsfeeds]]&#039;&#039;&#039;, integrated into a Moodle site or course. &lt;br /&gt;
#*	Forum discussions, glossary entries and database content can be accessed as RSS newsfeeds, and therefore integrated into other RSS-capable websites or systems.&lt;br /&gt;
&lt;br /&gt;
[[fr:Standards]]&lt;br /&gt;
[[es:Estándares]]&lt;br /&gt;
[[de:Standards]]&lt;br /&gt;
[[it:Standard]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Standards&amp;diff=139926</id>
		<title>Standards</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Standards&amp;diff=139926"/>
		<updated>2021-04-01T04:57:40Z</updated>

		<summary type="html">&lt;p&gt;Jaked: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About Moodle}}&lt;br /&gt;
Moodle is a global learning management platform that supports open standards, and is interoperable by design to enable integration of external applications and information onto a single Moodle platform. &lt;br /&gt;
&lt;br /&gt;
Our commitment to open standards means institutions and organisations can leverage Moodle to customise and extend features for any teaching and learning requirements, and benefit from increased cost efficiencies, flexibility, easier manageability along with performance and scalability advantages of using Moodle. &lt;br /&gt;
&lt;br /&gt;
Moodle has achieved and is compliant with the following international standards:&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10px&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 170px;&amp;quot; | [[File:moodle-opensource.png|left|160px|middle]]&lt;br /&gt;
| &#039;&#039;&#039; 1. An Open Source Initiative&#039;&#039;&#039;&lt;br /&gt;
Moodle is provided as a free, open source software that can be used, modified and freely distributed under the terms of the [[License|GNU General Public License]]. There are also plenty of documentation, course content and resources available on Moodle.org for anyone to use under the terms of various licenses, including:&lt;br /&gt;
*&#039;&#039;&#039;&#039;&#039;Moodle Documentation&#039;&#039;&#039;&#039;&#039;: All documentation on [[Main_page|docs.moodle.org]] is openly licensed under the terms of the GNU General Public License, and is Copyright © 2005 onwards by the individual authors of each page. &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 170px;&amp;quot; | [[File:moodle-imslticertified.png|left|160px|middle]]&lt;br /&gt;
| &#039;&#039;&#039;2. IMS LTI™ Certified&#039;&#039;&#039;&lt;br /&gt;
Moodle is certified [https://site.imsglobal.org/certifications/moodle/moodle#tab-v310 Learning Tool Interoperability (LTI) Advantage Complete]. The LTI™ certification is a global technical standard of integrating learning applications. Users can integrate and present externally hosted applications and content within a single Moodle platform without having to develop and maintain custom integrations. Learn more about [[External_tool|integrating LTI resources onto your Moodle platform]]. In Moodle 3.1 onwards, Moodle can also act as an LTI 1.1 and 2.0 tool provider with the [[Publish as LTI tool]].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 170px;&amp;quot; | [[File:moodle-scormcertified.png|left|160px|middle]]&lt;br /&gt;
| &#039;&#039;&#039;3. SCORM-ADL compliant&#039;&#039;&#039;&lt;br /&gt;
Moodle complies with the SCORM 1.2 specification. The SCORM (Sharable Content Object Reference Model) is a set of specifications and standards for web-based e-learning. Users can [[SCORM_module|deliver SCORM content via Moodle]] by uploading any SCORM or AICC package to the Moodle course. There are also community plugins available that provide limited support for the Experience API (Tin Can). A commercial plugin that provides full support for SCORM 2004 and the Experience API is also available in Plugins [https://moodle.org/plugins/view.php?plugin=mod_scormcloud/ here].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 170px;&amp;quot; | [[File:moodle-openbadges.png|left|160px|middle]]&lt;br /&gt;
| &#039;&#039;&#039;4. Open Badges &#039;&#039;&#039;&lt;br /&gt;
[http://openbadges.org/ Open Badges] project is an online standard to recognise and verify learning using digital badges. Integrated as a core feature in Moodle, any institution, organisation or individual can create and issue [[Badges|badges]] to learners on their Moodle learning platform. Moodle is certified [https://site.imsglobal.org/certifications/moodle/moodle#cert_pane_nid_402893 Open Badges v2.0 compliant as Issuer by IMS].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 170px;&amp;quot; | [[File:wcag21AA-logo.png|left|160px|middle]]&lt;br /&gt;
| &#039;&#039;&#039;5. WCAG 2.1 Level AA&#039;&#039;&#039;&lt;br /&gt;
Moodle has received [https://www.webkeyit.com/accessibility-services/accessibility-accreditations/moodle/ WCAG 2.1 Level AA accreditation] based on successfully resolving the issues identified in an external audit of key pages which were chosen as representative of its overall functionality and accessibility. Continuing work is being done to further improve the accessibility of other areas in Moodle in order to maintain conformance with the [https://www.w3.org/TR/WCAG21/ WCAG 2.1 Level AA guidelines].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Moodle and Interoperability ==&lt;br /&gt;
&lt;br /&gt;
In supporting the seamless integration and use of content from different sources and multiple vendors, the Moodle platform is designed to exchange data using open industry standards for Web deployments, and supports: &lt;br /&gt;
#	&#039;&#039;&#039;[[Authentication]]&#039;&#039;&#039; using:&lt;br /&gt;
#*	[[LDAP_authentication|LDAP]], the most widely-used standard protocol for authentication.&lt;br /&gt;
#*	Direct direct database lookup (e.g. in an external Oracle database), or on the Shibboleth protocol, or alternatively using IMAP, NNTP, CAS or FirstClass.&lt;br /&gt;
#	&#039;&#039;&#039;[[Enrolment]]&#039;&#039;&#039; using:&lt;br /&gt;
#*	LDAP server (e.g. Active Directory)&lt;br /&gt;
#*	[[IMS_Enterprise|IMS Enterprise standard]] (via a downloadable plugin).&lt;br /&gt;
#	&#039;&#039;&#039;Content&#039;&#039;&#039; using the import of Reusable Learning Objects, packaged according to the SCORM/AICC/IMS Content Packaging standards. &lt;br /&gt;
#*	Moodle 1.9.5 is certified [[SCORM_module|SCORM]] 1.2 compliant. &lt;br /&gt;
#*	Moodle supports [[IMS Common Cartridge import and export]]&lt;br /&gt;
#*	The use of XML for content import/export (standard in Moodle). The &amp;quot;web services&amp;quot; method of exchanging data with other systems (e.g. via SOAP or XML-RPC) is not yet standard - but is in active development.&lt;br /&gt;
#	&#039;&#039;&#039;Quiz questions&#039;&#039;&#039; via [[Import_questions|import]] and [[Export_questions|export]] using a variety of formats.&lt;br /&gt;
#	&#039;&#039;&#039;[[RSS|RSS newsfeeds]]&#039;&#039;&#039;, integrated into a Moodle site or course. &lt;br /&gt;
#*	Forum discussions, glossary entries and database content can be accessed as RSS newsfeeds, and therefore integrated into other RSS-capable websites or systems.&lt;br /&gt;
&lt;br /&gt;
[[fr:Standards]]&lt;br /&gt;
[[es:Estándares]]&lt;br /&gt;
[[de:Standards]]&lt;br /&gt;
[[it:Standard]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=OAuth_2_Microsoft_service&amp;diff=138669</id>
		<title>OAuth 2 Microsoft service</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=OAuth_2_Microsoft_service&amp;diff=138669"/>
		<updated>2020-10-15T06:15:51Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* Setup App In Microsoft */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OAuth2}}&lt;br /&gt;
=== Setup App In Microsoft ===&lt;br /&gt;
&lt;br /&gt;
To set up an OAuth 2.0 client with Microsoft, you must first register a new application by using App registrations in the [https://portal.azure.com Azure Portal]. &lt;br /&gt;
&lt;br /&gt;
1. From Azure Portal home, under &#039;Azure services&#039;, select &#039;Azure Active Directory&#039;&lt;br /&gt;
&lt;br /&gt;
2. From the left hand menu, select &#039;App registrations&#039;&lt;br /&gt;
&lt;br /&gt;
3. Select &#039;New registration&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:ms_oauth2_2a.png|none|frame|Register new application]]&lt;br /&gt;
&lt;br /&gt;
4. Choose a good name as this is what is shown to users when they are asked to approve the permissions. &lt;br /&gt;
&lt;br /&gt;
5. For supported account types select &#039;Accounts in any organizational directory (Any Azure AD directory - Multitenant)&#039;.&lt;br /&gt;
&lt;br /&gt;
6. Choose &#039;Web&#039; for redirect URI and add the callback URL. The callback URL should point to &amp;quot;your Moodle site URL + /admin/oauth2callback.php&amp;quot;. If your Moodle site was available at &amp;lt;nowiki&amp;gt;https://lemon.edu/&amp;lt;/nowiki&amp;gt; the callback URL would be &amp;lt;nowiki&amp;gt;https://lemon.edu/admin/oauth2callback.php&amp;lt;/nowiki&amp;gt;. It is important that your Moodle site uses https and not http. Microsoft will not allow the callback url if it is not using https.&lt;br /&gt;
&lt;br /&gt;
7. Click &#039;Register&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:ms_oauth2_5.png|none|frame|Application settings]]&lt;br /&gt;
&lt;br /&gt;
8. Copy the &#039;Application (client) ID&#039; to a safe place for later use.&lt;br /&gt;
&lt;br /&gt;
[[File:ms_oauth2_6b.png|none|frame|Application (client) ID]]&lt;br /&gt;
&lt;br /&gt;
9. Select &#039;Authentication&#039; from side-bar menu.&lt;br /&gt;
&lt;br /&gt;
[[File:ms_oauth2_12.png|none|frame|Authentication]]&lt;br /&gt;
&lt;br /&gt;
10. Ensure implicit grant flow is disabled.&lt;br /&gt;
&lt;br /&gt;
[[File:ms_oauth2_13.png|none|frame|Disable Implict Grant Flow]]&lt;br /&gt;
&lt;br /&gt;
11. Select &#039;API permissions&#039; from side-bar menu.&lt;br /&gt;
 &lt;br /&gt;
[[File:ms_oauth2_6.png|none|frame|API permissions]]&lt;br /&gt;
&lt;br /&gt;
12. Make sure the &amp;quot;Microsoft Graph (1)&amp;quot; permissions section contains the &amp;quot;User.Read&amp;quot; permission.&lt;br /&gt;
&lt;br /&gt;
[[File:ms_oauth2_7.png|none|frame|Microsoft Graph]]&lt;br /&gt;
&lt;br /&gt;
13. Select &#039;Certificates &amp;amp; secrets&#039; from side-bar menu.&lt;br /&gt;
&lt;br /&gt;
[[File:ms_oauth2_8.png|none|frame|Certificates &amp;amp; secrets]]&lt;br /&gt;
&lt;br /&gt;
14. Click &#039;New client secret&#039; to create password/client secret.&lt;br /&gt;
&lt;br /&gt;
[[File:ms_oauth2_9.png|none|frame|New client secret]]&lt;br /&gt;
&lt;br /&gt;
15. Add a description and select when the password/secret will expire.&lt;br /&gt;
&lt;br /&gt;
[[File:ms_oauth2_10.png|none|frame|Add a client secret]]&lt;br /&gt;
&lt;br /&gt;
16. Copy the secret string value to a safe place for later use.&lt;br /&gt;
&lt;br /&gt;
[[File:ms_oauth2_11.png|none|frame|Secret string value]]&lt;br /&gt;
&lt;br /&gt;
17. In Moodle go to OAuth2 services (Site administration &amp;gt; Server &amp;gt; OAuth2 services) and create a new Microsoft service.&lt;br /&gt;
&lt;br /&gt;
[[File:ms_oauth2_16.png|none|frame|Create new Microsoft service]]&lt;br /&gt;
&lt;br /&gt;
18. Update the name if desired and enter the password/secret as the &amp;quot;Client secret&amp;quot; and the Application ID as the &amp;quot;Client ID&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:ms_oauth2_14.png|none|frame|Add client ID and secret]]&lt;br /&gt;
&lt;br /&gt;
19. Make any additional configuration changes such as limiting login domains, whether a login button will show on the login page, and if email verification is required.&lt;br /&gt;
&lt;br /&gt;
[[File:ms_oauth2_15.png|none|frame|Addtional settings]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[OneDrive repository]]&lt;br /&gt;
* [[OAuth 2 authentication]] for enabling users to log in to Moodle with their Microsoft account&lt;br /&gt;
&lt;br /&gt;
[[es:Servicio OAuth 2 Microsoft]]&lt;br /&gt;
[[de:OAuth2 Microsoft Service]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Capabilities/moodle/site:messageanyuser&amp;diff=134821</id>
		<title>Capabilities/moodle/site:messageanyuser</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Capabilities/moodle/site:messageanyuser&amp;diff=134821"/>
		<updated>2019-07-18T07:32:40Z</updated>

		<summary type="html">&lt;p&gt;Jaked: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Capabilities}}&lt;br /&gt;
* This allows a user to send a message to any user regardless of their messaging privacy settings i.e. they can send a message to a user who has blocked them. &lt;br /&gt;
* This capability is allowed for the default roles of manager, teacher and non-editing teacher.&lt;br /&gt;
&lt;br /&gt;
[[Category:Capabilities|Site]]&lt;br /&gt;
[[Category:Messaging]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Global_search&amp;diff=131068</id>
		<title>Global search</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Global_search&amp;diff=131068"/>
		<updated>2018-05-18T02:58:22Z</updated>

		<summary type="html">&lt;p&gt;Jaked: /* The Solr server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{More features}}&lt;br /&gt;
==What is Global search?==&lt;br /&gt;
*Global search lets you search everywhere on the Moodle site that you have access to. A student can search their courses for particular lecture notes, for example, or a teacher could search for subject-related activities.&lt;br /&gt;
*The feature needs to be enabled by the administrator in Advanced features and then, from the Manage Global search page, the search engine must be selected.&lt;br /&gt;
&lt;br /&gt;
When Global search is enabled,  search box is then available next to the user menu.&lt;br /&gt;
&lt;br /&gt;
[[File:NFGlobalsearchbox.png|thumb|center|480px|Searching the site (when global search is enabled)]]&lt;br /&gt;
&lt;br /&gt;
*A [[Global search block]] may also be added to course pages.&lt;br /&gt;
&lt;br /&gt;
==What can I search for?==&lt;br /&gt;
You can search for your courses, activities information and some activities contents like forum posts, book chapters, glossary entries or collaborative wikis pages. &lt;br /&gt;
&lt;br /&gt;
HTML block content may be searched and, if the administrator enables the setting &amp;quot;Search all courses&amp;quot; then courses which are visible to users but which they are not enrolled in may also be searched. (These courses are courses with guest access or if the user has the capability to view all courses.)&lt;br /&gt;
&lt;br /&gt;
==How does it work?==&lt;br /&gt;
*Click the search icon by the user menu and type a search term into the box that appears, or type into the box in the [[Global search block]] if enabled.&lt;br /&gt;
*On the next screen, you can simply click the search button to search everywhere, or expand the Filter to search in specific areas:&lt;br /&gt;
&lt;br /&gt;
[[File:NFFilteringGlobalSearch2.png|thumb|center|600px|Filtering the search]]&lt;br /&gt;
&lt;br /&gt;
*You will then see results displayed from all areas of Moodle you have access to:&lt;br /&gt;
&lt;br /&gt;
[[File:31GSResults2a.png|thumb|center|600px|Search results]]&lt;br /&gt;
&lt;br /&gt;
===Solr search query features===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These search features are only available if you use &#039;&#039;&#039;Solr&#039;&#039;&#039; as your search engine.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can improve your search using any of the following search query features:&lt;br /&gt;
&lt;br /&gt;
* Specifying the field to be searched by prefixing the search query with &#039;title:&#039;, &#039;content:&#039;, &#039;name:&#039;, or &#039;intro:&#039; e.g.&#039;title:news&#039; returns results with the word &#039;news&#039; in the title&lt;br /&gt;
* Boolean operators (&#039;AND&#039;, &#039;OR&#039;, &#039;NOT&#039;) to combine or exclude keywords&lt;br /&gt;
* Wildcard characters (&#039;*&#039; or &#039;?&#039; ) to represent characters in the search query&lt;br /&gt;
* Proximity searches (&#039;~&#039;) e.g. mood~2 returns &amp;quot;moodle&amp;quot; (2 letters away from &amp;quot;mood&amp;quot;), Moodle Australia~3 returns results containing &amp;quot;Moodle HQ in Perth, Australia&amp;quot; (the queried terms were within 3 words of each other)&lt;br /&gt;
* Boosting terms (&#039;^&#039;) to boost certain words or phrases e.g. &amp;quot;Perth Australia&amp;quot;^5 &amp;quot;Australia&amp;quot; will return results with the phrase &amp;quot;Perth Australia&amp;quot; as more relevant.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New in 3.5&#039;&#039;&#039; : New fields now facilitate filtering by user ID and searching by group.&lt;br /&gt;
&lt;br /&gt;
Note: The above features are only available when using the Solr search engine.&lt;br /&gt;
&lt;br /&gt;
==How is it set up?==&lt;br /&gt;
&lt;br /&gt;
Note: Global search needs a search engine. It&#039;s recommended you set everything up first, index the site contents &#039;&#039;and only then&#039;&#039; enable Global search.&lt;br /&gt;
&lt;br /&gt;
Moodle core includes two search engines: Simple Global search and Solr. See the [https://docs.moodle.org/dev/Search_engines Developer docs on Search engine plugins] if you wish to write your own.&lt;br /&gt;
&lt;br /&gt;
===Setting up Simple search===&lt;br /&gt;
&lt;br /&gt;
{{New features}}&lt;br /&gt;
Simple Global search provides global search features without the need to install an external search engine.&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/4JJhOd2XAiY | desc = Simple global search}}&lt;br /&gt;
&lt;br /&gt;
===Setting up Solr===&lt;br /&gt;
&lt;br /&gt;
* The latest Solr 5 available version is the recommended one.&lt;br /&gt;
* Moodle supports Solr server from 4.0 onwards, although you can only use the Solr schema setup script that we provide with Moodle from Solr 5. The latest Solr 5 available version is the recommended one; the same will apply to Solr 6 once it is released.&lt;br /&gt;
* Solr 7 is not currently supported as the field type &#039;int&#039; has been removed.&lt;br /&gt;
&lt;br /&gt;
====General Setup====&lt;br /&gt;
&lt;br /&gt;
# Set the feature up in &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Search &amp;gt; Manage global search&#039;&#039; by selecting Solr as the search engine and ticking search area checkboxes as required&lt;br /&gt;
# In &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Search &amp;gt; Solr&#039;&#039;, set &#039;&#039;&#039;Host name&#039;&#039;&#039; to localhost, &#039;&#039;&#039;Port&#039;&#039;&#039; to 8983 and &#039;&#039;&#039;Index name&#039;&#039;&#039; to &#039;moodle&#039; (the name of the index in Solr) &lt;br /&gt;
# If you are using Solr with SSL encryption, you will need to configure Moodle as such. This is important if solr is not installed in the web server server.&lt;br /&gt;
## You will need a separate key file and cacert file, both in pem format, located on your server Moodle, and readable by the PHP process.&lt;br /&gt;
## Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Search &amp;gt; Solr&#039;&#039;&lt;br /&gt;
## Set &#039;&#039;&#039;Secure mode&#039;&#039;&#039; to Yes&lt;br /&gt;
## &#039;&#039;&#039;SSL certificate&#039;&#039;&#039; to /path/to/certs/solr-ssl.cacert.pem&lt;br /&gt;
## &#039;&#039;&#039;SSL key&#039;&#039;&#039; to /path/to/certs/solr-ssl.key.pem&lt;br /&gt;
## &#039;&#039;&#039;SSL key Password&#039;&#039;&#039; to The password used to lock the SSL Key&lt;br /&gt;
## &#039;&#039;&#039;SSL CA certificates name&#039;&#039;&#039; to /path/to/certs/solr-ssl.cacert.pem&lt;br /&gt;
# You now need to populate the created Solr index with your site&#039;s data. You can do it via the web interface by going to &#039;&#039;Site administration &amp;gt; Reports &amp;gt; Global search info&#039;&#039; or from the CLI by running the &amp;lt;tt&amp;gt;search/cli/indexer.php&amp;lt;/tt&amp;gt; script. The CLI script is the recommended option for big sites.&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;# sudo -u www-run php search/cli/indexer.php --force&amp;lt;/code&amp;gt;&lt;br /&gt;
# Enable Global search in &#039;&#039;Site administration &amp;gt; Advanced features&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====File Indexing====&lt;br /&gt;
&lt;br /&gt;
Solr has the ability to index the contents of files, such as File resources and attachments to Forum posts. This uses the [https://tika.apache.org/ Tika] engine which comes bundled with Solr. To enable this feature:&lt;br /&gt;
# In &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Search &amp;gt; Solr&#039;&#039; enable the checkbox &#039;&#039;&#039;Enable file indexing&#039;&#039;&#039;&lt;br /&gt;
# Set &#039;&#039;&#039;Maximum file size to index (kB)&#039;&#039;&#039; to some value - the default is &#039;&#039;&#039;2097152&#039;&#039;&#039; (2GB)&lt;br /&gt;
#* Files larger than this limit will not be sent for Solr for indexing, but the file name will still be indexed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New in 34:&#039;&#039;&#039; File indexing now works retroactively -ie, if you set up Global search without file indexing enabled and a later date you enable file indexing, files associated with existing objects will be included.&lt;br /&gt;
&lt;br /&gt;
===How to install Solr===&lt;br /&gt;
&lt;br /&gt;
You need PHP Solr extension installed. You can download the official latest versions from [http://pecl.php.net/package/solr PECL: Package: solr]. The minimum required version is PECL Solr 2.1 for PHP 5 branch and PECL Solr 2.4 for PHP 7 branch.&lt;br /&gt;
&lt;br /&gt;
Basic installation steps (using apache web server):&lt;br /&gt;
&lt;br /&gt;
==== Linux (Debian/Ubuntu) ====&lt;br /&gt;
With PHP5.x&lt;br /&gt;
    sudo apt-get install libpcre3-dev libxml2-dev libcurl4-openssl-dev&lt;br /&gt;
    sudo apt-get install php5-dev&lt;br /&gt;
    sudo apt-get install php-pear&lt;br /&gt;
    sudo pecl install solr&lt;br /&gt;
    sudo sh -c &amp;quot;echo &#039;extension=solr.so&#039; &amp;gt; /etc/php5/apache2/conf.d/solr.ini&amp;quot;&lt;br /&gt;
    sudo sh -c &amp;quot;echo &#039;extension=solr.so&#039; &amp;gt; /etc/php5/cli/conf.d/solr.ini&amp;quot;&lt;br /&gt;
    sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
With PHP 7&lt;br /&gt;
    sudo apt-get install libpcre3-dev libxml2-dev libcurl4-openssl-dev&lt;br /&gt;
    sudo apt-get install php7.0-dev&lt;br /&gt;
    sudo apt-get install php-pear&lt;br /&gt;
    sudo pecl install solr&lt;br /&gt;
    sudo sh -c &amp;quot;echo &#039;extension=solr.so&#039; &amp;gt; /etc/php/7.0/apache2/conf.d/solr.ini&amp;quot;&lt;br /&gt;
    sudo sh -c &amp;quot;echo &#039;extension=solr.so&#039; &amp;gt; /etc/php/7.0/cli/conf.d/solr.ini&amp;quot;&lt;br /&gt;
    sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
==== Linux (Redhat/Centos 6 &amp;amp; 7) ====&lt;br /&gt;
&lt;br /&gt;
===== Using built in php5 packages =====&lt;br /&gt;
  yum install php-pecl-solr2&lt;br /&gt;
  service httpd restart&lt;br /&gt;
&lt;br /&gt;
===== Using 3rd party php7 packages (webtactic) =====&lt;br /&gt;
  yum install libxml2-devel pcre-devel libcurl-devel php70w-devel php70w-pear&lt;br /&gt;
  pecl install solr&lt;br /&gt;
  echo &amp;quot;extension=solr.so&amp;quot; &amp;gt; /etc/php.d/solr.ini&lt;br /&gt;
  service httpd restart&lt;br /&gt;
&lt;br /&gt;
==== OSX using macports ====&lt;br /&gt;
&lt;br /&gt;
    sudo port install apache-solr4&lt;br /&gt;
    sudo port install php54-solr&lt;br /&gt;
&lt;br /&gt;
==== OSX using homebrew ====&lt;br /&gt;
&lt;br /&gt;
    brew install homebrew/php/php56-solr&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
Install the pecl package as usual. (This has not yet been tested.)&lt;br /&gt;
&lt;br /&gt;
==== The Solr server ====&lt;br /&gt;
&lt;br /&gt;
Note that for medium/large sites you may need to increase maxBooleanClauses setting. In [https://tracker.moodle.org/browse/MDL-54992 MDL-54992] we are working on an alternative way to query the server. &lt;br /&gt;
 &lt;br /&gt;
The following example snippet (feel free to copy &amp;amp; paste into a .sh script with execution permissions) will download Solr 5.4.1 (replace it with latest 5.x) in the current directory, start the solr server and create an index in it named &#039;&#039;&#039;moodle&#039;&#039;&#039; to add moodle data to it. If wget gives an error, check  http://www-us.apache.org/dist/lucene/solr and update SOLRVERSION&lt;br /&gt;
&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    set -e&lt;br /&gt;
    SOLRVERSION=5.5.5&lt;br /&gt;
    SOLRNAME=solr-$SOLRVERSION&lt;br /&gt;
    SOLRTAR=$SOLRNAME&#039;.tgz&#039;&lt;br /&gt;
    INDEXNAME=moodle&lt;br /&gt;
    if [ -d $SOLRNAME ]; then&lt;br /&gt;
        echo &amp;quot;Error: Directory $SOLRNAME already exists, remove it before starting the setup again.&amp;quot;&lt;br /&gt;
        exit 1&lt;br /&gt;
    fi&lt;br /&gt;
    if [ ! -f $SOLRTAR ]; then&lt;br /&gt;
        wget http://www-us.apache.org/dist/lucene/solr/$SOLRVERSION/$SOLRTAR&lt;br /&gt;
    fi&lt;br /&gt;
    tar -xvzf $SOLRTAR&lt;br /&gt;
    cd $SOLRNAME&lt;br /&gt;
    bin/solr start&lt;br /&gt;
    bin/solr create -c $INDEXNAME&lt;br /&gt;
    # After setting it up and creating the index use:&lt;br /&gt;
    # - &amp;quot;/yourdirectory/solrdir/bin/solr start&amp;quot; from CLI to start the server&lt;br /&gt;
    # - &amp;quot;/yourdirectory/solrdir/bin/solr stop&amp;quot; from CLI to stop the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Solr 5/6 schema setup=====&lt;br /&gt;
&lt;br /&gt;
Moodle will use Solr&#039;s managed schema interface to install the required fields. You will be directed on what to do from the Manage global search page.&lt;br /&gt;
&lt;br /&gt;
For very large or busy sites, it is recommended that you manually remove the &#039;&#039;&#039;_text_&#039;&#039;&#039; field, and associated copy directive from, the default Solr schema. This field is not used by Moodle, and will significantly slow indexing, and increase the size of the resulting Solr core.&lt;br /&gt;
&lt;br /&gt;
=====Solr 4 schema setup=====&lt;br /&gt;
&lt;br /&gt;
You cannot  use the schema setup script when using a Solr 4 server. If you really want to use the Solr 4x branch, here are the field types descriptions:&lt;br /&gt;
&lt;br /&gt;
Extracted from search/classes/document.php&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field name&lt;br /&gt;
! Field type&lt;br /&gt;
! Stored&lt;br /&gt;
! Indexed&lt;br /&gt;
! Query field&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| org.apache.solr.schema.StrField&lt;br /&gt;
| true&lt;br /&gt;
| false&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| itemid&lt;br /&gt;
| org.apache.solr.schema.TrieIntField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| title&lt;br /&gt;
| org.apache.solr.schema.TextField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
|-&lt;br /&gt;
| content&lt;br /&gt;
| org.apache.solr.schema.TextField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
|-&lt;br /&gt;
| contextid&lt;br /&gt;
| org.apache.solr.schema.TrieIntField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| areaid&lt;br /&gt;
| org.apache.solr.schema.StrField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| org.apache.solr.schema.TrieIntField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| courseid&lt;br /&gt;
| org.apache.solr.schema.TrieIntField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| owneruserid&lt;br /&gt;
| org.apache.solr.schema.TrieIntField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| modified&lt;br /&gt;
| org.apache.solr.schema.TrieDateField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| userid&lt;br /&gt;
| org.apache.solr.schema.TrieIntField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| description1&lt;br /&gt;
| org.apache.solr.schema.TextField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
|-&lt;br /&gt;
| description2&lt;br /&gt;
| org.apache.solr.schema.TextField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
|-&lt;br /&gt;
| solr_filegroupingid&lt;br /&gt;
| org.apache.solr.schema.StrField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| solr_fileid&lt;br /&gt;
| org.apache.solr.schema.StrField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| solr_filecontenthash&lt;br /&gt;
| org.apache.solr.schema.StrField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| solr_fileindexstatus&lt;br /&gt;
| org.apache.solr.schema.TrieIntField&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| solr_filecontent&lt;br /&gt;
| org.apache.solr.schema.TextField&lt;br /&gt;
| false&lt;br /&gt;
| true&lt;br /&gt;
| true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Memory and File indexing considerations=====&lt;br /&gt;
&lt;br /&gt;
For large sites, and particularly if you are using the File indexing feature, it&#039;s a good idea to give Solr plenty of memory, eg aound 10-20GB. To start Solr with more than its default 512MB of RAM, use the &#039;&#039;-m&#039;&#039; option: &lt;br /&gt;
 solr start -m 12g&lt;br /&gt;
&lt;br /&gt;
See the documents for your version of Solr on how to increases memory when Solr is started automatically.&lt;br /&gt;
&lt;br /&gt;
=====Too many boolean clauses error=====&lt;br /&gt;
&lt;br /&gt;
Because of the way Moodle handles permissions for searches, if you have non-admin users with access to a large number of activities (&amp;gt;1000), they may an error similar to the following:&lt;br /&gt;
&lt;br /&gt;
    The query you provided could not be parsed by the search engine: org.apache.solr.search.SyntaxError: Cannot parse &lt;br /&gt;
    ...&lt;br /&gt;
    too many boolean clauses&lt;br /&gt;
&lt;br /&gt;
To correct this, you need to increase the &#039;&#039;maxBooleanClauses&#039;&#039; setting in your Solr core. The setting is located in &#039;&#039;corename/conf/solrconfig.xml&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This important note is included in the config file:&lt;br /&gt;
    ** WARNING **&lt;br /&gt;
    &lt;br /&gt;
    This option actually modifies a global Lucene property that&lt;br /&gt;
    will affect all SolrCores.  If multiple solrconfig.xml files&lt;br /&gt;
    disagree on this property, the value at any given moment will&lt;br /&gt;
    be based on the last SolrCore to be initialized.&lt;br /&gt;
&lt;br /&gt;
This means that for consistent behavior you should update this value for all cores in the Solr server.&lt;br /&gt;
&lt;br /&gt;
====Commannd for installing Solr Server on Centos 7====&lt;br /&gt;
First of all install java (openjdk)&lt;br /&gt;
 yum install java-1.8.0-openjdk&lt;br /&gt;
Add user for solr&lt;br /&gt;
 adduser solr&lt;br /&gt;
Download solr server, find latest here : http://lucene.apache.org/solr/mirrors-solr-latest-redir.html, from the list there download latest solr-[version].tgz&lt;br /&gt;
&lt;br /&gt;
Here is the list of needed commands (note that latest solr is suggested, change command to appropriate version) &lt;br /&gt;
 cd /opt&lt;br /&gt;
 wget http://www-eu.apache.org/dist/lucene/solr/6.6.0/solr-6.6.0.tgz&lt;br /&gt;
 tar zxvf solr-6.6.0.tgz&lt;br /&gt;
 cp solr-6.6.0/bin/install_solr_service.sh .&lt;br /&gt;
 rm -rf solr-6.6.0&lt;br /&gt;
 ./install_solr_service.sh solr-6.6.0.tgz&lt;br /&gt;
 chkconfig solr on&lt;br /&gt;
Create the index&lt;br /&gt;
 su - solr -c &amp;quot;/opt/solr/bin/solr create_core -c moodle&amp;quot;&lt;br /&gt;
Then go to your Moodle and set index name as created (moodle)&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
Forum discussions:&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=334938 Global search doesn&#039;t index plugins?]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=339819 Global Search on Moodle 3.1]&lt;br /&gt;
&lt;br /&gt;
[[es:Búsqueda global]]&lt;br /&gt;
[[de:Globale Suche]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/500/en/index.php?title=Capabilities/moodle/restore:viewautomatedfilearea&amp;diff=128826</id>
		<title>Capabilities/moodle/restore:viewautomatedfilearea</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/500/en/index.php?title=Capabilities/moodle/restore:viewautomatedfilearea&amp;diff=128826"/>
		<updated>2017-09-15T02:59:27Z</updated>

		<summary type="html">&lt;p&gt;Jaked: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Capabilities}}&lt;br /&gt;
*This allows a user to restore courses from the automated backup storage (as specified in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; &amp;gt; Courses &amp;gt; Backups &amp;gt; Automated backup setup&#039;&#039;)&lt;br /&gt;
*This capability is not set for any of the default roles&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Automated course backup]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Capabilities|Backup]]&lt;br /&gt;
[[Category:Backup]]&lt;br /&gt;
&lt;br /&gt;
[[es:Capabilities/moodle/restore:viewautomatedfilearea]]&lt;/div&gt;</summary>
		<author><name>Jaked</name></author>
	</entry>
</feed>