Résumé
Au cours des derniers mois, les partenaires edX et les membres de la communauté Open edX ont conçu et mis en œuvre de nouvelles fonctionnalités de connexion qui permettent aux apprenants d'utiliser leurs identifiants de campus pour accéder aux cours edX. De la même manière qu'edX prend actuellement en charge la connexion avec Google ou Facebook, les apprenants des établissements participants peuvent s'authentifier auprès d'edX à l'aide du fournisseur d'identité de leur école. De plus, les établissements peuvent choisir de partager des données avec edX pour offrir une expérience plus personnalisée, comme le prénom et le nom pour remplir automatiquement les profils edX des apprenants, ou des identifiants d'étudiant uniques afin de créer ultérieurement une prise en charge pour la synchronisation des listes ou des notes.
La fonctionnalité
Lorsque les apprenants visitent l'environnement edX Edge, ils auront la possibilité de se connecter en utilisant les informations d'identification de leur établissement ou de leur campus. Les apprenants pourront également accéder à cette méthode de connexion alternative lorsqu'ils démarrent à partir de leurs systèmes de campus en ligne ou visitent le site via un lien d'invitation spécial que les équipes de cours peuvent envoyer par e-mail.

Lorsque les apprenants accèdent directement à edge.edx.org, ils choisissent d'abord « utiliser les informations d'identification de mon établissement/campus ».

Ensuite, ils sont liés à la page de connexion de leur institution.

Lorsque les apprenants sont invités à s'inscrire à un cours, ils sont dirigés directement vers cette page de connexion. Si les apprenants suivent un lien à partir d'un système de campus, ils peuvent être immédiatement connectés, être invités à se connecter avec les informations d'identification de ce campus ou voir la page de connexion habituelle. Le comportement dépend de la façon dont le lien a été construit, si l'apprenant s'est déjà connecté, s'il est connecté ou non au système du campus et comment l'intégration est configurée.
Dans tous les cas, cependant, après avoir fourni les informations d'identification appropriées (selon les exigences de leur institution particulière), les apprenants sont automatiquement redirigés vers la ressource edX demandée. Lorsque les apprenants se connectent pour la première fois, ils sont invités à fournir des informations supplémentaires sur leur compte (par exemple, nom et adresse e-mail). Ces informations sont utilisées pour associer l'identité basée sur le compte de l'apprenant à son identité edX. L'apprenant n'a pas besoin d'effectuer cette action à nouveau, sauf s'il dissocie les comptes.
La technologie
Cette fonction utilise SAML2.0 (Security Assertion Markup Language, version 2.0), qui fournit un moyen standardisé d'échange de données d'authentification et d'autorisation entre les parties. Dans un échange SAML, le fournisseur d'identité affirme en toute sécurité l'identité et les droits d'accès d'un utilisateur final à un fournisseur de services, et permet donc à l'utilisateur d'accéder aux ressources spécifiées. Dans ce cas, le fournisseur d'identité est l'un des services de connexion institutionnels actuellement mis en œuvre et le fournisseur de services est edX. Une fois l'authentification terminée, l'apprenant accède à toute ressource disponible sur edge.edx.org, à condition qu'il soit inscrit au cours associé à cette ressource.
Parce qu'il est construit avec SAML, le nouveau service de connexion est entièrement compatible avec Schibboleth, une implémentation open source du protocole SAML largement utilisée par les établissements d'enseignement supérieur. Dans une enquête auprès des membres de notre groupe de travail, nous avons rapidement constaté que tout le monde avait au moins une partie de sa base d'apprenants sur Shibboleth et que certaines institutions ont tous leurs utilisateurs dans des magasins d'identité basés sur Shibboleth. Dans notre version initiale, nous configurons edX Edge pour prendre en charge les connexions Shibboleth ; dans les versions ultérieures, nous prévoyons d'étendre la prise en charge à d'autres fournisseurs d'identité conformes à SAML2, en fonction de la demande.
Cette fonctionnalité s'appuie sur notre implémentation d'authentification tierce existante, contribué en 2014 par John Cox de Google. Il profite également de la Fonctionnalité ConfigurationModel, implémenté par Cale Pennington d'edX, qui fournit une solution de « configuration via une base de données » pour Django.
Nous nous sommes également fortement appuyés sur le travail de deux autres projets open source : Authentification sociale Python et Python-saml. Les deux équipes projet ont été très réactives, et cette collaboration entre trois projets open source mérite d'être soulignée. Braden MacDonald, le développeur principal, a apporté des modifications qui ont ajouté prise en charge de SAML vers Python Social Auth, ainsi que d'ajouter fonctionnalités dont nous avions besoin pour Python-saml. Les réviseurs en amont se sont efforcés d'examiner et d'intégrer les contributions en temps opportun, garantissant une publication à temps de la fonctionnalité fin juin. Au lieu de forker le code et d'apporter ces modifications uniquement pour edX, toute la communauté Python peut désormais bénéficier de ce travail.
Ces projets nous ont permis de tirer parti du vaste corpus de travaux existants et de nous concentrer sur les fonctionnalités d'intégration uniques dont nous avions besoin pour la plate-forme Open edX, réduisant ainsi considérablement le temps de développement global.
Le processus
Le projet d'authentification par un tiers est né des besoins identifiés dans le groupe de travail sur les applications du campus edX, qui se réunit pour résoudre les problèmes d'intégration du campus. Le groupe a été fondé avec le principe que tous les membres contribueraient l'un des éléments suivants au processus :
- Capital de réflexion sous forme de participation à des discussions et à l'examen de documents, en particulier en faisant émerger différents cas d'utilisation pour répondre à un large éventail de besoins.
- Développement d'applications sous forme de contributions à la base de code Open edX.
- Validation sous forme de test des solutions développées par ses membres.
Pour soutenir le groupe de travail et tous les projets qui en résultent - qui incluent actuellement ce projet d'authentification ainsi qu'un projet de prise en charge d'edX en tant que fournisseur d'outils LTI - edX fournit une assistance continue au développement de produits, créant une structure d'engagement, guidant les décisions d'architecture et, finalement, évaluant solutions à inclure dans la plate-forme Open edX.
Quelle est la prochaine étape?
Aujourd'hui, cette fonctionnalité est déployée sur edge.edx.org et est utilisée par un partenaire, l'Université de la Colombie-Britannique. Nous travaillons avec d'autres partenaires pour tester et déployer la solution pour leurs apprenants. À l'avenir, nous espérons étendre les capacités des manières intéressantes suivantes :
- Créez un mécanisme pour les écoles partenaires avec de fortes restrictions de confidentialité pour transmettre leur identifiant d'étudiant opaque et récupérer l'identifiant d'utilisateur edX, à des fins d'analyse et d'intégration.
- Intégrez-vous aux fédérations Shibboleth comme InCommon, afin que les étudiants de pratiquement n'importe quelle université américaine puissent utiliser SSO.
- Personnalisez l'expérience de connexion avec la marque du partenaire.
Si quelqu'un dans la communauté Open edX est intéressé à travailler sur ces fonctionnalités, veuillez contacter l'équipe edX Open Source.
Merci !
Un merci spécial à notre équipe de projet SSO :
Xavier Antoviaque, OpenCraft
Braden MacDonald, OpenCraft (développeur principal)
Derek White, UBC
Pan Luo, UBC
William Ono, UBC
Brian Talbot, edX
Frances Botsford, edX
S'il vous plaît n'hésitez pas à tendre la main à moi pour plus d'informations sur le projet, ou inspectez la source sur GitHub (https://github.com/edx/edx-platform/tree/master/common/djangoapps/third_party_auth).
![]()