Integración de Discourse con sistema de gestión de aprendizaje (autenticación LTI 1.3)

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

Este plugin implementa el estándar LTI 1.3 para autenticación, el cual es compatible con varios sistemas de gestión del 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 del aprendizaje y serán iniciados sesión en Discourse instantáneamente.

Las instrucciones precisas de configuración variarán según tu sistema de gestión del aprendizaje. Pero en general:

  1. Crea una nueva entrada de “Herramienta” en tu sistema de gestión del aprendizaje
  • Versión de LTI: 1.3
  • URL de lanzamiento: cualquier URL de tu sitio. Los usuarios serán redirigidos aquí después del inicio de sesión
  • URL de solicitud de autenticación: https://<tu-sitio-discourse>/auth/lti/initiate
  • URL de redirección: https://<tu-sitio-discourse>/auth/lti/callback
  • Clave pública de la herramienta: déjala en blanco. Discourse nunca envía datos al LMS
  1. En tu LMS, busca el “endpoint de autorización”, “ID de cliente de la herramienta”, “ID de emisor de la plataforma” y la “clave pública de la plataforma”, y añádelos a la configuración del sitio correspondiente en Discourse. En Discourse, las configuraciones se pueden encontrar buscando lti en la interfaz de configuración del sitio.

  2. Si tu sistema de gestión del aprendizaje garantiza que los correos electrónicos de los usuarios han sido validados, activa la configuración del sitio lti email verified. :warning: Advertencia: Si tu LMS no verifica los correos electrónicos, activar lti email verified representa un riesgo de seguridad.

  3. Activa la configuración del sitio lti enabled

Si estas instrucciones no tienen sentido para tu LMS, por favor publica en el tema a continuación y haremos todo lo posible 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 invitaciones de Discourse cuando inician 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 regular. Por ejemplo:

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

Preguntas frecuentes

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

  • El plugin solo admite que un LMS esté conectado a un sitio en este momento. La configuración 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.

2 Me gusta