Discourse学習管理システム統合(LTI 1.3認証)」

:discourse2: Summary Discourse LTI allows Discourse to integrate with a number of learning management systems via the LTI 1.3 standard.
:open_book: Install Guide This plugin is bundled with Discourse core. There is no need to install the plugin separately.

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: 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

Last edited by @tobiaseigen 2025-07-16T21:17:34Z

Check documentPerform check on document:
「いいね!」 22

Canvas LMSとのLTI連携を統合するための具体的な手順はありますか?

「いいね!」 1

統合を行うには、管理者に依頼する必要があります。

私は管理者であり、ソフトウェアエンジニアでもあります。この問題はクッキーと、Discourse と Canvas の間の「状態」が一致しないことに関連していると思います。

Discourse ログで表示されるエラーは次のとおりです。

(lti) 認証失敗! state_mismatch: StandardError, State パラメータがセッションと一致しませんでした。

このエラーは、ここからスローされていると思います: discourse-lti/lib/discourse_lti/lti_omniauth_strategy.rb at main · discourse/discourse-lti · GitHub

この問題をデバッグするのに役立つアイデアや調査すべきことはありますか? Canvas ドキュメントのこのページ: Overview of an LTI Launch <a name="launch-overview"></a> - Canvas LMS REST API Documentation

ここには「クッキーなしでの起動」セクションがあり、これが関連していると思いますが、100% 確信はありません。どんな助けや洞察でも大歓迎です。

Canvas で LTI を動作させることができましたが、ただし注意点があります。手順は以下の通りです。\n\n1. Canvas で開発者キーを作成します。JWK メソッドと公開 JWK に何を入力しても構いません。\n

\n\n2. Discourse LTI 設定で、設定を入力します。\n\n\n3. 公開キーについては、https://\u003cyour_canvas_url\u003e/api/lti/security/jwks にアクセスし、2 番目のキーをコピーしてください。次に、https://8gwifi.org/jwkconvertfunctions.jsp にアクセスして貼り付け、変換します。その後、-----BEGIN/END PUBLIC KEY-----間にあるテキストをコピーし、Discourse LTI 設定の「Lti プラットフォーム公開キー」に貼り付けます。その後、保存します。\n\n注意点があります。Canvas が生成する JWK はローテーションされており、おそらく毎月変更されます。2 番目のキーが変更されると、LTI は機能しなくなり、手順 3 に従って新しいキーに置き換える必要があります。\n\nDiscourse LTI プラグインは、最新の状態を維持するために、公開 JWK URL をサポートする必要があります。

「いいね!」 2

単一のDiscourseに複数のLMSを統合できますか?

:partying_face: このプラグインは、Bundling more popular plugins with Discourse core の一部として、Discourse コアにバンドルされるようになりました。セルフホストでこのプラグインを使用している場合は、次回のアップグレード前に app.yml から削除する必要があります。

「いいね!」 1