Integración del Sistema de Gestión del Aprendizaje Discourse (Autenticación LTI 1.3)

||||
-|-|
:discourse2: | Resumen | Discourse LTI permite que Discourse se integre con varios sistemas de gestión de aprendizaje (LMS) a través del estándar LTI 1.3.
:open_book: | Guía de instalación | Este complemento está incluido en el núcleo de Discourse. No es necesario instalarlo por separado.

Este complemento implementa el estándar LTI 1.3 para la autenticación, el cual es compatible con varios sistemas de gestión de aprendizaje. Discourse actúa como una “Herramienta” dentro del estándar LTI. Una vez configurado, los usuarios podrán hacer clic en un botón/enlace en el sistema de gestión de aprendizaje y se conectarán instantáneamente a Discourse.

Las instrucciones precisas de configuración variarán según tu Sistema de Gestión de Aprendizaje. Pero, en general:

  1. Crea una nueva entrada de “Herramienta” en tu sistema de gestión de aprendizaje
  • Versión LTI: 1.3
  • URL de lanzamiento: cualquier URL de tu sitio. Los usuarios serán redirigidos aquí después de iniciar sesión
  • URL de solicitud de autenticación: https://<tusitiodiscourse>/auth/lti/initiate
  • URL de redirección: https://<tusitiodiscourse>/auth/lti/callback
  • Clave pública de la herramienta: dejar en blanco. Discourse nunca envía datos al LMS
  1. En tu LMS, encuentra el “Endpoint de autorización”, “ID del cliente de la herramienta”, “ID emisor de la plataforma” y la “Clave pública de la plataforma”, y agrégalos a los ajustes relevantes del sitio en Discourse. En Discourse, los ajustes se pueden encontrar buscando lti en la interfaz de ajustes del sitio.

  2. Si tu sistema de gestión de aprendizaje garantiza que los correos electrónicos de los usuarios han sido validados, habilita el ajuste del sitio lti email verified. :warning: Advertencia: Si tu LMS no verifica los correos electrónicos, habilitar lti email verified es un riesgo de seguridad.

  3. Activa el ajuste del sitio lti enabled

Si estas instrucciones no tienen sentido para tu LMS, por favor publica en el tema a continuación y haremos nuestro mejor esfuerzo para actualizar las instrucciones en consecuencia.

¿Qué pasa si mi sitio requiere invitación?

Si deseas que tus usuarios pasen por el flujo de canje de invitación de Discourse cuando inicien sesión por primera vez, puedes usar las “Propiedades personalizadas” de LTI para especificar un enlace de invitación de Discourse. Los nuevos usuarios serán redirigidos a la invitación, mientras que los usuarios existentes serán enviados a la URL de lanzamiento habitual. Por ejemplo:

Nombre de la propiedad Valor de la propiedad
discourse_invite_link https://discourse.example.com/invites/abcdefg

Preguntas frecuentes

¿El complemento admite la integración con múltiples sistemas LMS al mismo tiempo?

  • El complemento solo admite que un LMS esté conectado a un sitio en este momento. El ajuste del sitio LTI client IDs acepta múltiples valores, pero la razón es que algunos sistemas LMS establecen un ID de cliente por curso.
23 Me gusta

¿Tiene instrucciones específicas para integrar la integración LTI con Canvas LMS?

1 me gusta

Necesitarás que tus administradores sean quienes realicen la integración.

Soy uno de nuestros administradores y también ingeniero de software. Creo que el problema que tengo tiene que ver con las cookies y que el “estado” entre Discourse y Canvas no coincide.

Este es el error que estoy recibiendo en los registros de Discourse:

(lti) Fallo de autenticación! state_mismatch: StandardError, El parámetro de estado no coincidió con la sesión

Creo que ese error se está lanzando desde aquí: discourse-lti/lib/discourse_lti/lti_omniauth_strategy.rb at main · discourse/discourse-lti · GitHub

¿Alguna idea o algo que pueda investigar para ayudar a depurar esto? En esta página de la documentación de Canvas: Overview of an LTI Launch <a name="launch-overview"></a> - Canvas LMS REST API Documentation

Hay una sección de Lanzamiento sin cookies que creo que es relevante aquí. Pero no estoy 100% seguro. Cualquier ayuda o información sería muy apreciada.

Pude hacer que el LTI funcionara en Canvas con una advertencia. Aquí están mis pasos:

  1. Cree una clave de desarrollador en Canvas. No importa lo que ponga en JWK Method y Public JWK

  2. En la configuración de Discourse LTI, complete su configuración

  3. Para la clave pública, puede navegar a https://\u003cyour_canvas_url\u003e/api/lti/security/jwks y copiar la segunda clave. Luego puede ir a https://8gwifi.org/jwkconvertfunctions.jsp y pegarla allí y convertirla. Luego copie el texto entre -----BEGIN/END PUBLIC KEY----- y péguelo en la Clave pública de la plataforma Lti en la configuración de Discourse LTI. Luego guarde.

Aquí está la advertencia. Esos JWK que Canvas genera se rotan, aparentemente mensualmente. Una vez que esa segunda clave cambie, el LTI se romperá y deberá reemplazarla con la nueva siguiendo el Paso 3.

El plugin LTI de Discourse tendrá que admitir una URL de JWK pública para que se mantenga actualizado.

2 Me gusta

¿Puedo tener múltiples LMS integrados con un solo Discourse?

:partying_face: Este plugin ahora está incluido en el núcleo de Discourse como parte de Bundling more popular plugins with Discourse core. Si te autoalojas y usas el plugin, necesitas eliminarlo de tu app.yml antes de tu próxima actualización.

3 Me gusta