Zum Hauptinhalt springen

Synchronisation

Das Edulution-Plugin synchronisiert Benutzer, Gruppen und Rollen automatisch von Keycloak nach Moodle. Die gesamte Konfiguration erfolgt über die Moodle-Administration.

Funktionsweise

Einrichtung

1. Keycloak-Verbindung konfigurieren

Navigieren Sie zu: Site-Administration → Plugins → Lokale Plugins → Edulution → Übersicht

Oder nutzen Sie den Einrichtungsassistenten beim ersten Start.

Erforderliche Einstellungen:

  • Server-URL: Die URL Ihres Keycloak-Servers (z.B. https://keycloak.schule.de)
  • Realm: Der Keycloak-Realm (z.B. master oder Schulname)
  • Client-ID: Die Client-ID für Moodle
  • Client-Secret: Das Client-Secret

2. Synchronisierung aktivieren

In den Keycloak-Einstellungen:

  • Automatische Synchronisierung aktivieren: Ja
  • Synchronisierungs-Intervall: z.B. "Jede Stunde"

Benutzer-Synchronisation

Attribut-Mapping

KeycloakMoodleBeschreibung
usernameusernameBenutzername
emailemailE-Mail-Adresse
firstNamefirstnameVorname
lastNamelastnameNachname

Lehrer-Erkennung

Das Plugin erkennt Lehrer automatisch anhand eines Keycloak-Attributs:

Einstellung: Site-Administration → Plugins → Edulution → Synchronisierung

EinstellungBeschreibungStandard
Rollen-AttributDas Keycloak-Attribut mit der RollesophomorixRole
Wert für LehrerDer Wert, der Lehrer kennzeichnetteacher

Das Standard-Attribut ist sophomorixRole, kann aber angepasst werden.

Moodle-Rollen

Je nach erkannter Rolle werden Benutzer mit verschiedenen Moodle-Rollen eingeschrieben:

BenutzertypMoodle-RolleKann bearbeiten?
LehrereditingteacherJa
SchülerstudentNein
SchuladminmanagerJa

Gruppen-Synchronisation

Intelligente Namensschemas

Das Plugin erkennt automatisch verschiedene Gruppentypen anhand ihrer Namen und erstellt entsprechende Kurse mit passenden Kategorien.

:::tip Detaillierte Dokumentation Eine vollständige Übersicht aller Namensschemas finden Sie unter Gruppen-Namensschemas. :::

Beispiele:

Keycloak-GruppeMoodle-KursKategorie
p_alle_matheFachschaft MathematikFachschaften
p_mueller_bio_10aBiologie Klasse 10A (MUELLER)Kurse/Stufe 10
p_8b_deutschDeutsch 8BKlassen/Stufe 8
p_robotik_agAG: RobotikAGs
10a-studentsKlasse 10AKlassen/Stufe 10

Automatische Filterung

Das Plugin ignoriert automatisch folgende Gruppen:

  • *-parents, *-eltern (Elterngruppen)
  • test_*, debug_* (Testgruppen)
  • _internal_* (Interne Gruppen)

Einschreibungen

Mitglieder einer Keycloak-Gruppe werden automatisch in den entsprechenden Moodle-Kurs eingeschrieben:

  • Lehrer: Werden als Trainer (editingteacher) eingeschrieben
  • Schüler: Werden als Teilnehmer (student) eingeschrieben

:::info Fachschafts-Besonderheit Bei Fachschaften (p_alle_*) werden alle Mitglieder automatisch als Trainer eingeschrieben. :::

Synchronisierungs-Optionen

Navigieren Sie zu: Site-Administration → Plugins → Edulution → Synchronisierung

Benutzer-Optionen

OptionBeschreibungEmpfehlung
Neue Benutzer anlegenBenutzer aus Keycloak automatisch in Moodle anlegenAktiviert
Bestehende Benutzer aktualisierenName/E-Mail synchron haltenAktiviert

Vorsichtige Optionen

:::warning Achtung Diese Optionen können Daten löschen! Nur aktivieren, wenn alle Benutzer ausschließlich über Keycloak verwaltet werden. :::

OptionBeschreibungEmpfehlung
Fehlende Benutzer sperrenBenutzer sperren, wenn nicht mehr in KeycloakNur bei 100% Keycloak
Entfernte Benutzer abmeldenAus Kursen abmelden, wenn aus Gruppe entferntVorsichtig verwenden

Manueller Sync

Über das Dashboard

  1. Navigieren Sie zu: Site-Administration → Plugins → Edulution → Übersicht
  2. Klicken Sie auf "Vorschau anzeigen" um zu sehen, was synchronisiert wird
  3. Klicken Sie auf "Jetzt synchronisieren"

Über die Kommandozeile

# Synchronisierung starten
php /var/www/html/local/edulution/cli/sync.php

# Mit Vorschau (dry-run)
php /var/www/html/local/edulution/cli/sync.php --preview

Automatische Synchronisierung

Die Synchronisierung läuft automatisch als Moodle Scheduled Task:

  • Task: \local_edulution\task\sync_keycloak
  • Standard-Intervall: Jede Stunde (konfigurierbar)

Intervall ändern

  1. Site-Administration → Plugins → Edulution → Keycloak
  2. Synchronisierungs-Intervall ändern

Verfügbare Intervalle:

  • Alle 15 Minuten
  • Alle 30 Minuten
  • Jede Stunde
  • Alle 6 Stunden
  • Alle 12 Stunden
  • Einmal täglich

Kategorie-Einstellungen

Navigieren Sie zu: Site-Administration → Plugins → Edulution → Kurskategorien

EinstellungBeschreibung
Übergeordnete KategorieWählen Sie eine bestehende Kategorie oder lassen Sie "Edulution" erstellen
Name der HauptkategorieName für neue Kategorie (wenn erstellt)

Unterkategorien (Fachschaften, Klassen, etc.) werden automatisch erstellt.

Fehlerbehebung

Verbindung testen

Im Dashboard wird der Verbindungsstatus automatisch angezeigt. Bei Problemen:

  1. Prüfen Sie die Keycloak-URL (erreichbar?)
  2. Prüfen Sie Client-ID und Client-Secret
  3. Prüfen Sie den Realm-Namen

Benutzer wird nicht synchronisiert

  1. Hat der Benutzer in Keycloak ein gültiges Attribut für die Rolle?
  2. Ist der Benutzer Mitglied einer Gruppe, die synchronisiert wird?
  3. Prüfen Sie die Debug-Logs: Site-Administration → Berichte → Live Logs

Gruppen werden nicht erkannt

  1. Entspricht der Gruppenname einem der Namensschemas?
  2. Beginnt die Gruppe mit p_ oder endet mit -students?
  3. Wird die Gruppe durch ein Ignore-Pattern ausgeschlossen?
  4. Nutzen Sie die Vorschau-Funktion im Dashboard zum Testen

Kategorien werden nicht erstellt

Die Kategorien werden automatisch erstellt. Stellen Sie sicher:

  1. Der Moodle-Admin hat Rechte zum Erstellen von Kategorien
  2. Die übergeordnete Kategorie existiert (oder "Edulution" wird erstellt)

Best Practices

Vor dem ersten Sync

  1. Vorschau nutzen: Zeigt was synchronisiert wird, ohne Änderungen
  2. Backup erstellen: Sichern Sie die Moodle-Datenbank
  3. Mit kleiner Gruppe testen: Erstellen Sie eine Testgruppe in Keycloak

Produktivbetrieb

  • Sync-Intervall: Jede Stunde ist ein guter Kompromiss
  • Benutzer sperren: Erst aktivieren wenn stabil läuft
  • Logs prüfen: Regelmäßig nach Fehlern schauen

Nächste Schritte