Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:nextcloud:nextcloud-ldap]] 

Nextcloud mit LDAP oder LDAPS

Doku direkt bei nextcloud → https://docs.nextcloud.com/server/12/admin_manual/configuration_user/user_auth_ldap.html

Szenario: Die NextCloud (Version 12.04, Jan'2018) befindet sich auf einem Ubuntu-Server im grünen Netz und ist mit ihrer IP (hier 10.16.1.9) in den Workstations aufgenommen.

Zuerst an der Weboberfläche als NextCloud-Administrator anmelden und das LDAP-Modul aktivieren:
→ Apps → deaktivierte Apps → LDAP user and group backend → aktivieren

LDAP einrichten

Am linuxmuster.net-Server muss der anonyme LDAP-Zugriff von der IP des vorliegenden Ubuntu-Servers (hier z.B. 10.16.1.9) zugelassen werden. Am linuxmuster.net-Server in der Datei /etc/ldap/slapd.conf eine Zeile mit der IP des NextCloud-Servers ergänzen:

...
#Limits Access:
access to ..........
    
       by anonymous peername.ip=10.16.1.9 auth
...

Dann am linuxmuster.net-Server den ldap-Dienst neu starten:

# service slapd restart

Im Web-Browser als NextCloud-Administrator das LDAP-Modul aufrufen unter:
→ Verwaltung → LDAP / AD Integration

Die ersten vier Konfigurations-Reiter mit dem Button „Fortsetzen“ bis zum Reiter „Gruppen“ durcharbeiten, beginnend mit den Einstellungen zum „1. Server“ :

  • Host: server
  • Port: 389
  • Benutzer-DN und Passwort leer lassen
  • Basis DN: dc=linuxmuster-net,dc=lokal (ggf. den eigenen Werten anpassen)
  • Benutzer → Objektklasse: posixAccount (ergibt den Filter: „(|(objectclass=posixAccount))“ )
  • Gruppen → Objektklasse: posixGroup (ergibt den Filter: „(&(|(objectclass=posixGroup)))“ )

Abmelden und als ein Lehrer oder ein Schüler an der NextCloud anmelden.

Falls eine Konfiguration nicht funktioniert und editiert werden muss, empfiehlt es sich diese komplett zu löschen und neu anzulegen. Die Konfigurationsoberfläche von Nextcloud hat manchmal Probleme Änderungen korrekt zu übernehmen.

LDAPS einrichten

Zunächst das Server-Zertifikat in den Nextcloud-Server kopieren. Trotz abschaltbarer Zertifikatsprüfung war das notwendig.
Dazu am Ubuntu-Server, der die NextCloud enthält, an der Konsole als root anmelden und das Zertifikat kopieren:

# scp 10.16.1.1:/etc/ssl/private/server.crt /etc/ssl/certs/server.crt

Im Web-Browser als NextCloud-Administrator das LDAP-Modul aufrufen unter:
→ Verwaltung → LDAP / AD Integration

Ggf. eine alte Konfiguration löschen und eine neue anlegen. Die Konfigurations-Reiter mit dem Button „Fortsetzen“ bis zum Reiter „Gruppen“ durcharbeiten, ebenso den Reiter „Fortgeschritten“.

Den Reiter „Fortgeschritten“ dabei zuerst abarbeiten und alle anderen Reiter durchklicken!
  • Fortgeschritten:
    • Konfiguration aktiv
    • Schalte die SSL-Zertifikatsprüfung aus
  • Host: ldaps://server
  • Port: 636
  • Benutzer-DN und Passwort leer lassen
  • Basis DN: dc=linuxmuster-net,dc=lokal
  • Benutzer → Objektklasse: posixAccount (ergibt den Filter: „(|(objectclass=posixAccount))“ )
  • Gruppen → Objektklasse: posixGroup (ergibt den Filter: „(&(|(objectclass=posixGroup)))“ )

Ein Eintrag des NextCloud-Server in der slapd.conf am linuxmuster.net-Server ist nicht nötig. In der Datei wird durch die Zeile

„by anonymous ssf=56 auth“

jede Anfrage per LDAPS zugelassen (ssf=Security-Strength-Factor mit Keylänge 56).

Abmelden und als ein Lehrer oder ein Schüler an der NextCloud anmelden.

Nur Lehrer zulassen

Der bisherige LDAP-Dienst von linuxmuster.net unterstützt leider nicht die Option „member-of-overlay“, so dass man eine Gruppenfilterung manuell eingeben muss.

Im Web-Browser als NextCloud-Administrator das LDAP-Modul aufrufen unter:
→ Verwaltung → LDAP / AD Integration und dann die manuelle Eingabe aktivieren:

Nun bei den Anmelde-Attributen den Filter/LDAP-Abfrage bearbeiten wie folgt. Die Gruppe Lehrer hat die gidNumber 10000.

Weiterklicken bis zum Reiter Gruppen. Nun testen, ob sich nur Lehrer anmelden können. Beim Anmelden eines Schülers erscheint die Fehlermeldung: „Falsches Passwort, soll es zurückgesetzt werden?“

Lehrer, Schüler, aber keine Computeraccounts zulassen

Wie im letzten Abschnitt, aber man muss beim Reiter „Benutzer“ die LDAP-Abfrage so anpassen:

(&(objectClass=posixAccount)(!(|(cn=Computer)(cn=ExamAccount))))

Ebenso im Reiter „Anmelde-Attribute“ die LDAP-Abfrage anpassen:

(&(objectClass=posixAccount)(!(|(cn=Computer)(cn=ExamAccount)))(uid=%uid))

was so viel bedeutet wie: ist die Objektklasse ein Posixaccount UND ist die uid=%uid UND ist WEDER der cn=Computer noch der cn=ExamAccount.

Es geht aber noch einfacher. Zumindest bis zur 6.x funktioniert folgender Trick: Alle Administratoren, Computerkonten und Klassenarbeitskonten haben den LDAP-Wert sophomorix-status: P. Daher sollte genauso funktionieren bei „Benutzer“:

(&(objectClass=posixAccount)(!(sophomorixstatus=P)))

und dementsprechend:

(&(objectClass=posixAccount)(!(sophomorixstatus=P))(uid=%uid))

Nur sinnvolle Gruppen anzeigen lassen (whitelist)

Dafür muss man im Reiter „Gruppen“ folgende LDAP-Abfrage einstellen:

(&(objectclass=posixGroup)(|(cn=p_*)(cn=teachers)(cn=5*)(cn=6*)(cn=7*)(cn=8*)(cn=9*)(cn=1*)(cn=k*)))

was so viel bedeutet wie: die Objektklasse ist eine posixGruppe UND der cn beginnt ENTWEDER mit p_* ODER ist gleich „teachers“ ODER mit 5 ODER mit 6 ODER mit 7 ODER mit 8 ODER mit 9 ODER mit 1 ODER mit „k“. Bei uns gibt es eben Klassen mit 5-11 und k1 und k2 als Gruppen.

Es gibt da immernoch Gruppen, die man eventuell nicht drin haben will, wie z.B. „p_wifi“ aber wenn ich den Suchfilter ergänzt habe, die auszunehmen (zusätzliche Blacklist), dann ist mein PHP abgestürzt…

 [[anwenderwiki:nextcloud:nextcloud-ldap]] anwenderwiki/nextcloud/nextcloud-ldap.txt · Zuletzt geändert: 2019/03/03 22:44 von Tobias