LTI at a Glance

LTI 1.3 (Learning Tools Interoperability) makes it possible to share learning content between different learning environments. A course can be hosted in one system (the Tool) and made accessible in another system (the Platform). This means you can either offer content to other platforms (for example, as an e-learning provider) or consume content that another system has made available.

The key concepts in LTI 1.3 are:

  • Platform: the customer’s system that wants to use the content. Technically, this is the system that initiates the LTI connection. Examples include Moodle, Blackboard, or Canvas on the consumer side.

  • Tool: the system that hosts and delivers the content or course via LTI. This is where the learning activity actually runs.

  • Registration: the mutual trust relationship between the Tool and Platform, established either dynamically or manually.

  • Deployment: a specific activation of the connection, in which the Platform is granted access to certain courses or content.

  • Launch: the moment when a user clicks an LTI link in the Platform and is redirected to the Tool.

  • Line item and scores: parts of the LTI standard used—for example—to send grades from the Tool back to the Platform.

In this guide, we explain how to register a Platform (client) in the ‘server’, how to publish content as an LTI 1.3 Tool, and how a customer can consume that content in their own Moodle.

1. Enable LTI in Moodle

  1. Log in as an administrator.

  2. Go to Site administration > Plugins > Manage enrol plugins (/admin/settings.php?section=manageenrols).

  3. Locate Publish as LTI tool and click the toggle to Activate.

  4. (Optional) Configure defaults: Site administration > Plugins > Enrolments > Publish as LTI tool > Settings.

2. Perform Automated (Dynamic) Registration

Use when the Tool Consumer (Moodle B) supports dynamic registration.

2.1 On the Tool Provider (Moodle A)

  1. Go to Site administration > Plugins > Enrolments > Publish as LTI tool > Tool registration.

  2. Click Register a platform.

  3. Enter a Platform name (e.g., “Moodle B”) and click ‘Continue’.

  4. Copy the Registration URL displayed under Tool details and share it with your consumer.

2.2 On the Platform (Moodle B, the consumer)

  1. Go to Site administration > Plugins > Activity modules > External tool > Manage tools.

  2. In the Add tool field at the top, paste the Registration URL.

  3. Click Add LTI Advantage. Moodle will import the tool and list it under Tools.

2.3 Configure Custom parameters on the Registered Tool

  1. Still under Manage tools (Moodle B), locate your newly registered LTI tool.

  2. Click the Edit (pencil or gear) icon to open the tool settings.

  3. Scroll down (or expand Show more… if you’re doing this in the activity settings) until you see the Custom parameters field.

  4. Enter the resource identifier from Moodle A’s Published content > Custom properties, for example:
    id=fe3dfbec-bd5b-4532-8bd5-0804a7102631

  5. Click Save changes.

3. Publish Course as LTI Content (Tool Provider)

  1. Navigate to the course you want to share (e.g., /course/view.php?id=<courseid>).

  2. From the More menu, select Publish as LTI tool.

  3. On the Published content page under the LTI Advantage tab, Moodle will automatically list the Launch URL and Custom properties (including your previously configured deployment_id).

  4. No additional input is required here—Moodle handles the URL and ID generation.

  5. Copy the Launch URL and Custom properties values for use when registering the tool on the consumer side.

Note: you also have the option to set the ‘Maximum enrolled users’ for the LTI course.

4. Add External Tool to a Course

Before adding the activity, ensure the LTI tool is visible in the course activity chooser:

  1. In your course, click the More menu and select LTI External tools.

  2. On the LTI External tools page, locate your tool in the list and toggle Show in activity chooser to On.

  3. Close the LTI External tools page by clicking on the Course tab.

Now add the External tool activity:

  1. In your course, click Add an activity or resource and click on the name of the External tool.

  2. Under New External tool, enter an Activity name and adjust settings (appearance, grades, privacy) as needed.

  3. Click Save and return to course.

5. Test the LTI Launch. Test the LTI Launch

  1. As a test user, click the External tool link in Moodle B.

  2. Confirm you are redirected into Moodle A content.

  3. Verify navigation, content access, and grade passback if enabled.

6. Troubleshooting

  • Invalid launch data: custom claim ‘id’ missing: Ensure the id=<deployment_id> in the External tool’s Custom parameters matches the Deployment ID published in the Tool Provider’s course settings. See section 2.5: Configure Custom parameters on the Registered Tool.

  • Unable to find deployment: Verify the deployment_id claim in the JWT matches the Deployment ID on the Tool Provider under Publish as LTI tool → Configure → Deployments.

  • JWT signature or key errors: Confirm both sites’ JWKS URLs are correct and reachable.

  • No grades returned: Make sure Line item services are enabled in both Moodle A’s Platform details and the Platform’s External tool settings.

  • Browser blocking LTI cookies in IFRAME: If the tool is embedded in an iframe and cookies are rejected despite allowing third‑party cookies:

  1. In Moodle A’s web root, add or update your .htaccess (Apache) or server config (NGINX) to mark cookies with SameSite=None; Secure. For Apache:
    Header always edit Set-Cookie ^(.*)$ “$1; SameSite=None; Secure”

  2. For NGINX, add in your server block:
    proxy_cookie_path / “/; SameSite=None; Secure”;

  3. Reload/restart your web server.

  4. Clear your browser cookies for the Moodle A domain and try the launch again.

Solin integrates Moodle with external tools, platforms, and learning ecosystems using standards such as LTI 1.3. Need help? Contact us.

Contact us