Integrazione del Sistema di Gestione dell'Apprendimento Discourse (Autenticazione LTI 1.3)

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

Questo plugin implementa lo standard LTI 1.3 per l’autenticazione, che è supportato da numerosi sistemi di gestione dell’apprendimento. Discourse agisce come uno “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 varieranno in base al tuo sistema di gestione dell’apprendimento. In generale:

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

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

  3. Attiva l’impostazione del sito lti enabled

Se queste istruzioni non hanno senso per il tuo LMS, pubblica nel topic qui sotto e faremo del nostro meglio per aggiornare le istruzioni di conseguenza.

E se il mio sito richiede inviti?

Se desideri che gli utenti seguano il flusso di riscatto degli inviti di Discourse quando accedono per la prima volta, 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.example.com/invites/abcdefg
22 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.

1 Mi Piace