Integrazione di Discourse Learning Management System (Autenticazione LTI 1.3)

:discourse2: Riepilogo Discourse LTI consente a Discourse di integrarsi con numerosi sistemi di gestione dell’apprendimento (LMS) tramite lo standard LTI 1.3.
:open_book: Guida all’installazione Questo plugin è incluso nel core di Discourse. Non è necessario installarlo separatamente.

Questo plugin implementa lo standard LTI 1.3 per l’autenticazione, supportato da numerosi sistemi di gestione dell’apprendimento. Discourse funge da “Strumento” all’interno dello standard LTI. Una volta configurato, gli utenti potranno fare clic su un pulsante/collegamento nel sistema di gestione dell’apprendimento e accedere immediatamente a Discourse.

Le istruzioni precise per la configurazione variano in base al sistema di gestione dell’apprendimento utilizzato. In generale, tuttavia:

  1. Crea una nuova voce “Strumento” nel tuo sistema di gestione dell’apprendimento
  • Versione LTI: 1.3
  • URL di avvio: qualsiasi URL del tuo sito. Gli utenti verranno reindirizzati qui dopo il login
  • URL di richiesta di autenticazione: https://<tuosito-discourse>/auth/lti/initiate
  • URL di reindirizzamento: https://<tuosito-discourse>/auth/lti/callback
  • Chiave pubblica dello strumento: lascia vuoto. Discourse non invia mai dati all’LMS
  1. Nel tuo LMS, individua l’“endpoint di autorizzazione”, l’“ID client dello strumento”, l’“ID emittente della piattaforma” e la “chiave pubblica della piattaforma”, quindi aggiungili alle impostazioni del sito pertinenti in Discourse. In Discourse, le impostazioni sono reperibili cercando lti nell’interfaccia delle impostazioni del sito.

  2. Se il tuo sistema di gestione dell’apprendimento garantisce che gli indirizzi email degli utenti siano stati verificati, attiva l’impostazione del sito lti email verified. :warning: Attenzione: se il tuo LMS non verifica gli indirizzi email, attivare lti email verified rappresenta un rischio per la sicurezza.

  3. Attiva l’impostazione del sito lti enabled

Se queste istruzioni non sono applicabili al tuo LMS, pubblica un messaggio nel topic sottostante e faremo del nostro meglio per aggiornare le istruzioni di conseguenza.

Cosa succede se il mio sito richiede un invito?

Se desideri che gli utenti seguano il flusso di riscatto degli inviti di Discourse al primo accesso, puoi utilizzare le “Proprietà personalizzate” di LTI per specificare un link di invito di Discourse. I nuovi utenti verranno reindirizzati all’invito, mentre gli utenti esistenti verranno inviati all’URL di avvio regolare. Ad esempio:

Nome Proprietà Valore Proprietà
discourse_invite_link https://discourse.esempio.com/invites/abcdefg

Domande frequenti

Il plugin supporta l’integrazione con più sistemi LMS contemporaneamente?

  • Al momento, il plugin supporta la connessione di un solo LMS a un sito. L’impostazione del sito LTI client IDs accetta più valori, ma solo perché alcuni sistemi LMS assegnano un ID client diverso per ogni corso.
23 Mi Piace

Hai istruzioni specifiche per l’integrazione LTI con Canvas LMS?

1 Mi Piace

Avrai bisogno che i tuoi amministratori eseguano l’integrazione

Sono uno degli amministratori e anche un ingegnere del software. Penso che il problema che sto riscontrando abbia a che fare con i cookie e con lo “stato” tra Discourse e Canvas che non corrispondono.

Questo è l’errore che sto ricevendo nei log di Discourse:

(lti) Authentication failure! state_mismatch: StandardError, State parameter did not match the session

Penso che quell’errore venga generato da qui: discourse-lti/lib/discourse_lti/lti_omniauth_strategy.rb at main · discourse/discourse-lti · GitHub

Avete qualche idea o qualcosa che posso approfondire per aiutare a risolvere questo problema? In questa pagina della documentazione di Canvas: Overview of an LTI Launch <a name="launch-overview"></a> - Canvas LMS REST API Documentation

C’è una sezione “Launching without Cookies” che penso sia pertinente qui. Ma non ne sono sicuro al 100%. Qualsiasi aiuto o suggerimento sarebbe molto apprezzato.

Sono riuscito a far funzionare l’LTI in Canvas con un’unica avvertenza. Ecco i miei passaggi:

  1. Crea una chiave sviluppatore in Canvas. Non importa cosa inserisci nel Metodo JWK e JWK pubblico

  2. Nelle impostazioni LTI di Discourse, compila le tue impostazioni

  3. Per la chiave pubblica, puoi navigare su https://\u003cyour_canvas_url\u003e/api/lti/security/jwks e copiare la seconda chiave. Quindi puoi andare su https://8gwifi.org/jwkconvertfunctions.jsp e incollarla lì e convertirla. Quindi copia il testo tra -----BEGIN/END PUBLIC KEY----- e incollalo nella Chiave pubblica della piattaforma Lti nelle impostazioni LTI di Discourse. Quindi salva.

Ecco l’avvertenza. Quei JWK che Canvas genera vengono ruotati, apparentemente mensilmente. Una volta che quella seconda chiave cambia, l’LTI si interromperà e dovrai sostituirla con quella nuova seguendo il Passaggio 3.

Il plugin LTI di Discourse dovrà supportare un URL JWK pubblico affinché rimanga aggiornato.

2 Mi Piace

Posso avere pi[u00f9] LMS integrati con un singolo Discourse?

:partying_face: Questo plugin è ora incluso nel core di Discourse come parte di Bundling more popular plugins with Discourse core. Se stai auto-ospitando e utilizzi il plugin, devi rimuoverlo dal tuo app.yml prima del tuo prossimo aggiornamento.

2 Mi Piace