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

:discourse2: Resumen Discourse LTI permite que Discourse se integre con varios sistemas de gestión de aprendizaje mediante el 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 instalar el plugin por separado.

Este plugin implementa el estándar LTI 1.3 para autenticación, que 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 e iniciar sesión en Discourse instantáneamente.

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://<tu-sitio-discourse>/auth/lti/initiate
  • URL de redirección: https://<tu-sitio-discourse>/auth/lti/callback
  • Clave pública de la herramienta: dejar en blanco. Discourse nunca envía datos al LMS
  1. En tu LMS, busca el “endpoint de autorización”, “ID del cliente de la herramienta”, “ID del emisor de la plataforma” y la “Clave pública de la plataforma”, y agrégalos a la configuración del sitio relevante en Discourse. En Discourse, la configuración se puede encontrar buscando lti en la interfaz de usuario de configuración del sitio de Discourse.

  2. Si tu sistema de gestión de aprendizaje garantiza que los correos electrónicos de los usuarios han sido validados, habilita la configuración del sitio lti email verified. :warning: Advertencia: Si tu LMS no verifica los correos electrónicos, habilitar 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 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 invitación de Discourse cuando inicien sesión por primera vez, puedes usar “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.ejemplo.com/invites/abcdefg
22 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.

1 me gusta