Um NextCloud erfolgreich an PaedML anzuschließen und den LDAP-Server für Authentifizierung zu nutzen, müssen folgende Einstellungen vorgenommen werden.
Diese Konfiguration verwendet zwei unterschiedliche LDAP-Konfigurationen, da sich die Schule momentan mit einer anderen Schule aus dem gleichen Schulverbund einen Server teilt. Um also vorzubeugen, dass alle Schüler alle anderen Schüler auf dem LDAP-Server "sehen", wurden die LDAP-Abfragen etwas eingeschränkt. Andere Schülen müssen wahrscheinlich weniger restriktiv an die Sache rangehen.
Ich weiß leider nicht, ob unsere Servereinstellungen generell so angelegt sind oder ob sie speziell so von unserem Dienstleister angelegt wurden, ich habe das System geerbt.
Nachdem NextCloud im Idealfall auf einer eigenen VM installiert wurde, müssen nun die Verbindungen hergestellt werden. Dazu muss zunächst die LDAP/AD-Integration als Plugin aktiviert werden.
Server mit IP eintragen (bei uns 10.1.0.1:7389
)
Der LDAP-Nutzer: uid=NUTZERNAME_EINSETZEN,cn=users,dc=paedml-linux,dc=lokal
mit Passwort
Dann Die Base-DN eintragen. Da diese Base nur für Lehrer ist, setze ich entsprechend eng:
cn=lehrer,cn=users,ou=schule,dc=paedml-linux,dc=lokal
Unsere Abfrage hat folgenden Filter:
(&(objectclass=ucsschoolTeacher)(!(uid=k-*)))
Normalerweise kann man wohl diese Einstellung freilassen und alle Nutzer finden lassen. Da wir aber noch andere Lehrer im System haben, die keinen Zugriff benötigen, schließen wir diese über die uid aus, die mit "k-" beginnen. Es bleiben nur noch unsere Nutzer übrig.
Abfrage sieht so aus, ich erinnere mich nicht, warum ich dc ebenfalls gesetzt habe...
(&(|(objectclass=posixAccount))(|(uid=%uid)(|(dc=%uid))))
Es wird keine Objektklasse gewählt, dafür nur die Gruppe lehrer-schule
Filter sieht dann so aus: (|(cn=lehrer-schule))
Unter Fortgeschritten wird folgendes eingestellt:
Anzeigename: displayname
Basis-Benutzerbaum: cn=lehrer,cn=users,ou=schule,dc=paedml-linux,dc=lokal
Benutzersucheigenschaften: uid, cn, sn
auf jeweils eigener Zeile
Anzeigename Gruppe: cn
Basis: Gruppenbaum: cn=groups,ou=schule,dc=paedml-linux,dc=lokal
Gruppensucheigenschaften: cn
Assoziation zwischen Benutzer und Gruppe ist: memberUid
! Wichtig, sonst klappt die Gruppenzuordnung nicht bei den Nutzern
Bei speziellen Eigenschaften ist das eMail-Feld als mail
deklariert.
Soviel zu den Lehrern.
Basis-DN: cn=schueler,cn=users,ou=schule,dc=paedml-linux,dc=lokal
LDAP-Filter: (&(objectclass=ucsschoolStudent)(!(uid=*-*)))
Hier werden ebenfalls Schüler herausgefiltert, die einen Bindestrich im Anmeldenamen haben. Braucht sicher nicht jeder.
(&(objectClass=sambaGroupMapping)(cn=*))
Die Objektklasse kann aber m.E. auch weggelassen werden
Basis-Benutzerbaum: cn=schueler,cn=users,ou=schule,dc=paedml-linux,dc=lokal
Basis-Gruppenbaum: cn=klassen,cn=schueler,cn=groups,ou=schule,dc=paedml-linux,dc=lokal
In den Einstellungen zu Teilen in Nextcloud sollte nun noch eingeschränkt werden, dass Nutzer nur Mitglieder der gleichen Gruppe finden. Lehrer finden Lehrer und Schüler, Schüler nur Mitschüler und Fachlehrer.