JWT SSO
Komponente auth_jwtsso · Version v1.0.3 (Build: 20261008)
Einsatz und Zielgruppe
Abschnitt betitelt „Einsatz und Zielgruppe“JWT SSO ist eine Anmeldemethode für Moodle. Sie eignet sich, wenn ein anderes System bereits weiß, wer eine Person ist, und diese Person ohne zweite Anmeldung in Moodle bringen soll. Beispiele für solche Systeme sind Odoo, Keycloak oder ein eigener Dienst.
Die Einrichtung übernimmt die Administration gemeinsam mit den Verantwortlichen des vorgelagerten Systems. Lernende und Lehrende sehen höchstens eine Schaltfläche auf der Anmeldeseite.
Das Plugin ist ein Fork des Plugins auf moodle.org. eLeDia pflegt einen neueren Stand mit getrennten Support-Konten.
So funktioniert die Anmeldung
Abschnitt betitelt „So funktioniert die Anmeldung“- Die Person ist im vorgelagerten System angemeldet und klickt auf einen Link zur Lernplattform.
- Das vorgelagerte System erzeugt ein Token mit Angaben wie E-Mail-Adresse und Name und signiert es mit seinem privaten Schlüssel.
- Moodle prüft die Signatur mit dem öffentlichen Schlüssel, dazu Aussteller (
iss), Empfänger (aud), Ablauf (exp), Ausstellungszeit (iat) und einen Einmalwert (nonce). - Stimmt alles, meldet Moodle die Person an. Fehlt das Konto, wird es angelegt, sofern das erlaubt ist.
- Enthält das Token den Wert
rdr, leitet Moodle auf diesen lokalen Pfad weiter. Externe Adressen werden ignoriert.
Optional kann die Anmeldung auch von Moodle aus starten. Dann erscheint auf der Anmeldeseite die Schaltfläche „Login via external SSO“.
Einrichtung
Abschnitt betitelt „Einrichtung“- Installieren Sie das Plugin unter
auth/jwtssound aktivieren Sie es unter Website-Administration → Plugins → Authentifizierung → Übersicht. - Legen Sie in den Einstellungen JWT SSO einen Aussteller an. Für jeden Aussteller tragen Sie ein:
- Issuer URL (
iss), die eindeutige Kennung des Identitätsanbieters, - Audience (
aud), Vorgabe ist die Adresse Ihrer Moodle-Plattform, - einen JWKS-Endpunkt für wechselnde Schlüssel oder einen statischen öffentlichen Schlüssel im PEM-Format,
- die erlaubten Verfahren, Vorgabe
RS256,ES256.
- Issuer URL (
- Legen Sie fest, ob Konten bei der ersten Anmeldung angelegt werden, welche Angaben im Token Benutzername und E-Mail-Adresse liefern (Vorgabe
email) und wie lange ein Einmalwert gültig ist (Vorgabe 300 Sekunden). - Schalten Sie bei Bedarf die detaillierte Protokollierung ein.
Die technische Schnittstelle für das vorgelagerte System ist in der Datei ISSUER_API.md im Plugin beschrieben. Im Ordner examples liegt ein Beispiel für einen Identitätsanbieter in Python.
Support-Anmeldungen
Abschnitt betitelt „Support-Anmeldungen“Ein Token mit dem Wert admin (zum Beispiel support) gilt als Support-Anmeldung. Zusammen mit dem Plugin JWT SSO Rollenzuweisung entsteht ein Konto mit Administrationsrechten, das nach einer Frist gelöscht wird.
Gehört die E-Mail-Adresse bereits einem normalen Konto, etwa einem Lernkonto, wird dieses nie verwendet oder verändert. Stattdessen entsteht ein getrenntes Support-Konto mit der Adresse name+support@domain. Mit der Einstellung Immer separates Support-Konto verwenden gilt das für jede Support-Anmeldung.
Datenschutz
Abschnitt betitelt „Datenschutz“Das Plugin legt Konten mit den Angaben aus dem Token an, in der Regel Name und E-Mail-Adresse. Inhalte von Tokens werden nicht protokolliert, auch nicht bei detaillierter Protokollierung. Einmalwerte werden in einer eigenen Tabelle gespeichert und von einer geplanten Aufgabe wieder entfernt. Welche Angaben das vorgelagerte System überträgt, legen Sie mit dessen Verantwortlichen fest.
Grenzen
Abschnitt betitelt „Grenzen“- Das Plugin weist keine Rollen zu. Dafür gibt es JWT SSO Rollenzuweisung.
- Es synchronisiert keine Profile nachträglich und meldet Personen nicht im vorgelagerten System ab.
- Es unterstützt nur Signaturen mit öffentlichen Schlüsseln (RS, ES), keine gemeinsamen Geheimnisse.
FAQ und Fehlerbehebung
Abschnitt betitelt „FAQ und Fehlerbehebung“„Unexpected issuer“ oder „Unexpected audience“. Aussteller oder Empfänger im Token stimmen nicht mit der Einstellung überein. Achten Sie auf genaue Schreibweise, auch auf abschließende Schrägstriche.
„Nonce not found or expired“. Das Token wurde zu spät oder doppelt verwendet. Prüfen Sie die Uhrzeit beider Server und die Gültigkeit des Einmalwerts.
„Dieses Konto ist für Support-Anmeldungen reserviert.“ Eine normale Anmeldung zielt auf ein Support-Konto. Das ist beabsichtigt.