Resumen
En los últimos meses, los socios de edX y los miembros de la comunidad de Open edX diseñaron e implementaron nuevas capacidades de inicio de sesión que permiten a los estudiantes usar sus credenciales del campus para acceder a los cursos de edX. De manera similar a la forma en que edX actualmente admite el inicio de sesión con Google o Facebook, los estudiantes de las instituciones participantes pueden autenticarse en edX utilizando el proveedor de identidad de su escuela. Además, las instituciones pueden optar por compartir datos con edX para brindar una experiencia más personalizada, como el nombre y apellido para completar automáticamente los perfiles de edX de los alumnos, o identificadores únicos de estudiantes para crear soporte más adelante para la sincronización de listas o calificaciones.
La característica
Cuando los alumnos visiten el entorno edX Edge, se les presentará la opción de iniciar sesión con las credenciales de su institución o campus. Los estudiantes también podrán acceder a este método de inicio de sesión alternativo cuando comiencen desde sus sistemas de campus en línea o visiten el sitio a través de un enlace de invitación especial que los equipos del curso pueden enviar por correo electrónico.

Cuando los alumnos navegan directamente a edge.edx.org, primero eligen "usar las credenciales de mi institución/campus".

Luego, se vinculan a la página de inicio de sesión de su institución.

Cuando se invita a los alumnos a inscribirse en un curso, se les dirige directamente a esta página de inicio de sesión. Si los alumnos siguen un enlace desde un sistema del campus, es posible que inicien sesión de inmediato, se les solicite que inicien sesión con las credenciales de ese campus o se les muestre la página de inicio de sesión normal. El comportamiento depende de cómo se construyó el enlace, si el alumno ha iniciado sesión antes, si el alumno ha iniciado sesión o no en el sistema del campus y cómo está configurada la integración.
Sin embargo, en todos los casos, al proporcionar las credenciales apropiadas (según los requisitos de su institución en particular), los alumnos son redirigidos automáticamente al recurso edX solicitado. Cuando los alumnos inician sesión por primera vez, se les pide que completen algunos detalles adicionales de la cuenta (por ejemplo, nombre y dirección de correo electrónico). Esta información se utiliza para asociar la identidad basada en la cuenta del alumno con su identidad edX. El alumno no necesita realizar esta acción nuevamente a menos que desvincule las cuentas.
La tecnología
Esta función utiliza SAML 2.0 (Security Assertion Markup Language, versión 2.0), que proporciona un medio estandarizado para intercambiar datos de autenticación y autorización entre las partes. En un intercambio SAML, el proveedor de identidad afirma de forma segura la identidad y los derechos de acceso de un usuario final a un proveedor de servicios y, por lo tanto, permite que el usuario obtenga acceso a los recursos especificados. En este caso, el proveedor de identidad es cualquiera de los servicios de inicio de sesión institucional actualmente implementados y el proveedor de servicios es edX. Una vez que se completa la autenticación, el alumno obtiene acceso a cualquier recurso disponible en edge.edx.org, siempre que esté inscrito en el curso asociado con ese recurso.
Debido a que está construido con SAML, el nuevo servicio de inicio de sesión es totalmente compatible con Santo y seña, una implementación de código abierto del protocolo SAML que es ampliamente utilizado por las instituciones de educación superior. En una encuesta de los miembros de nuestro grupo de trabajo, descubrimos rápidamente que todos tenían al menos una parte de su base de estudiantes en Shibboleth y algunas instituciones tienen a todos sus usuarios en tiendas de identidad únicas basadas en Shibboleth. En nuestro lanzamiento inicial, estamos configurando edX Edge para admitir inicios de sesión de Shibboleth; en versiones posteriores, planeamos expandir el soporte a otros proveedores de identidad compatibles con SAML2, según la demanda.
Esta función se basa en nuestra implementación de autenticación de terceros existente, aportado en 2014 por John Cox de Google. También aprovecha la Funcionalidad del modelo de configuración, implementado por Cale Pennington de edX, que proporciona una solución de "configuración a través de la base de datos" para Django.
También confiamos en gran medida en el trabajo de otros dos proyectos de código abierto: Autenticación social de Python y Python-saml. Ambos equipos de proyecto respondieron muy bien, y esta colaboración entre tres proyectos de código abierto es digna de mención. Braden MacDonald, el desarrollador principal, aportó cambios que agregaron soporte para SAML a Python Social Auth, además de agregar características que necesitábamos para Python-saml. Los revisores anteriores hicieron un esfuerzo por revisar e incorporar las contribuciones de manera oportuna, asegurando un lanzamiento a tiempo de la función a fines de junio. En lugar de bifurcar el código y hacer estos cambios solo para edX, toda la comunidad de Python ahora puede beneficiarse de este trabajo.
Estos proyectos nos permitieron aprovechar la gran cantidad de trabajo existente y centrarnos en las características de integración únicas que necesitábamos para la plataforma Open edX, lo que redujo sustancialmente el tiempo de desarrollo general.
El Proceso
El proyecto de autenticación de terceros surgió de las necesidades identificadas en el Grupo de trabajo de aplicaciones del campus de edX, que se reúne para abordar los desafíos de integración del campus. El grupo se fundó con el principio de que todos los miembros contribuirían al proceso con uno de los siguientes:
- Capital de pensamiento en forma de participación en discusiones y revisión de documentos, especialmente en la aparición de diferentes casos de uso para abordar una amplia gama de necesidades.
- Desarrollo de aplicaciones en forma de contribuciones a la base de código de Open edX.
- Validación en forma de testeo de las soluciones desarrolladas por sus miembros.
Para respaldar al grupo de trabajo y cualquier proyecto resultante, que actualmente incluye este proyecto de autenticación, así como un proyecto para respaldar a edX como proveedor de herramientas LTI, edX brinda soporte continuo para el desarrollo de productos, creando una estructura para el compromiso, guiando las decisiones de arquitectura y, en última instancia, evaluando soluciones para su inclusión en la plataforma Open edX.
¿Y ahora qué sigue?
En la actualidad, esta función se implementa en edge.edx.org y la utiliza un socio, la Universidad de Columbia Británica. Estamos trabajando con otros socios para probar e implementar la solución para sus alumnos. En el futuro, esperamos ampliar las capacidades de las siguientes maneras interesantes:
- Cree un mecanismo para las escuelas asociadas con fuertes restricciones de privacidad para pasar su identificación de estudiante opaca y recuperar la identificación de usuario de edX, con fines de análisis e integración.
- Integre con federaciones de Shibboleth como InCommon, para que los estudiantes de prácticamente cualquier universidad de EE. UU. puedan usar SSO.
- Personalice la experiencia de inicio de sesión con la marca de socios.
Si alguien en la comunidad de Open edX está interesado en trabajar en estas características, por favor póngase en contacto con el equipo de código abierto de edX.
¡Gracias!
Un agradecimiento especial a nuestro equipo de proyecto SSO:
Xavier Antoviaque, OpenCraft
Braden MacDonald, OpenCraft (desarrollador principal)
Derek White, UBC
Pan Luo, UBC
Guillermo Ono, UBC
Brian Talbot, edX
Frances Botsford, edX
Por favor no dudes en llegar a mí para obtener información adicional sobre el proyecto, o inspeccione la fuente en GitHub (https://github.com/edx/edx-platform/tree/master/common/djangoapps/third_party_auth).
![]()