Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:owncloud:basics:benutzer_aus_ldap]] 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

anwenderwiki:owncloud:basics:benutzer_aus_ldap [2017/12/08 13:09] – Externe Bearbeitung 127.0.0.1anwenderwiki:owncloud:basics:benutzer_aus_ldap [2017/12/08 13:12] (aktuell) Tobias
Zeile 1: Zeile 1:
 +{{tag> owncloud}}
  
 +====== Benutzerdaten für ownCloud aus LDAP holen ======
 +
 +zur -> [[.:start|Übersicht von OwnCloud]]
 +
 +Diese Vorgehensweise sollte auch für paedML5/openML5 funktionieren. 
 +
 +
 +Seit Version 6 ownCloud ist die LDAP Anbindung erneuert worden:
 +
 +http://www.arthur-schiwon.de/owncloud-6-community-edition-beta-1-ships-collaborative-editing-and-new-wizard-ldap-settings
 +
 +
 +===== Benötigtes Paket installieren =====
 +
 +(Paket ist auf linuxmusternet 6 schon installiert)
 +
 +  aptitude install php5-ldap
 +  
 +  
 +Das installierte Modul von apache nachladen lassen:
 +
 +  service apache2 force-reload
 +
 +Liegt die OwnCloud nicht auf dem Server, muss man noch in der Datei **/etc/ldap/slapd.conf**
 +<code>
 +by anonymous peername.ip=<Owncloud-IP> auth
 +</code>
 +
 +und danach der slapd neu gestartet werden
 +<code>
 +service slapd restart
 +</code>
 +
 +===== Konfiguration im WEB-GUI =====
 +
 +
 +Nach Anmeldung am WebGUI von ownCloud als ownCloud-Administrator (''root'' in dieser Anleitung):
 +
 +==== LDAP Backend aktivieren ====
 +
 +
 +  * Zusätzliche App zur LDAP-Anbindung installieren:
 +    * Auf ''+'' links unten im WebGUI
 +    * ''LDAP user and group backend'' aktvieren.
 +    * Im Menü rechts oben --> Administrator finden sich die Einstellungen für dieses Backend
 +
 +==== Konfiguration des LDAP Backends ====
 +
 +=== Reiter ''Server'' ===
 +
 +Dieser Reiter muss korrekt konfiguriert sein, damit die weiteren Reiter funktionieren.
 +
 +  * Host: IP des Schulservers angeben (IP evtl. anpassen)<code>10.16.1.1</code>
 +  * In die Zeile darunter klicken (Benutzer-DN): Port wird automatisch gesucht  --> ''389''
 +  * Benutzer-DN: bleibt leer, trotzdem reinklicken
 +  * Passwort: bleibt leer, trotzdem reinklicken
 +  * BaseDN wird nicht automatisch detektiert, also manuell eintragen (anpassen): <code>dc=example,dc=com</code> (bekommt man auf dem Server mit "grep BASE /etc/ldap/ldap.conf")
 +  * Klick auf ''Fortsetzen''. Es wird der nächste Reiter ''User Filter'' angezeigt.
 +
 +=== Reiter ''User Filter'' ===
 +
 +Welcher User dürfen sich in ownCloud anmelden?
 +
 +  * nix machen und abwarten (ownCloud kontaktiert den LDAP Server und sucht nach usern)
 +  * Als Objekt-Klasse wird gefunden: inetOrgPerson
 +    * Umstellen auf: ''posixAccount''
 +  * ''Nur von diesen Gruppen'' ist ausgegraut, wenn der Server das ''member-of'' overlay nicht unterstützt (wie bei openml,paedml5/linuxmusternet6). Leider ist es dadurch nicht möglich nur einer Gruppe den Login zu erlauben.
 +  * Es sollten n>0 Benutzer gefunden werden
 +  * Klick auf ''Fortsetzen''. Es wird der nächste Reiter ''Login Filter'' angezeigt.
 +  * Evtl. nochmal ''Zurück'' um zu sehen, ob ''posixAccount'' nun tatsächlich verwendet wird
 +
 +=== Reiter ''Login Filter'' ===
 +
 +Welches Attribut ist als Login zulässig?
 +
 +  * Haken bei LDAP-Benutzername
 +  * Klick auf ''Fortsetzen''. Es wird der nächste Reiter ''Group Filter'' angezeigt.
 +
 +=== Reiter ''Group Filter'' ===
 +
 + Welche Gruppen soll ownCloud kennen?
 +  * Nur diese Objekt-Klassen: ''posixGroup''
 +  * sonst nix ändern
 +
 +=== Reiter ''Advanced'' ===
 +
 +Die meisten Angaben werden automatisch richtig gesetzt
 +
 +  * Bereich ''Verbindungseinstellungen''
 +    * Haken bei ''Konfiguration aktiv''
 +    * ''Speichere Time to live zwischen'' runterdrehen auf z.B. ''5'' (Sekunden)
 +    * sonst alles leer 
 +  * Bereich ''Ordnereinstellungen'' (Mit ''Ordner'' ist der LDAP-''Verzeichnis''-Baum gemeint)
 +    * Assoziation zwischen Gruppe und Benutzer: ''memberUID''. (Damit ist der User in ownCloud in der primären posix gruppe (Klasse)
 +  * Bereich ''Spezielle Eigenschaften''
 +    * nix ändern
 +
 +
 +=== Reiter ''Expert'' ===
 +
 +  * vorerst nix machen
 +  * alles leer
 +  * Nach Klick auf Knopf Testkonfiguration sollte erscheinen: <code>Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!</code>
 +
 +=== Benutzer mit ihrem Loginnamen verwenden statt UUID ===
 +
 +<note>Diese Umstellung kann man nur ohne Probleme machen, solange sich noch kein LDAP-Benutzer angemeldet hat.</note>
 +
 +OwnCloud kann Benutzer aus mehreren LDAP-Server nutzen. Da sich dabei Doppelungen im Benutzernamen ergeben können, wird für jeden ownCloud-Benutzer-Account eine eindeutige UUID erzeugt, die allerdings wenig aussagekräftig ist wie z.B.:
 +
 +<code>c886ef6e-16fe-1033-83aa-8f19b87fd5fc</code> 
 +
 +Die Daten dieses Users würden dann in folgendem Verzeichnis gespeichert:  <code>/home/owncloud/c886ef6e-16fe-1033-83aa-8f19b87fd5fc</code> 
 +
 +Wird nur an einen einzigen LDAP-Server angebunden (der linuxmuster.net Schulserver), kann ownCloud dessen eindeutige Loginnamen (uid) ohne Gefahr von Doppelungen als Identifikation nutzen.
 +
 +Zur Umstelung von UUID auf Loginnamen geht man so vor: 
 +
 +  * ''LDAP user and group backend'', Reiter ''Expert''
 +    * Bisher erzeugte Loginnamen/Gruppennamen entfernen
 +      * Lösche LDAP-Benutzernamenzuordnung     
 +      * Lösche LDAP-Gruppennamenzuordnung 
 +    * Interner Benutzername: ''uid''
 +    * UUID-Attribute für Benutzer: ''uid''
 +    * UUID-Attribute für Gruppen ''gidNumber''
 +    * Klick auf speichern
 +
 +
 +Nach erfolgreicher Konfiguration sieht die Benutzerliste von ownCloud z.B. so aus:
 +
 +
 +{{ .:users-owncloud.png |}}
 +
 +Zur Kontrolle sollte man prüfen:
 +
 +  * Als Benutzername erscheint der Loginname/Benutzername des Schulservers
 +  * Vollständiger Name ist: ''Vorname Nachname''
 +  * Als Gruppen erscheinen ALLE Gruppen, in denen der jeweilige User ist.
 +  * Testweise einen Benutzer anmelden
 +    * Ist er in der richtigen Gruppe ()
 +
 +==== Optimieren des LDAP Backends ====
 +
 +
 +=== LDAP-Abfragen beschleunigen ===
 +
 +Reiter ''Advanced'', Bereich ''Ordnereinstellungen''
 +
 +  * Basis-Benutzerbaum: ''ou=accounts,dc=linuxmuster-net,dc=lokal'' (Das vorangestellte ''ou=accounts,'' beschleunigt die LDAP Suche)
 +  * Basis-Gruppenbaum: ''ou=groups,dc=linuxmuster-net,dc=lokal'' (Das vorangestellte ''ou=groups,'' beschleunigt die LDAP Suche)
 +
 +
 +=== LDAP-Abfrage Cache verlängern  ===
 +
 +Reiter ''Advanced'', Bereich ''Verbindungseinstellungen''
 +   * ''Speichere Time to live zwischen'' wieder hochstellen ''600'' (Sekunden) 
 +
 +
 +=== Umstellen auf ldaps im Reiter ''User Filter'' ===
 +
 +Bei Bedarf kann im Reiter ''User Filter'' auf ldaps umgestellt werden:
 +
 +<code>ldaps://10.16.1.1</code>
 +
 +und der Port entweder selbst suchen lassen oder auf ''636'' umstellen.
 +
 +
 +=== Nochmal von vorne beginnen ===
 +
 +Hat man sich vergeigt, beginnt man so am besten von vorne:
 +
 +  - Alle Verbindungen beenden, User ausloggen
 +  - Bisher erzeugte Loginnamen/Gruppennamen entfernen
 +      * Lösche LDAP-Benutzernamenzuordnung     
 +      * Lösche LDAP-Gruppennamenzuordnung 
 +  - Reiter ''Server'': Delete Konfiguration
 +
 +Nun kann man neu loslegen.
 +
 +==== Anmerkungen =====
 +
 +  * Ist owncloud auf dem linuxmusternet6 Server installiert, so tut auch ldaps vollstängig (Rechner vertraut vollständig sich selbst?)
 +
 +
 +
 +==== Probleme die noch zu lösen sind====
 +
 +  * Es sollten nur Mitglieder des Projekts ''p_owncloud'' sich einloggen können -> filter anlegen bei user, geht aber nicht, da der LDAP von linuxmuster.net das nicht zulässt.
 +  * In der Benutzerauflistung erscheinen NICHT die Gruppe aus dem LDAP Server (sollte aber so sein, um nicht eine weitere Gruppenverwaltung aufzuziehen)
 +  * Über ldaps port 636 geht es nicht
 +  * Konfigurations-Änderungen werden nicht sofort erkannt (Erst wenn die neuen Werte in mysql stehen)
 +
 +
 +
 +===== Hinweise zur gesicherten Verbindung mit SSL =====
 +
 +
 +
 +Damit das klappen kann, muss man jedoch den LDAP-Server so konfigurieren, dass er das Zertifikat des Schulserver nicht prüft, das passiert in der Datei ''/etc/ldap/ldap.conf'':
 +
 +  
 +
 +
 +  root@owncloud:~# cat /etc/ldap/ldap.conf 
 +  #
 +  # LDAP Defaults
 +  #
 +  
 +  # See ldap.conf(5) for details
 +  # This file should be world readable but not world writable.
 +  
 +  #BASE dc=example,dc=com
 +  #URI ldap://ldap.example.com ldap://ldap-master.example.com:666
 +  
 +  #SIZELIMIT 12
 +  #TIMELIMIT 15
 +  #DEREF never
 +  
 +  # TLS certificates (needed for GnuTLS)
 +  # AUSKOMMENTIEREN!
 +  #TLS_CACERT /etc/ssl/certs/ca-certificates.crt
 +  # 
 +  
 +  # REINSCHREIBEN!
 +  PORT            636
 +  TLS_REQCERT     never
 +
 +
 +Prüfen kann man das mit dem folgenden Kommando auf der Kommandozeile:
 +
 +   ldapsearch -x -H ldaps://5.xxx.xxx.99:636 -b "dc=qg-xxxxx,dc=de" "objectClass=*"
 +
 +dabei muss die Nutzerliste des Servers ausgegeben werden. Solange das nicht geht, muss man die OC gar nicht weiter konfigurieren.
 +
 +Es ist unbedingt empfehlenswert, die Verbindung zum LDAP Server zu verschlüsseln, dabei sollten die Einstellungen folgendermaßen aussehen:
 +
 +{{ .:auswahl_012.png |}}
 +===== Wenns nicht tut =====
 +
 +====BASEDN ermitteln====
 +
 +Ermitteln Sie auf dem Schulserver die basedn wie folgt:
 +
 +  # grep basedn /var/lib/linuxmuster/network.settings
 +
 +====Auf dem ownCloud-Server den LDAP Zugriff mit Konsolentools prüfen====
 +
 +  # aptitude install ldap-utils
 +
 +Dann unverschlüsselten Zugriff testen (IP und DN anpassen):
 +
 +  # ldapsearch -x -H ldap://10.16.1.1:389 -b 'dc=linuxmuster-net,dc=lokal'
 +
 +
 +Dann sollte der komplette LDAP-Baum durch die Konsole rauschen.
 +
 +Danach Zugang verschlüsselt OHNE Zertifikat testen:
 +
 +  # LDAPTLS_REQCERT=never ldapsearch -x -H ldaps://10.16.1.1:636 -b 'dc=linuxmuster-net,dc=lokal'
 +  
 +<note>Denselben Effekt wie das vorangestellte ''LDAPTLS_REQCERT=never'' hat der Eintrag von ''TLS_REQCERT never'' inder Datei   ''/etc/ldap/ldap.conf''</note>
 +  
 +Und schließlich verschlüsselter Zugang MIT Zertifikat testen:
 +
 +  # ldapsearch -x -H ldaps://10.16.1.1:636 -b 'dc=linuxmuster-net,dc=lokal'
 +
 +====== Technische Anmerkungen ======
 +
 +===== LDAP Suchfilter =====
 +
 +In den Reitern ''User Filter'', ''Login Filter'' und ''Group Filter'' können auch ganz spezielle Filter angegeben werden.
 +
 +
 +Beispiel eines ''User Filter'':
 +
 +  (&(objectclass=posixAccount) (|(uid=foxal) (uid=beckje) (uid=gal)))
 +
 +Dieser Filter beschränkt den Zugriff auf ownCloud auf die 3 User ''foxal'' ''beckje'' und ''gal''.
 +
 +
 +
 +===== Speicherung der LDAP Anbindung =====
 +
 +Die LDAP-Anbindungsdaten werden in der mysql-Datenbank gespeichert:
 +
 +Sie können abgerufen werden mit:
 +
 +  use owncloud;
 +  mysql> select * from oc_appconfig where appid='user_ldap';
 +
 +oder gedumped werden mit (muster mit Passwort für ''root'' ersetzen):
 +
 +  mysqldump --extended-insert=0 -u root -pmuster owncloud --tables oc_appconfig --where="appid='user_ldap'"
 +
 +Wiedereingespielt werden kann der Dump mit dem Befehl (ungetestet):
 +
 +  mysql -u root -pserver owncloud < working_config
 +
 +
 +Log der Datenbankänderungen:
 +
 +[[.:mysql-ldap-log|Datenbankänderungen]]
 [[anwenderwiki:owncloud:basics:benutzer_aus_ldap]]