Externe Authentifizierung - Moodle

Autor des Abschnitts: @thomas, @cweikl

Das Active Directory (AD) der linuxmuster.net 7 dient als zentrale Authentifizierungsinstanz. Sollen Dienste wie z.B. das Lernmanagementsystem (LMS) Moodle oder das Raumbuchungssystem MRBS extern betrieben werden, so können diese so konfiguriert werden, dass eine Authentifizierung gegen das AD der lmn 7 erfolgt.

Hierzu sind einige Konfigurationsschritte erforderlich, die nachstehend beschrieben werden.

Firewalleinstellungen

Die Firewall (OPNsense®) muss so konfiguriert werden, dass Anfragen über den LDAPS-Port 636 an den Server weitergeleitet werden.

In der Konfigurationsoberfläche ist unter Firewall -> NAT -> Portweiterleitung eine entsprechende Regel anzulegen. Wenn die von linuxmuster.net bereitgestellte Appliance verwendet wurde, ist die Regel schon vorbereitet. Anderfalls muss diese wie in der Abb. ersichtlich, noch erstellt werden.

Firwall NAT Port Forwarding

Die Regel muss nun noch aktiviert

Activate Firwall NAT Port Forwarding Rule

und anschliessend übernommen werden:

Activate Settings

Moodle-Einstellungen

Im externen Moodle-System sind unter Website-Administration ->  Plugins -> Authentifizierung -> LDAP-Server die folgenden Einstellungen vorzunehmen.

Nicht aufgeführte Optionen sollten auf der Standard-Einstellung bleiben bzw. leer gelassen werden.

LDAP-Server-Einstellungen

Host Url

ldaps://server.linuxmuster.lan

Hier den vollständigen Namen des eigenen Servers oder die IP-Adresse verwenden.

Version

3

TLS benutzen

Nein

LDAP-Codierung

utf-8

Bind-Einstellungen

Achtung

Grundsätzlich sollten alle externen Dienste, die via LDAP an das AD angebunden werden, mit einem eigens dafür angelegten Bind-User genutzt werden. Für Moodle sollte so z.B. ein Benutzer moodle-binduser angelegt werden, der für die Verbindung zum AD genutzt wird. Hinweise hierzu findest Du unter https://github.com/linuxmuster/sophomorix4/wiki/bindusers

Vorgehen zur Anlage eines neuen Bind-Users

  1. Auf dem linuxmuster.net Server folgenden Befehl in der Konsole als Benutzer root absetzen, um einen neuen Benutzer (moodle-binduser) für den Bind-Zugriff zu definieren. Das zufällig erzeugte Kennwort wird in einer Datei auf dem Server hinterlegt.

# sophomorix-admin --create-school-binduser moodle-binduser --school default-school --random-passwd-save
  1. Gib für den neu angelegten Benutzer einen Kommentar an, um später einen Hinweis zu erhalten, für welchen Zweck der Benutzer genutzt wird.

# sophomorix-user -u moodle-binduser --comment "AD access from moodle"
  1. Lasse nun die Daten für den neu angelegten Benutzer anzeigen, die dann in Moodle als bind-user einzutragen sind.

# sophomorix-admin -i -a moodle-binduser
  1. Trage in Moodle die unter 3. angezeigten Daten in Moodle für den Bind-User nach dem nachstehenden Schema ein:

Anmeldename

CN=moodle-binduser,OU=Management,OU=default-school,OU=SCHOOLS,DC=linuxmuster,DC=lan

DC=linuxmuster,DC=lan sind mit den Angaben der eigenen Domäne zu ersetzen.

Kennwort

geheim (angezeigtes Kennwort, das in der datei hinterlegt wurde)

Kennwort des Bind-Users wurde unter 1. in einer Datei auf dem Server abgelegt.

zur Anzeige ist der Befehl unter 3. erforderlich

Nutzertyp

MS ActiveDirectory

Kontexte

OU=schools,DC=linuxmuster,DC=lan

Die DC-Einträge sind durch die, der eigenen Domäne zu ersetzen.

Subkontexte

Ja

Weitere Einstellungen

Kennwortänderung fordern

Änderung fordern

Nein

Standardseite zur Änderung nutzen

Nein

Kennwortformat

Nein

Einstellungen zum Ablauf von LDAP-Kennwörtern

Ablauf

Nein

Ablaufwarnung

Leer

Ablaufmerkmal

Leer

GraceLogins

Nein

Merkmal für GraceLogin

Leer

Nutzererstellung aktivieren

Nutzer/innen extern anlegen

Nein

Kontext für neue Nutzer/innen

Leer

Zuordnung von Systemrollen

Kursersteller/in-Kontext

OU=teachers,OU=default-school,OU=schools,DC=linuxmuster,DC=lan

DC-Einträge durch eigene Domäne ersetzen.

Synchronisierung von Nutzerkonten

Entfernte externe Nutzer

Intern löschen

Status von lokalen Nutzerkonten synchronisieren

Nein

NTLM-SSO

Aktivieren

Nein

Subnet

Nein

MS IE fast path?

NTLM mit allen Browsern versuchen

Datenzuordnung

Daten übernehmen (Vorname)

givenName

Daten übernehmen (Nachname)

sn

Daten übernehmen (E-Mail-Adresse)

Leer

Nutzersuche (user lookup)

ObjectClass (auth_ldap|objectclass)

(|(sophomorixRole=teacher)(sophomorixRole=student))

Filter: Nur Lehrer und SuS, keine Maschinen-Accounts

Zum Testen, ob der Filter korrekt arbeitet, sollte zugleich die Einstellung zur Synchronisierung von Nutzerkonten wie folgt angepasst werden:

Synchronisierung von Nutzerkonten (user account synchronisation)

Entfernte externe Nutzer/innen (auth_ldap|removeuser)

für Tests: intern sperren (suspend internal)

danach: intern löschen (delete internal)

Die Änderungen sind abschließend über die Schaltfläche am Seitenende zu sichern. In der Übersicht der Aktiven Plugins ist der LDAP-Server zur Authentifizierung zu aktivieren.

Achtung

Nachdem alle Einstellungen getroffen sind, unbedingt alle Caches leeren!

Host-Einstellungen

Gegebenenfalls muss auf dem Moodle-Host sicher gestellt werden, dass das selbstsignierte Zertifikat des Servers bei der LDAP-Abfrage akzeptiert wird.

Auf dem Host selbst ist hierzu in der Datei /etc/ldap/ldap.conf folgender Eintrag zu ergänzen:

TLS_REQCERT never

Läuft die Moodle-Instanz in einem Docker-Container, reicht man diese Datei als readonly Volume an den Container durch. Der Eintrag in der Datei docker-compose.yml lautet dann:

volumes:
 - '/etc/ldap/ldap.conf:/etc/ldap/ldap.conf:ro'