Vor einiger Zeit bekamen wir einen neuen Schulserver und damit auch eine neue Serverlösung zur Verwaltung unserer Schulrechner. Es kommt nun die so genannte Pädagogische Musterlösung des Landes Baden-Württemberg Version 6/Linux (paedML 6 Linux) zum Einsatz. Neben der Verwaltung der Rechner benutzen wir die paedML auch für die Authentifizierung von Benutzern an verschiedenen Zusatzdiensten, z.B. für den Zugriff auf die verschiedenen Bereiche des Intranets oder auf Moodle Kurse. Die Anbindung dieser Dienste ist mit LDAP realisiert.
Im Zuge der Umstellung auf die paedML 6 musste auch die Anbindung unseres DokuWiki -Intranets und unserer bei Belwue gehosteten Moodle-Installation angepasst werden. Aus meiner Sicht ist diese Anbindung einerseits extrem praktisch, weil so der zentrale Benutzerstamm, der auf dem Schulserver ohnehin gepflegt werden muss, auch für diese externen Dienste benutzt werden kann. Damit muss man nur einen Datensatz pflegen. Andererseits ist die Anbindung der verschiedenen Dienste für mich jedes Mal etwas heikel, weil die Dokumentation dafür meist dünn und oft lückenhaft ist und weil ich mich zu wenig damit auskenne, um wirklich souverän damit umgehen zu können, wenn etwas nicht klappt. Da es anderen möglicherweise genauso geht, dokumentiere ich hier unseren Ansatz der LDAP-Anbindung an die paedML 6 Linux, um das Gefrickel für die Zukunft vielleicht etwas zu mildern.
Authentifizierung in DokuWiki einrichten
DokuWiki bringt in der aktuellen Version verschiedene Authentifizierungsmöglichkeiten mit, LDAP ist eine davon und kann ohne zusätzliche Plugins realisiert werden. Die verschiedenen Möglichkeiten zur Authentifizierung finden sich im Bereich Admin > Konfiguration
und dann im Abschnitt Authentifizierung > Authentifizierungsmechanismus (authtype)
. Die Details für die jeweilige Methode werden dann im Abschnitt Plugins
eingetragen (intern sind die Authentifizierungsmodule als Plugins realisiert, die jedoch fest vorinstalliert sind).
Um die Benutzer an DokuWiki per LDAP zu authentifizieren, bietet es sich an, zur Sicherheit zusätzlich das Chained-Auth-Plugin zu installieren. Dieses erlaubt es, mehrere Authentifizierungsmethoden nacheinander abzufragen, z.B. zuerst das LDAP-Verzeichnis und dann – wenn dieses nicht verfügbar oder der betreffende Benutzer dort nicht vorhanden ist – die eingebaute Benutzerverwaltung des Wikis. Wenn also z.B. der LDAP-Dienst einmal nicht zur Verfügung steht, weil z.B. der Schulserver ausgefallen ist, kann man sich so mit einem vorher lokal im Wiki angelegten Benutzer anmelden. Für diesen Fall habe ich einen lokalen Admin-Benutzer, so dass ich als Admin in jedem Fall ins Wiki komme, auch wenn die Server-Authentifizierung mal nicht zur Verfügung steht.
Dabei muss man beachten, dass lokale Benutzer in DokuWiki nicht mehr angelegt werden können, sobald LDAP als Authentifizierungsmethode aktiviert ist. Die lokale Benutzerverwaltung ist im Admin-Bereich dann ausgeblendet. Daher sollte man den lokalen Admin entweder vor der LDAP-Aktivierung anlegen oder man muss LDAP kurzzeitig ausschalten, um lokale Benutzer zu ergänzen.
Sollte man sich nicht am Wiki anmelden können, z.B. weil der LDAP-Dienst gerade ausgefallen ist und hat man das Chained-Auth-Plugin nicht installiert, kann man die Authentifizierungsmethode in einer Konfigurationsdatei ändern. In der Datei conf/local.php
muss die Zeile
$conf['authtype'] = 'authplain';
lauten, um die lokale Benutzerverwaltung des Wikis zu benutzen. Für die anderen Authentifizierungsmethoden lauten die Einträge:
$conf['authtype'] = 'authldap'; // LDAP
$conf['authtype'] = 'authchained'; // Chained-Auth-Plugin, falls installiert
Es kann jeweils nur eine dieser Methoden aktiv sein. Wenn man das Chained-Auth-Plugin installiert hat, muss man in dessen Kofigurationsabschnitt Admin > Konfiguration > Plugins > Chained authentication plugin
noch eintragen, in welcher Reihenfolge die Methoden abgefragt werden sollen. Zum Beispiel authldap:authplain
, wenn zuerst LDAP und anschließend die lokale Authentifizierung verwendet werden sollen.
Details der Anbindung an den LDAP-Dienst
Folgende Einstellungen müssen im Wiki in Bereich Admin > Konfiguration > Plugins > Authldap
eingetragen werden, um das DokuWiki mit dem LDAP-Dienst der paedML 6 Linux zu verbinden.
Feld | Klartexterklärung | Einzutragender Wert | Erläuterung |
---|---|---|---|
plugin » authldap » server | Adresse zum LDAP-Server. | xxx.xxx.xxx.xxx |
IP-Adresse des Servers |
plugin » authldap » port | Port des LDAP-Servers, falls kein Port angegeben wurde. | 7389 |
LDAP-Port, möglicherweise immer 7389, evtl. auch bei jedem Server anders |
plugin » authldap » usertree | Zweig, in dem die die Benutzeraccounts gespeichert sind. | cn=users,ou=schule,dc=paedml-linux,dc=lokal |
|
plugin » authldap » grouptree | Zweig, in dem die Benutzergruppen gespeichert sind. | cn=groups,ou=schule,dc=paedml-linux,dc=lokal |
|
plugin » authldap » userfilter | LDAP-Filter, um die Benutzeraccounts zu suchen. | (&(uid=%{user})(objectClass=posixAccount)) |
|
plugin » authldap » groupfilter | LDAP-Filter, um die Benutzergruppen zu suchen. | (&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user}))) |
|
plugin » authldap » version | Zu verwendende Protokollversion von LDAP. | 3 | |
plugin » authldap » starttls | Verbindung über TLS aufbauen? | nicht aktiviert | Aktuell wird TLS von der paedML 6 Linux meines Wissens nicht unterstützt |
plugin » authldap » referrals | Weiterverfolgen von LDAP-Referrals (Verweise)? | nicht aktiviert | |
plugin » authldap » deref | Wie sollen Aliase aufgelöst werden? | LDAP_DEREF_ALWAYS |
|
plugin » authldap » binddn | DN eines optionalen Benutzers, wenn der anonyme Zugriff nicht ausreichend ist. | uid=moodle,cn=users,dc=paedml-linux,dc=lokal |
Benutzername, der – soweit ich es vertstanden habe – für den »Handshake« zwischen Wiki und Server nötig ist bevor auf das LDAP Verzeichnis zugegriffen wird. In diesem Fall wurde ein Benutzer mit Namen »moodle« angelegt. Dieser könnte aber auch einen anderen Benutzernamen haben. |
plugin » authldap » bindpw | Passwort des angegebenen Benutzers. | Passwort des Benutzers »moodle« | |
plugin » authldap » userscope | Die Suchweite nach Benutzeraccounts. | sub |
|
plugin » authldap » groupscope | Die Suchweite nach Benutzergruppen. | sub |
|
plugin » authldap » groupkey | Gruppieren der Benutzeraccounts anhand eines beliebigen Benutzerattributes. | cn |
|
plugin » authldap » debug | Debug-Informationen beim Auftreten von Fehlern anzeigen? | Während der Einrichtung sinnvollerweise aktiviert, danach deaktiviert |
Differenzierte Berechtigungen für verschiedene schulische Gruppen
Nach der Installation und dem Anlegen der Benutzer gibt es in der paedML 6 Linux verschiedene Gruppen, die auch im LDAP-Verzeichnisbaum abgebildet sind und für die Zuweisung von Berechtigungen im Wiki angesprochen werden können. Die Gruppen lauten:
- Alle Lehrkräfte:
lehrer-schule
- Alle Schüler:
schueler-schule
- Einzelne Klassen: z.B.
schule-7a
(wenn z.B. 7a als Klassenbezeichnung beim Anlegen der Schüler verwendet wurde)
Diese Gruppen sind im LDAP-Baum unterhalb von lokal.paedml-linux:/schule/groups
angelegt und können in der Schulkonsole im Bereich Gruppen
verwaltet werden (Anmeldung als Admin).
Möchte man weitere Gruppen anlegen, kann man das ebenfalls in der Schulkonsole im Bereich Gruppen
tun (mit + Hinzufügen
). Ich habe z.B. eine Gruppe von Kollegen angelegt, die Schreibrechte im Intranet haben, die bei mir p_dw_redaktion
heißt. In DokuWiki kann man dieser Gruppen dann in der Zugangsverwaltung ansprechen, z.B. so:
- Man sieht, dass die Gruppe
p_dw_redaktion
im Bereichlehrer
und seinen Unterbereichen Bearbeitungsrechte einschließlich des Hochladens von Dateien hat. - Die Gruppe
lehrer-schule
hat im Bereichlehrer
nur Leserechte.
Auf diese Weise kann man die Zugangsberechtigungen für verschiedene Bereiche des Wikis sehr genau zuweisen. Das Anlegen der Gruppen in der Schulkonsole geht zügig und muss in der Regel ja nur einmal pro Schuljahr durchgeführt werden.
Fazit
Das beschrieben Setup läuft bei uns seit einigen Wochen stabil und zuverlässig. Möglicherweise hilft diese Dokumentation dem ein oder anderen, ein ähnliches Szenario ebenfalls umzusetzen.
Kannst du etwas über die Kosten der Musterlösung sagen?
Bzw, es fehlt noch ein Screenshot.
Die paedML kostet für Schulen in Baden-Württemberg nichts, lediglich ca. 30 EUR für den Datenträger der Installation werden fällig. Zusätzlich kann man für 100 – 150 EUR im Jahr Telefonsupport buchen. Beides weiß ich nicht genau, da ich mit der Abrechnung nichts zu tun habe.
Den Screenshot habe ich gerade ergänzt, danke für den Hinweis.
Herzlichen Dank für das Teilen der Erfahrungen!
Ließe sich auch LDAPS einstellen? Unser Moodle läuft mittlerweile mit LDAPS und das Doku-WIKI unter HTTPS.
Liebe Grüße aus Rottenburg
Joachim Wirth
Ich denke ja, allerdings bin ich da aktuell nicht mehr genau informiert, weil wir seither auch eine andere paedML haben. Auch bei uns läuft alles über HTTPS, aber ob die paedML LDAPS unterstützt, kann ich leider nicht sagen.
Bei Moodle geht es bei uns zumindest formal, damit meine ich, dass ldaps in den Einstellungen eingetragen ist, allerdings haben wir kein Zertifikat für den Schulserver und auch die Firma die uns supportet war sich nicht sicher, ob die Übermittlung der Login-Daten wirklich verschlüsselt ist, oder das Ganze nur ein Pseudo-LDAPS ist. In den Sommerferien probiere ich es mal mit dem Wiki aus.