# Discourse Learning Management System Integration (LTI 1.3 Authentication)

**URL:** https://meta.discourse.org/t/discourse-learning-management-system-integration-lti-1-3-authentication/196174
**Category:** Plugin
**Tags:** official, lti, included-in-core
**Created:** [July 6, 2021, 12:37pm UTC](https://meta.discourse.org/t/discourse-learning-management-system-integration-lti-1-3-authentication/196174 "2021-07-06T12:37:14Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![Discourse](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/discourse/32/148734_2.png) [@Discourse](https://meta.discourse.org/u/Discourse)
#### Post date: [July 6, 2021, 12:37pm UTC](https://meta.discourse.org/t/discourse-learning-management-system-integration-lti-1-3-authentication/196174/1 "2021-07-06T12:37:14Z")

</div>

| | | |
| --- | --- | --- |
| :discourse2: | **Summary** | **Discourse LTI** allows Discourse to integrate with a number of learning management systems via the [LTI 1.3 standard](https://www.imsglobal.org/activity/learning-tools-interoperability). |
| 📖 | **Install Guide** | **This plugin is bundled with Discourse core**. There is no need to install the plugin separately. |

> [@](#):
>
> :discourse2: As this is an #official plugin maintained by the Discourse team, #Support, #Contribute > Bug, #Contribute > UX, and #Contribute > Feature requests can be made in the respective categories here on Meta, and tagged with the appropriate plugin tag. Click on a link below to get one started. 👍
> 
> [❓&nbsp; **Support**](https://meta.discourse.org/new-topic?category_id=6&body=%3E%20Before%20asking,%20did%20you%20search%20first%3F%20Press%20%F0%9F%94%8D%20at%20the%20upper%20right%20to%20search.&tags=lti "Ask for support on configuring and using Discourse LTI") [🐛&nbsp; **Bug**](https://meta.discourse.org/new-topic?category_id=1&tags=lti "A bug report means something is broken, preventing normal/typical use of the plugin") [👀&nbsp; **UX**](https://meta.discourse.org/new-topic?category_id=9&tags=lti "Discussion about the user interface of Discourse LTI, and how features are presented (including language and UI elements)") [💡&nbsp; **Feature**](https://meta.discourse.org/new-topic?category_id=2&tags=lti "Discussion about how existing Discourse LTI features can be improved or enhanced, and how proposed new features could work")

This plugin implements the LTI 1.3 standard for authentication, which is supported by a number of learning management systems. Discourse acts as a “Tool” within the LTI standard. Once configured, users will be able to click a button/link on the learning management system, and instantly be logged into Discourse.

Precise setup instructions will vary based on your Learning Management System. But in general:

1. Create a new “Tool” entry in your learning management system

- LTI Version: 1.3
- Launch URL: any URL on your site. Users will be directed here after login
- Auth Request URL: `https://<your-discourse-site>/auth/lti/initiate`
- Redirect URL: `https://<your-discourse-site>/auth/lti/callback`
- Tool Public Key - leave blank. Discourse never sends data to the LMS

1. In your LMS, find the 'Authorization endpoint", “Tool Client ID”, “Platform Issuer ID”, and the “Platform Public Key”, and add them to the relevant site settings in Discourse. In Discourse, the settings can be found by searching for `lti` in the Discourse site settings UI.

2. If your learning management system guarantees User emails have been validated, enable the `lti email verified` site setting. ⚠ Warning: If your LMS does not verify emails, enabling `lti email verified` is a security risk.

3. Turn on the `lti enabled` site setting

If these instructions don’t make sense for your LMS, please post in the topic below and we’ll do our best to update the instructions accordingly.

### What if my site is invite\_required?

If you want your users to go through the Discourse invite redemption flow when they first log in, you can use LTI “Custom Properties” to specify a Discourse invite link. New users will be directed to the invite, while existing users will be sent to the regular launch URL. For example:

| Property Name | Property Value |
| --- | --- |
| `discourse_invite_link` | `https://discourse.example.com/invites/abcdefg` |

### FAQ

**Does the plugin support integration with multiple LMS systems at the same time?**

- The plugin only supports one LMS to be connected to a site at the moment. The `LTI client IDs` site setting does accept multiple values, but the reason is because some LMS systems set one **client ID** per **course**.

> Last edited by @fzngagan 2026-04-17T11:46:53Z
> 
> > **Check document**
> >
> > Perform check on document:

---

_[View the full topic](https://meta.discourse.org/t/discourse-learning-management-system-integration-lti-1-3-authentication/196174)._
