Authentifizierung durch Dritte mithilfe des SAML-Protokolls

5. August 2015 | Von

Zusammenfassung

In den letzten Monaten haben edX-Partner und Mitglieder der Open edX-Community neue Anmeldefunktionen entwickelt und implementiert, die es Lernenden ermöglichen, ihre Campus-Anmeldeinformationen für den Zugriff auf edX-Kurse zu verwenden. Ähnlich wie edX derzeit die Anmeldung mit Google oder Facebook unterstützt, können sich Lernende teilnehmender Einrichtungen bei edX mit dem Identitätsanbieter ihrer Schule authentifizieren. Darüber hinaus können Institutionen entscheiden, Daten mit edX zu teilen, um eine personalisiertere Erfahrung zu bieten, wie z. B. Vor- und Nachname, um die edX-Profile der Lernenden automatisch auszufüllen, oder eindeutige Schülerkennungen, um später Unterstützung für die Synchronisierung von Dienstplänen oder Noten aufzubauen.

Das Merkmal

Wenn Lernende die edX Edge-Umgebung besuchen, wird ihnen die Möglichkeit geboten, sich mit ihren Institutions- oder Campus-Anmeldeinformationen anzumelden. Die Lernenden können auch auf diese alternative Anmeldemethode zugreifen, wenn sie von ihren Online-Campussystemen aus starten oder die Website über einen speziellen Einladungslink besuchen, den die Kursteams per E-Mail versenden können.

Screenshot des edX Edge-Anmeldebildschirms

Wenn Lernende direkt zu edge.edx.org navigieren, wählen sie zunächst „Meine Institution/Campus-Anmeldeinformationen verwenden“.

Edge-Anmeldeseite mit Beispielliste institutioneller Anbieter

Anschließend werden sie mit der Anmeldeseite ihrer Institution verknüpft.

Anmeldeseite, die bestätigt, ob Benutzer sich mit ihrem institutionellen Konto anmelden möchten

Wenn Lernende eingeladen werden, sich für einen Kurs anzumelden, werden sie direkt auf diese Anmeldeseite geleitet. Wenn Lernende einem Link von einem Campus-System folgen, werden sie möglicherweise sofort angemeldet, werden aufgefordert, sich mit Anmeldeinformationen von diesem Campus anzumelden, oder es wird ihnen die reguläre Anmeldeseite angezeigt. Das Verhalten hängt davon ab, wie der Link aufgebaut wurde, ob sich der Lernende schon einmal angemeldet hat, ob der Lernende im Campus-System angemeldet ist oder nicht und wie die Integration konfiguriert ist.

In allen Fällen werden die Lernenden jedoch nach Bereitstellung der entsprechenden Anmeldeinformationen (abhängig von den Anforderungen ihrer jeweiligen Institution) automatisch zur angeforderten edX-Ressource weitergeleitet. Wenn sich die Lernenden zum ersten Mal anmelden, werden sie gebeten, einige zusätzliche Kontodaten einzugeben (z. B. Name und E-Mail-Adresse). Diese Informationen werden verwendet, um die kontobasierte Identität des Lernenden mit seiner edX-Identität zu verknüpfen. Der Lernende muss diese Aktion nicht erneut durchführen, es sei denn, er hebt die Verknüpfung der Konten auf.

Die Technologie

Diese Funktion verwendet SAML-2.0 (Security Assertion Markup Language, Version 2.0), die ein standardisiertes Mittel zum Austausch von Authentifizierungs- und Autorisierungsdaten zwischen Parteien bereitstellt. Bei einem SAML-Austausch behauptet der Identitätsanbieter auf sichere Weise die Identität und die Zugriffsrechte eines Endbenutzers gegenüber einem Dienstanbieter – und ermöglicht dem Benutzer daher den Zugriff auf die angegebenen Ressourcen. In diesem Fall ist der Identitätsanbieter einer der derzeit implementierten institutionellen Anmeldedienste und der Dienstanbieter ist edX. Sobald die Authentifizierung abgeschlossen ist, erhält der Lernende Zugriff auf jede Ressource, die auf edge.edx.org verfügbar ist, vorausgesetzt, er oder sie ist in dem Kurs eingeschrieben, der dieser Ressource zugeordnet ist.

Da er mit SAML erstellt wurde, ist der neue Anmeldedienst vollständig kompatibel mit Shibboleth, eine Open-Source-Implementierung des SAML-Protokolls, das von Hochschuleinrichtungen weit verbreitet ist. In einer Umfrage unter unseren Arbeitsgruppenmitgliedern stellten wir schnell fest, dass jeder zumindest einen Teil seiner Lernenden auf Shibboleth hatte und einige Institutionen alle ihre Benutzer in einzelnen Shibboleth-basierten Identitätsspeichern haben. In unserer ersten Version konfigurieren wir edX Edge zur Unterstützung von Shibboleth-Anmeldungen; In späteren Versionen planen wir, die Unterstützung je nach Bedarf auf andere SAML2-konforme Identitätsanbieter auszudehnen.

Diese Funktion baut auf unserer auf bestehende Authentifizierungsimplementierung durch Dritte, beigetragen im Jahr 2014 von John Cox von Google. Es nutzt auch die ConfigurationModel-Funktionalität, implementiert von Cale Pennington von edX, das eine „Configuration-via-Database“-Lösung für Django bereitstellt.

Wir haben uns auch stark auf die Arbeit von zwei anderen Open-Source-Projekten verlassen: Python Social Auth und Python-saml. Beide Projektteams waren sehr reaktionsschnell, und diese Zusammenarbeit zwischen drei Open-Source-Projekten ist bemerkenswert. Braden MacDonald, der Hauptentwickler, steuerte Änderungen bei, die hinzukamen Unterstützung für SAML zu Python Social Auth, sowie hinzufügen Funktionen, die wir für Python-saml benötigten. Die Upstream-Reviewer bemühten sich, die Beiträge rechtzeitig zu überprüfen und einzuarbeiten, um eine pünktliche Veröffentlichung des Features Ende Juni sicherzustellen. Anstatt den Code zu forken und diese Änderungen nur für edX vorzunehmen, kann nun die gesamte Python-Community von dieser Arbeit profitieren.

Diese Projekte ermöglichten es uns, den großen Bestand an vorhandener Arbeit zu nutzen und uns auf die einzigartigen Integrationsfunktionen zu konzentrieren, die wir für die Open edX-Plattform benötigten, wodurch die Gesamtentwicklungszeit erheblich verkürzt wurde.

Der Prozess

Das Projekt zur Authentifizierung durch Dritte entstand aus den Anforderungen, die in der edX Campus Applications Working Group identifiziert wurden, die zusammenkommt, um Herausforderungen bei der Campus-Integration anzugehen. Die Gruppe wurde mit dem Prinzip gegründet, dass alle Mitglieder einen der folgenden Beiträge zum Prozess leisten:

  1. Denkkapital in Form der Teilnahme an Diskussionen und der Durchsicht von Dokumenten, insbesondere der Aufdeckung verschiedener Anwendungsfälle, um ein breites Spektrum an Anforderungen zu erfüllen.
  2. Anwendungsentwicklung in Form von Beiträgen zur Open edX-Codebasis.
  3. Validierung in Form von Tests der von seinen Mitgliedern entwickelten Lösungen.

Zur Unterstützung der Arbeitsgruppe und aller daraus resultierenden Projekte – zu denen derzeit dieses Authentifizierungsprojekt sowie ein Projekt zur Unterstützung von edX als Anbieter von LTI-Tools gehören – bietet edX fortlaufende Unterstützung bei der Produktentwicklung, schafft eine Struktur für das Engagement, leitet Architekturentscheidungen und bewertet schließlich Lösungen zur Aufnahme in die Open edX-Plattform.

Was kommt als Nächstes?

Heute wird diese Funktion auf edge.edx.org bereitgestellt und von einem Partner, der University of British Columbia, verwendet. Wir arbeiten mit anderen Partnern zusammen, um die Lösung für ihre Lernenden zu testen und bereitzustellen. In Zukunft hoffen wir, die Fähigkeiten auf folgende interessante Weise zu erweitern:

  • Erstellen Sie einen Mechanismus für Partnerschulen mit strengen Datenschutzbeschränkungen, um ihre undurchsichtige Schüler-ID weiterzugeben und die edX-Benutzer-ID für Analyse- und Integrationszwecke zurückzuerhalten.
  • Integrieren Sie sich in Shibboleth-Verbände wie InCommon, damit Studenten an praktisch jeder US-Universität SSO verwenden können.
  • Passen Sie das Anmeldeerlebnis mit Partner-Branding an.

Wenn jemand in der Open edX-Community daran interessiert ist, an diesen Funktionen zu arbeiten, bitte Wenden Sie sich an das edX Open Source-Team.

Vielen Dank!

Besonderer Dank gilt unserem SSO-Projektteam:

Xavier Antoviaque, OpenCraft
Braden MacDonald, OpenCraft (leitender Entwickler)
Derek White, UBC
PanLuo, UBC
William Ono, UBC
Brian Talbot, edX
Frances Botsford, Hrsg

Bitte zögern Sie nicht melde dich bei mir für weitere Informationen über das Projekt, oder überprüfen Sie die Quelle auf GitHub (https://github.com/edx/edx-platform/tree/master/common/djangoapps/third_party_auth).

 

Laden

Zeit für mehr? Sehen Sie sich die folgenden Artikel an.

Gemeinsam Probleme lösen: Community-getriebene Plattformentwicklung
Kompetenzentwicklung und Skalierung als Zukunftsthemen auf der Open edX Konferenz
Open edX Konferenz – Entwicklerworkshops
Unsere digitale Zukunft zurückerobern: Warum ich der Open Renaissance Group beigetreten bin
Nehmen Sie an der Open edX Conference 2026 teil!

Auf der Open edX-Konferenz 2026 werden innovative Anwendungsfälle für eines der weltweit besten Open-Source-Online-Lernmanagementsysteme, die Open edX-Plattform, vorgestellt und die neuesten Fortschritte im Lehrdesign, der Kurskonstellation und Methoden für den Betrieb und die Erweiterung der Open edX-Plattform vorgestellt , einschließlich bahnbrechender Technologien wie generativer KI.