Single Sign-On

Hinweise zur Umsetzung von Single Sign-On (SSO) im Online-Übungssystem

Autor: Immo Schulz-Gerlach, ZDI
Version: 1.1 – 05.07.2022
[PDF-Version] [ePub-Version]

Single Sign-On (SSO)

Seit dem 01.07.2022 ist das Online-Übungssystem (vorerst im Beta-Stadium) an den Single-Sign-On-Dienst der FernUniversität angebunden. Dieser ermöglicht es insbesondere, dass Benutzer/-innen, die sich bereits in ebenfalls dort angebundene Portale oder Systeme wie StudyPort, LVU oder Moodle eingeloggt haben, einfach per Link zum Online-Übungssystem weitergeleitet werden können und sich dort nicht erneut per Eingabe ihrer Logindaten anmelden müssen.

Aus technischen Gründen (bezüglich der Arbeitsweise der bisherigen lokalen Logins im Online-Übungssystem) wird empfohlen, dort im Zweifel spezielle SSO-Links zum Online-Übungssystem einzusetzen, die den Single-Sign-On-Prozess so einfach und unauffällig wie möglich machen. Wie diese aufgebaut sind und wozu genau sie dienen, wird im Folgenden beschrieben.

Adressaten

Diese Dokumentation richtet sich vornehmlich an Mitarbeiter/-innen der FernUniversität, die

Der Vollständigkeit halber soll im Folgenden vorab aber auch keine kurze Beschreibung der Endnutzersicht von SSO-Anmeldungen im Online-Übungssystem folgen.

Einloggen im Online-Übungssystem (Endnutzersicht)

Wenn ein/-e Nutzer/-in direkt (nicht über einen Link von einem Portal) das Online-Übungssystem aufsucht, wird er/sie typischerweise die Übungssystem-Startseite oder die Startseite einer bestimmten Kursumgebung aufrufen. Diese Startseiten sind öffentlich und ohne Login direkt abrufbar.

Ruft jemand eine solche loginfreie Startseite auf, findet sich ab sofort oben rechts auf der Seite ein Menüpunkt »Login«, der zu einer Loginseite führt, die genauer über die beiden Alternativen (Single Sign-On versus lokaler Login) aufklärt und einen Button zur SSO-Anmeldung enthält.

Drückt der/die Benutzer/-in nun diesen SSO-Button, so wird er/sie zum Loginserver weitergeleitet, wo er/sie Loginnamen und Kennwort eingeben muss (sofern er/sie sich nicht bereits zuvor dort angemeldet hatte) und dann wieder zu der Übungssystem-Seite zurückgeleitet wird, wo er/sie den Login-Link betätigt hatte. Ab sofort ist er/sie nun eingeloggt und kann über weiterführende Links auch zu autorisierungspflichtigen Seiten wechseln.

Navigiert der/die Nutzer/-in direkt zu einer autorisierungspflichtigen Seite, ohne vorher eine SSO-Anmeldung vorgenommen zu haben, fragt das Online-Übungssystem selbst direkt nach Loginname und Kennwort für einen lokalen Login. Der/die Nutzerin kann dann immer noch den lokalen Logindialog abbrechen/schließen und erhält daraufhin auch wieder einen Link zum Single Sign-On (sowie einen weiteren für erneuten lokalen Loginversuch) angeboten.

Ruft ein/-e Nutzerin direkt einen URL (z.B. per Bookmark oder „Deep Link“) auf, der zu einer autorisierungspflichtigen Seite (wie der Aufgabenübersicht einer Kursumgebung) führt, so verhält sich das System genauso wie im letzten Absatz beschrieben: Da zuvor kein SSO-Login stattgefunden hatte, fragt das Übungssystem lokal nach Loginname und Kennwort1, aber nach Abbruch des lokalen Logindialogs kann man auch eine SSO-Anmeldung vornehmen.

Der wichtigste Anwendungsfall von Single Sign-On dürfte jedoch sein, dass sich Studierende oder Mitarbeiter/-innen nicht zuerst beim Online-Übungssystem (und später ggf. noch bei anderen Plattformen) anmelden, sondern dass sie sich zuerst in einer anderen (Portal-)Plattform via SSO anmelden und von dort aus einem Link zum Online-Übungssystem folgen.

Im Idealfall sollten die Nutzer dann vom Online-Übungssystem unmittelbar und ohne Notwendigkeit, erst noch auf »Login« zu klicken, als eingeloggt angesehen werden.

Um diesen möglichst komfortablen und transparenten Single-Sign-On-Prozess zu nutzen, sollten in diesen (Portal-)Plattformen nach Möglichkeit spezielle SSO-URLs in den Links verwendet werden (deren Aufbau im folgenden Unterabschnitt beschrieben wird). Diese weisen das Übungssystem an, vor Anzeige der Zielseite zunächst eine passive SAML-Authentifizierung beim IdP (Shibboleth) zu versuchen und dann erst (unabhängig vom Ergebnis) zum Linkziel weiterzuleiten:

Wird dagegen ein „normaler“ Nicht-SSO-URL als Linkziel verwendet, z.B. ein URL, der aus der Adresszeile des Browsers nach Aufruf der Zielseite (z.B. mit einem Teststudenten-Login) kopiert wurde, so wird das Online-Übungssystem ab sofort dennoch versuchen, dasselbe transparente Verhalten umzusetzen. Genauer wird es dazu anhand des Referer-Headers des HTTP-Requests versuchen, zu erkennen, ob der Link, den der Benutzer angeklickt hat, von einer Moodle-Instanz oder einem Portal wie StudyPort oder dem LVU stammt.

Ist dies der Fall, d.h. wurde erkannt, dass der Benutzer einem Link von Moodle, StudyPort oder LVU gefolgt ist, so verhält sich das Online-Übungssystem genau wie für SSO-URLs, also wie oben beschrieben.

Wenn dagegen ein „Nicht-SSO-URL“ verwendet und keine bekannte Verweisquelle erkannt wurde2, so wird sich das Online-Übungssystem aus Abwärtskompatibilitätsgründen wie folgt verhalten:

Links in LVU, StudyPort oder Moodle sollten also nach aktuellem Stand in der Regel unabhängig davon funktionieren, ob das im folgenden Unterabschnitt beschriebene spezielle SSO-URL-Format verwendet wird oder nicht.

Dennoch sollte die Verwendung der SSO-Links bevorzugt werden, insbesondere aus folgenden Gründen:

Der Support für die „Referer-Erkennung bei Nicht-SSO-URLs“ wurde daher auch nicht für den Einsatz als Regelfall gedacht, sondern vor allem für den Fall eingebaut, dass jemand, der diese Anleitung nicht gelesen hat, aus Unwissen einfach einen z.B. aus der Browser-Adressleiste kopierten URL als Linkziel verwendet. Und auch, damit bestehende Links aus Portalen (aus der Zeit vor der SSO-Einführung) möglichst sofort das gewünschte Verhalten zeigen, ohne dass sie erst aufs SSO-Format konvertiert werden müssen.

URL-Aufbau von SSO-Links

Fast jeder Link zum Online-Übungssystem lässt sich in einen solchen SSO-Link „konvertieren“, indem im URL als erste Pfadkomponente /SSO immer direkt hinter dem Servernamen eingefügt wird.

Beispiele:

Links erzeugen

Wenn Portale eigenständig Links zu Online-Übungssystem-Umgebungen erzeugen, so sollte diese Linkerzeugung also einfach einmalig so angepasst werden, dass der Zusatz /SSO mit in den URL-Path aufgenommen wird.

Betreuer/-innen, die manuell Links zu von ihnen betreuten Übungssystem-Kursumgebungen in z.B. eine ebenfalls von ihnen betreute Moodle-Kursumgebung einfügen möchten, können hierzu auf einen einfachen Linkgenerator zurückgreifen:

Sie finden im Betreuerzugang ihrer Übungssystem-Kursumgebung unter Menüpunkt »Verknüpfungen« nun neben der Möglichkeit, einen LTI-Launch-URL (für die direkte Einbettung von Aufgaben oder Aufgabenheften ihres Kurses in Moodle) zu erzeugen, auch einen SSO-Link-Generator. Dort wählen Sie ein Linkziel aus, z.B. die Kursstartseite, die gesamte Aufgabenübersicht (über alle Hefte), eine spezielle Aufgabenübersicht spezifisch für ein bestimmtes Heft oder direkt eine Aufgabe. Sie können auch auswählen, ob Sie immer konkret auf diese bestimmte Kursumgebung (für ein bestimmtes Semester) verlinken möchten, oder ob Sie einen Smart Link erstellen möchten. Der Link-URL kann dann einfach in die Zwischenablage kopiert und später z.B. in Moodle eingefügt werden.


  1. Der lokale Login ist in diesen Fällen unter anderem auch deshalb der Default, da manche Funktionen (für Mitarbeitende) nur über lokale Logins verfügbar sind (z.B. Alias-Logins, lokale Teststudenten- und Korrektorenzugänge).  ↩

  2. Mögliche Gründe, warum die Erkennung nicht funktioniert, sind z.B.: Der Browser unterstützt den Referer-Header nicht oder unterdrückt ihn explizit aufgrund von Trackingschutz-Einstellungen, oder er verwendet ein Format, das vom Übungssystem nicht erkannt wird, oder der Link steht in keiner dem Übungssystem als gültige Verweisquelle bekannten FernUni-Plattform (wie moodle*.fernuni-hagen.de, studyport.fernuni-hagen.de oder vu.fernuni-hagen.de). Auch wenn Sie einen http://- statt eines https://-URLs verwenden sollten, wird aus Datenschutzgründen in der Regel kein Referer-Header mit gesendet.  ↩

  3. Es wird hier vorausgesetzt, dass Sie HTTPS-URLs verwenden, also auf https://online-uebungssystem.fernuni-hagen.de/… verlinken und nicht auf http://…. In letzterem Fall würde eine unverschlüsselte Verbindung aufgebaut und der Browser wird sicherheitshalber keine Tracking-Informationen übertragen. (Auch eine anschließende serverseitige Umleitung zurück auf HTTPS ändert daran dann nichts mehr.)  ↩