Anbindung eines DokuWikis via LDAP an die paedML Linux 6

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:

zugangsverwaltung-dokuwiki

  • Man sieht, dass die Gruppe p_dw_redaktion im Bereich lehrer und seinen Unterbereichen Bearbeitungsrechte einschließlich des Hochladens von Dateien hat.
  • Die Gruppe lehrer-schule hat im Bereich lehrer 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.

3 Gedanken zu „Anbindung eines DokuWikis via LDAP an die paedML Linux 6

    1. 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.