ALIs

kommt noch

Moodle und Shibboleth (nicht nur) für die LMU

Wenn sich die Nutzer einer Moodle-Instanz über Shibboleth anmelden sollen, muss man für die Realisierung dieser Zugangsmöglichkeit eine Reihe von Zusammenhängen verstehen und das Moodle dementsprechend konfigurieren. Dieser Artikel gibt ein paar Hinweise und Hintergründe dazu (die nicht sehr LMU-spezifisch sind) und beschreibt nebenbei die aktuell angestrebte Voreinstellung an den am LRZ gehosteten LMU-Moodle-Instanzen.

Was ist Shibboleth?

"Shibboleth bietet ein Single Sign-On und die Möglichkeit Benutzerinformationen auszutauschen. Es erlaubt Benutzerinformationen kontrolliert und individuell für jeden Anbieter differenziert auszugeben. Shibboleth erleichtert die Identitätskontrolle (Authentifizierung) und die Zugangsberechtigung (Autorisierung)." (Definition aus dem DFN-AAI Glossar). Die Identitätskontrolle erfolgt bei Shibboleth nicht direkt in der Applikation (Moodle), sondern wird von einem sogenannten Identity-Provider (IdP) geleistet. Um über Shibboleth Zugang zu Moodle zu bekommen, muss man sich immer über einen (seinen) IdP anmelden. Wenn ein einzelnes Moodle von Personen aus unterschiedlichen Hochschulen erreichbar sein muss, genügt es nicht, die Authentifizierung über einen bestimmten IdP anzubieten, sondern man benötigt eine Auswahlmöglichkeit (WAYF - "where are you from"), aus der die Moodle-Nutzer "ihren" IdP auswählen können.

Eine umfassende Beschreibung soll und kann an dieser Stelle nicht gebracht werden. Wer mehr wissen will, kann sich z.B. hier informieren:

Zusammenspiel Shibboleth und Moodle

Anmelden auf einem shibboleth-fähigen System (z.B. ein LMU-Moodle)

  • Das Login kann, aber muss nicht auf dem Moodle erfolgen, auf das man sich anmelden will!

  • Das Login kann zu einer Auswahlliste von Identity-Providern (IdP) führen:

    • beim DFN-AAI
    • auf irgendeiner geeigneten Webseite (zentral gepflegte LMU-Liste aller LMU-Moodles?)
    • auf dem jeweiligen Moodle-System
  • Das Login kann direkt zu einem Identity-Provider (IdP) führen, wobei dieser Link auch nicht auf dem Moodle liegen muss, auf das man sich anmelden will!

  • Interessant wäre langfristig evtl. auch eine zentrale shibboleth-fähige Webseite, auf der man sich unabhängig anmeldet (wie in einem Portal), und damit dann ohne weitere Anmeldung Zugang zu allen shibboleth-fähigen Applikationen hat, inklusive Moodle ("Single Sign On"-Eigenschaft von Shibboleth)

  • Beispiel: Moodle-Login-Möglichkeiten - Ziel-Moodle ist elab-Moodle LMU

Möglichkeiten von Konfigurationen und Einstellungen für die Moodle Login-Seiten

Durch den Einsatz von Shibboleth verkompliziert sich das Login in Moodle etwas, insbesondere bedarf es einer klaren Nutzerführung, damit es nicht zu unnötigen Verwirrungen und Rückfragen und evtl. sogar unerwünschten Logins kommt. Daher hier eine Übersicht über die Login-Seiten in den LMU-Moodles sowie ein Vorschlag für ein einheitliches Vorgehen.

Als Moodle-Administrator muss man zunächst entscheiden, ob die Nutzer-Zugangsberechtigungen lokal in Moodle verwaltet werden sollen oder ob die Nutzer sich über einen Verzeichnisdienst anmelden sollen. Für die LMU-Moodles ist die Wahl zugunsten eines Verzeichnisdienstes ausgefallen, nämlich eben Shibboleth, das im Wesentlichen auf Verzeichnisdienste aufsetzt. Der Moodle-Administrator muss dann entscheiden, ob seine Nutzer direkt zu einem bestimmten IdP geschickt werden sollen oder ob sie selbst Ihren Heimat-IdP auswählen müssen (WAYF). Der WAYF-Dienst kann entweder direkt auf dem Moodle realisiert werden, oder man nutzt den WAYF-Dienst des DFN. Auch Kombinationen sind möglich.

Für ein typisches LMU-Moodle ist in der Regel ein Shibboleth-Login für sämtliche Nutzer (Studenten und Dozenten) sinnvoll, nur die Administratoren der gesamten Site (Instanzverantwortliche) sollten ein lokales Login haben. Das lokale Login ist keine grundsätzliche Bedingung - auch Shibboleth-Nutzern können volle Administrator-Rechte eingeräumt werden - sondern eine Vorsichtsmaßnahme, um bei einem Ausfall der Verzeichnis-Dienste oder Shibboleth noch an das Moodle ran zu kommen.

Um ein Moodle den gewünschten Login-Varianten anzupassen, kann man folgendes tun bzw. muss man ggf. auch an mehreren Stellen in die Konfigurationen eingreifen.

  1. Ausnutzung von Single-Sign-On

    Wenn man bereits andere Dienste nutzt, die shibboleth-fähig sind und man dort bereits eingeloggt ist, dann ist man beim Wechsel in das Moodle schon automatisch eingeloggt. In einigen Fällen muss man evtl. noch die Login-Seite https://www.xxx.moodle.elearning.lmu.de/auth/shibboleth/index.php aufrufen, wird dann aber gleich als bereits eingeloggt erkannt. In Moodle bedarf es dazu keiner weiteren Konfiguration außer der bereits erfolgten grundlegenden Aktivierung von Shibboleth.

  2. Login-Seite außerhalb von Moodle

    Man bietet den Nutzern auf irgendeinem Webserver ("LMU-E-Learning-Portal") Login-Möglichkeiten auf alle LMU-Moodles zur Verfügung. Das kann ein Direkt-Link zum LMU-IdP sein oder eine Auswahlliste von IdPs, wenn Nutzer aus verschiedenen Hochschulen kommen, oder es kann auch ein zwischengschalteter WAYF-Dienst wie z.B. die WAYF-Seite des DFN sein. In Moodle bedarf es dazu keiner weiteren Konfiguration außer der bereits erfolgten grundlegenden Aktivierung von Shibboleth.

    Hier ist eine solche - nutzbare ! - Beispiel-Liste einiger am LRZ gehosteter LMU-Moodles. Durch anklicken des Links kommt man direkt von hier zur Anmelde-Seite und wird nach erfolgreicher Anmeldung ins das entsprechende Moodle weitergeleitet.

    ifkw
    http://www.ifkw.moodle.elearning.lmu.de/ via LMUIdP
    elab
    http://www.elab.moodle.elearning.lmu.de/ via LMUIdP
    http://www.elab.moodle.elearning.lmu.de/ via Auswahl LMUIdP und TUMIdP
    edupsy
    http://www.edupsy.moodle.elearning.lmu.de/ via LMUIdP
    spe
    http://www.spe.moodle.elearning.lmu.de/ via LMUIdP
    soziologie
    http://www.soziologie.moodle.elearning.lmu.de/ via LMUIdP
    ews-a
    http://www.ews-a.moodle.elearning.lmu.de/ via LMUIdP
    http://www.ews-a.moodle.elearning.lmu.de/ via DFN
    gwi
    http://www.gwi.moodle.elearning.uni-muenchen.de via LMUIdP (deaktiviert)
    http://www.gwi.moodle.elearning.uni-muenchen.de via DFN

    Hinweis: Wenn man nacheinander versucht, sich an mehreren Moodles über Shibboleth einzuloggen, kann es passieren, dass man beim ersten Anklicken des nächsten Moodles über Shibboleth auf das Moodle zurückgeschickt wird, das man gerade davor besucht hat. Dies ist an sich ein Fehler, aber auch nicht weiter tragisch, es hat nichts mit Moodle zu tun, sondern mit Shibboleth. Die Ursache ist noch unbekannt. Beim zweiten Versuch wird man dann richtig weitergeleitet.

  3. Anpassung von https://www.xxx.moodle.elearning.lmu.de/login/index.php

    Das ist die Standard-Login-Seite, die Sie in einem neu eingericheten Moodle erreichen, wenn Sie einfach den "Login"-Knopf anklicken. Hier können Sie sich zunächst nur einloggen, wenn Sie in Moodle einen lokalen Account haben. Ein Shibboleth-Login funktioniert mit dem ausgegebenen Login-Formular nicht.

    Man kann aber unter Website-Administration --> Authentifizierung --> Übersicht im Feld "Anweisungen auth_instructions" einen Text hinzufügen, der einen Link auf eine geeignete Shibboleth-Login-Seite enthält. Dadurch wird die Standard-Login-Seite, die man über den Knopf "Login" in Moodle erreicht, zweigeteilt. Links stehen wie bisher die gewohnten Eingabefelder für Kennung und Passwort, damit kann man sich nur lokal anmelden. Rechts erscheint der Text mit den Login-Anweisungen. Ein solches Setup hat aber für unser Ziel einen großen Nachteil: Es ist nicht leicht an die Nutzer vermittelbar, dass sie nur die Links zum Shibboleth-Login auf der rechten Seite nutzen sollen und dass das recht prominente Login-Fenster links nur Admins vorbehalten ist. Man kann zwar den Text durch Farbe und Schrift so auffällig gestalten, dass es verlockend wird, sich rechts anzumelden, aber Fehlversuche sind noch immer nicht auszuschließen.

    Wer sehr fit mit Sprachanpassungen und Styles in Moodle ist, kann natürlich auch diese Seite so ändern, dass die Texte den Nutzer gezielter zum richtigen Login führen, aber es wird bei der Notwendigkeit bleiben, dass Nutzer zwischen lokalem und Shibboleth-Login wählen müssen.

  4. Alternative Login-URL einrichten - lokalen Admin-Zugang sichern

    Statt die Standard-Login-Seite mühevoll anzupassen kann man eine eigene Seite schreiben, über die man sich in Moodle anmelden kann. Den URL dorthin konfiguriert man in Moodle.

    Nutzt man dieses Feature, muss man vorsichtig sein! Moodle wird dann den als Alternative Login-URL genannten URL als Standard-Login-Seite ausgeben, immer wenn man auf den Login-Knopf klickt! Auch wenn man die weiter oben beschriebene Standard-Login-Seite explizit aufruft, wird man von Moodle auf die alternative Seite weitergeleitet. Ist der Link fehlerhaft oder enthält die Seite selbst Fehler, kann man sich nicht mehr einloggen! Hat man auf der alternativen Login-Seite nur Shibboleth-Login-Möglichkeiten eingerichtet, hat man sich auch den lokalen Admin-Zugang versperrt, wenn man nicht vorgesorgt hat!

    Will man also z.B. die Studenten und Dozenten über Shibboleth schicken, für den Admin aber den lokalen Zugang sichern, geht man folgendermaßen vor:

    • Man legt zuerst irgendwo eine Webseite ab, die ein für ein lokales Login passendes Login-Formular enthält. Diese Webseite ist aber nur dem Admin bekannt. Auf Funktionsfähigkeit testen!

    • Dann trägt man unter Website-Administration --> Authentifizierung --> Übersicht im Feld "URL für alternatives Login alternateloginurl" einen Link zu einer Seite ein, der auf eine reines Shibboleth-Login-Seite zeigt, diese ist für die Studenten und Dozenten. Sie kann auf dem Moodle liegen, kann aber auch irgendwo anders auf den Institutsseiten untergebracht sein.

  5. https://www.xxx.moodle.elearning.lmu.de/auth/shibboleth/index.php

    Diese Seite ist wie die Standard-Login-Seite bereits in Moodle vorhanden und führt beim Aufruf sofort automatisch aus Moodle hinaus zu einem IdP oder einem WAYF-Dienst zum Anmelden und dann automatisch wieder zurück ins Moodle. Zu welchem Anmeldeserver sie geleitet werden muss vom LRZ außerhalb von Moodle in der Shibboleth-Konfiguration festgelegt werden. Die Festlegung wird in Absprache mit dem Moodle-Administrator gemacht. Es gibt zwei Möglichkeiten:

    • Über die DFN-AAI (WAYF): So ist es in der Regel vom LRZ voreingestellt, Sie können es durch direkte Eingabe des URLs im Browser sehen: Sobald Sie den URL geladen haben, kommen Sie auf eine Webseite beim DFN. Wählen Sie dann aus dem Menü dort die LMU aus, sie werden zum LMUIdP weitergeleitet, dann können Sie ihr Campus-Login verwenden. Diese Einstellung macht Sinn, wenn Sie Logins von verschiedenen Unis aus der Liste der dort genannten Einrichtungen erwarten.

    • Direkt zum LMUIdP: Dann können sich nur LMU-Studenten/Dozenten über Shibboleth anmelden.

    Man kann diese Seite als Alternative Login-URL in Moodle konfigurieren, wenn man (s.o.) einen funktionierenden, separaten lokalen Admin-Zugang eingerichtet hat.

  6. https://www.xxx.moodle.elearning.lmu.de/auth/shibboleth/login.php

    Dieser URL führt zu einer Auswahl-Box (Moodle-internes WAYF), deren Ziel-IdPs man in Moodle konfigurieren muss, in der Voreinstellung vom LRZ kann man momentan zwischen LMUIdP und TUMIdP auswählen, man könnte beliebig IdPs ergänzen.

    Wenn Sie wie vorhin beschrieben im Feld "Anweisungen auth_instructions" Text hinzugefügt haben, wird dieser wie bei der Standard-Login-Seite rechts ausgegeben.

    Man kann diese Seite als Alternative Login-URL in Moodle konfigurieren, wenn man (s.o.) einen funktionierenden, separaten lokalen Admin-Zugang eingerichtet hat.

Konfiguration der LMU-Moodles

Ein vom LRZ übergebenes LMU-Moodle ist grundsätzlich shibboleth-fähig, die Grundkonfigurationen sind außerhalb und innerhalb von Moodle erfolgt:

  • Die technischen Konfigurationen auf dem Webserver, am Service Provider (SP). der für die LMU-Moodles betrieben wird und innerhalb von Moodle sind erfolgt.
  • Der Moodle-Webserver wurde in der DFN-AAI angemeldet
  • Der Moodle-Webserver wurde am LMUIdP zur Nutzung freigeschaltet

Der Instanz-Verantwortliche muss dann darüber bestimmen, ob und wie die Links auf das Shibboleth-Login realisiert werden sollen. Ein sinnvolles Setup wäre die oben beschriebene Variante "Alternative Login-URL einrichten - lokalen Admin-Zugang sichern".

Import von Moodle-Nutzern bei Shibboleth-Nutzung

Wenn man sich über Shibboleth anmeldet, wird vom IdP eine kleine Anzahl Attribute (im wesentlichen MWNID (eppn), Email-Adresse, Vorname und Name) zu diesem Login an das Moodle übermittelt. Moodle legt automatisch einen neuen Nutzer an, wenn dieser noch nicht angelegt wurde. Die Zuordnung der übermittelten Attribute zu den in Moodle üblichen Profil-Daten ist konfigurierbar und in Absprache mit LMU und LRZ bereits voreingestellt. Dabei wird die MWNID zur Identifikation (im Moodle-Jargon: "als Anmeldename") des neuen Nutzers verwendet. Falls ein solches Attribut nicht existiert (fremde IdPs), wird stattdessen die (ungünstigere) Email-Adresse als Anmeldename genommen. Es kann dabei zu doppelten Einträgen für den gleichen Nutzer kommen, wenn dieser sich z.B. über mehrere Email-Adressen bei seinem IdP authentifizieren kann (TUM-Nutzer!). Bei jedem Login werden die Nutzer-Attribute in Moodle aktualisiert. Alle aus Shibboleth stammenden Attribute sind in Moodle nicht veränderbar, um Änderungen in den zentralen Verzeichnisdiensten immer auch aktuell in Moodle abzubilden.

Als Moodle-Administrator sieht man die registrierten Nutzer unter

Website-Administration --> Nutzer/innen --> Nutzerkonten --> Nutzerliste anzeigen

Sobald Sie ein erstes Shibboleth-Login gemacht haben, werden Sie in dieser Liste neu auftauchen. Beachten Sie auch, dass Sie als frisch angemeldeter Shibboleth-Nutzer (noch) kaum Rechte haben, insbesondere natürlich auch keine Administrator-Rechte!

Cookies!!

  • Essentiell notwendig, um mit Moodle zu arbeiten (neben JavaScript und einer guten Internet-Anbindung!)

  • Dürfen während der Session nicht gelöscht werden! Sie wollen eingeloggt bleiben!

  • Müssen nach der Session gelöscht werden! Sicherheit, niemand außer Ihnen darf das Cookie nutzen können.

  • Sind Session-Cookies, die - normalerweise - beim Schließen des Browsers automatisch gelöscht werden.

  • Man erhält während des Loginvorgangs von allen beteiligten Webservern Cookies:

    • vom Moodle, auf das man sich anmelden will (zwingend, damit wird das lokale Login auf dem betreffenden Moodle gesteuert)
    • vom WAYF-Service des DFN (freiwillig, damit kann man seine Heimateinrichtung festhalten)
    • vom IdP (zwingend, damit wird die Shibboleth-Session gesteuert)
  • Während des Login-Vorgangs über Shibboleth darf man die Back/Forward-Taste des Webbrowsers nicht verwenden! Das führt zu Fehlermeldungen beim Anmelden, wobei die beteiligten Cookies verhunzt werden - man muss dann den Browser neu starten, oder, wenn man weiß, wie, die Cookies von Moodle und seinem IdP löschen.

Hinweise zur Nutzerverwaltung in Moodle

  • Beim ersten Anmelden wird der neue Nutzer in Moodle automatisch anhand der vom IdP übermittelten Daten angelegt.

  • Die vom IdP übermittelten Daten kann der Nutzer sich im Lauf des Loginvorgangs auf dem IdP ansehen (derzeit Vorname, Nachname, Emailadresse, MWNID, UID, ggf. VHB-Schlüssel)

  • Bei jedem Login erfolgt eine Aktualisierung der IdP-Daten im Moodle. Änderungen an den Attributen, die vom IdP kommen, wären nicht sinnvoll und sind deshalb nicht erlaubt.

  • Das Löschen von Nutzern und deren Daten in Moodle obliegt dem Instanzverantwortlichen!

  • Die Regelung der Nutzer-Rechte in Moodle, der Kurszugehörigkeiten etc. obliegt dem Instanzverantwortlichen

  • Für einen aus Datenschutzsicht sorgfältigen und korrekten Umgang mit sämtlichen Nutzerdaten ist der Instanzverantwortlichen zuständig.