Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:nextcloud:nextcloud-ldap]] 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
anwenderwiki:nextcloud:nextcloud-ldap [2018/02/07 18:22] – [Nur Lehrer zulassen] martin.resanwenderwiki:nextcloud:nextcloud-ldap [2019/03/03 23:44] (aktuell) – [Lehrer, Schüler, aber keine Computeraccounts zulassen] Tobias
Zeile 1: Zeile 1:
 +{{tag> nextcloud ldap ldaps}}
 +
 +====== 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: 
 +<code>
 +...
 +#Limits Access:
 +access to ..........
 +    
 +       by anonymous peername.ip=10.16.1.9 auth
 +...
 +</code>
 +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.
 +
 +<note>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.</note>
 +===== 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".
 +<note>Den Reiter "Fortgeschritten" dabei zuerst abarbeiten und alle anderen Reiter durchklicken!</note>
 +  * 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:
 +
 +{{ :anwenderwiki:nextcloud:ldap-manuell.jpg?500 |}}
 +
 +Nun bei den Anmelde-Attributen den Filter/LDAP-Abfrage bearbeiten wie folgt. Die Gruppe Lehrer hat die gidNumber 10000.
 +
 +{{ :anwenderwiki:nextcloud:ldap-gidnumber.jpg?500 |}}
 +
 +
 +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:
 +<code>
 +(&(objectClass=posixAccount)(!(|(cn=Computer)(cn=ExamAccount))))
 +</code>
 +Ebenso im Reiter "Anmelde-Attribute" die LDAP-Abfrage anpassen:
 +<code>
 +(&(objectClass=posixAccount)(!(|(cn=Computer)(cn=ExamAccount)))(uid=%uid))
 +</code>
 +
 +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":
 +<code>
 +(&(objectClass=posixAccount)(!(sophomorixstatus=P)))
 +</code>
 +und dementsprechend:
 +<code>
 +(&(objectClass=posixAccount)(!(sophomorixstatus=P))(uid=%uid))
 +</code>
 +
 +
 +==== Nur sinnvolle Gruppen anzeigen lassen (whitelist) ====
 +Dafür muss man im Reiter "Gruppen" folgende LDAP-Abfrage einstellen:
 +<code>
 +(&(objectclass=posixGroup)(|(cn=p_*)(cn=teachers)(cn=5*)(cn=6*)(cn=7*)(cn=8*)(cn=9*)(cn=1*)(cn=k*)))
 +</code>
 +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 23:44 von Tobias