Integration des Discourse Learning Management Systems (LTI 1.3-Authentifizierung)

||||
-|-|
:discourse2: | Zusammenfassung | Discourse LTI ermöglicht es Discourse, sich über den LTI 1.3-Standard mit einer Reihe von Lernmanagementsystemen zu integrieren.
:open_book: | Installationsanleitung | Dieses Plugin ist im Discourse-Kern enthalten. Eine separate Installation des Plugins ist nicht erforderlich.

Dieses Plugin implementiert den LTI 1.3-Standard für die Authentifizierung, der von einer Reihe von Lernmanagementsystemen unterstützt wird. Discourse fungiert innerhalb des LTI-Standards als „Tool“. Nach der Konfiguration können Benutzer auf einen Button/Link im Lernmanagementsystem klicken und sich sofort bei Discourse anmelden.

Die genauen Einrichtungsschritte variieren je nach Ihrem Lernmanagementsystem. Im Allgemeinen gilt jedoch:

  1. Erstellen Sie einen neuen „Tool“-Eintrag in Ihrem Lernmanagementsystem
  • LTI-Version: 1.3
  • Start-URL: Eine beliebige URL auf Ihrer Website. Benutzer werden nach der Anmeldung hierher weitergeleitet
  • Auth-Anforderungs-URL: https://<ihr-discourse-site>/auth/lti/initiate
  • Weiterleitungs-URL: https://<ihr-discourse-site>/auth/lti/callback
  • Tool-Public-Key – leer lassen. Discourse sendet keine Daten an das LMS
  1. Suchen Sie in Ihrem LMS nach dem „Authorization endpoint“, der „Tool Client ID“, der „Platform Issuer ID“ und dem „Platform Public Key“ und fügen Sie diese in die entsprechenden Site-Einstellungen in Discourse ein. In Discourse finden Sie die Einstellungen, indem Sie in der Benutzeroberfläche der Site-Einstellungen nach lti suchen.

  2. Wenn Ihr Lernmanagementsystem garantiert, dass Benutzer-E-Mails überprüft wurden, aktivieren Sie die Site-Einstellung lti email verified. :warning: Warnung: Wenn Ihr LMS E-Mails nicht überprüft, stellt die Aktivierung von lti email verified ein Sicherheitsrisiko dar.

  3. Aktivieren Sie die Site-Einstellung lti enabled

Falls diese Anweisungen für Ihr LMS nicht zutreffen, posten Sie bitte im unten stehenden Thema, und wir werden unsere Besten tun, die Anweisungen entsprechend zu aktualisieren.

Was ist, wenn meine Seite invite_required ist?

Wenn Sie möchten, dass Ihre Benutzer den Discourse-Einladungsprozess durchlaufen, wenn sie sich zum ersten Mal anmelden, können Sie LTI „Custom Properties“ verwenden, um einen Discourse-Einladungslink anzugeben. Neue Benutzer werden zur Einladung weitergeleitet, während bestehende Benutzer zur regulären Start-URL gesendet werden. Zum Beispiel:

Eigenschaftsname Eigenschaftswert
discourse_invite_link https://discourse.example.com/invites/abcdefg

FAQ

Unterstützt das Plugin die Integration mit mehreren LMS-Systemen gleichzeitig?

  • Das Plugin unterstützt derzeit nur die Verbindung eines LMS mit einer Site. Die Site-Einstellung LTI client IDs akzeptiert zwar mehrere Werte, aber der Grund dafür ist, dass einige LMS-Systeme pro Kurs eine Client-ID festlegen.
23 „Gefällt mir“

Haben Sie spezifische Anweisungen für die Integration der LTI-Integration mit Canvas LMS?

1 „Gefällt mir“

Sie benötigen Ihre Administratoren, um die Integration durchzuführen.

Ich bin einer unserer Administratoren und auch ein Softwareentwickler. Ich glaube, das Problem, das ich habe, hat mit Cookies und dem „State“ zwischen Discourse und Canvas zu tun, die nicht übereinstimmen.

Dies ist der Fehler, den ich in den Discourse-Protokollen erhalte:

(lti) Authentifizierungsfehler! state_mismatch: StandardError, State-Parameter stimmte nicht mit der Sitzung überein

Ich glaube, dieser Fehler wird von hier ausgelöst: discourse-lti/lib/discourse_lti/lti_omniauth_strategy.rb at main · discourse/discourse-lti · GitHub

Haben Sie Ideen oder Dinge, die ich untersuchen kann, um dies zu debuggen? Auf dieser Seite in den Canvas Docs: Overview of an LTI Launch <a name="launch-overview"></a> - Canvas LMS REST API Documentation

Gibt es einen Abschnitt „Launching without Cookies“, der hier relevant ist. Aber ich bin mir nicht zu 100 % sicher. Jede Hilfe oder Einblicke wäre sehr willkommen.

Ich konnte das LTI in Canvas mit einer Einschränkung zum Laufen bringen. Hier sind meine Schritte:

  1. Erstellen Sie einen Entwicklerschlüssel in Canvas. Es spielt keine Rolle, was Sie in die JWK-Methode und Public JWK eingeben

  2. Füllen Sie in den Discourse LTI-Einstellungen Ihre Einstellungen aus

  3. Für den öffentlichen Schlüssel können Sie zu https://\u003cyour_canvas_url\u003e/api/lti/security/jwks navigieren und den zweiten Schlüssel kopieren. Dann können Sie zu https://8gwifi.org/jwkconvertfunctions.jsp gehen, ihn dort einfügen und konvertieren. Kopieren Sie dann den Text zwischen -----BEGIN/END PUBLIC KEY----- und fügen Sie ihn in den Lti platform public key in den Discourse LTI-Einstellungen ein. Speichern Sie dann.

Hier ist die Einschränkung. Diese JWKs, die Canvas generiert, werden anscheinend monatlich rotiert. Sobald sich dieser zweite Schlüssel ändert, funktioniert das LTI nicht mehr und Sie müssen ihn durch den neuen ersetzen, indem Sie Schritt 3 befolgen.

Das Discourse LTI-Plugin muss eine Public JWK URL unterstützen, um aktuell zu bleiben.

2 „Gefällt mir“

Kann ich mehrere LMS in ein einzelnes Discourse integrieren?

:partying_face: Dieses Plugin ist jetzt Teil des Discourse-Kerns im Rahmen von Bundling more popular plugins with Discourse core. Wenn Sie selbst hosten und das Plugin verwenden, müssen Sie es vor dem nächsten Upgrade aus Ihrer app.yml entfernen.

3 „Gefällt mir“