Inhaltsverzeichnis

Benutzerdaten für ownCloud aus LDAP holen

zur → Ü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

by anonymous peername.ip=<Owncloud-IP> auth

und danach der slapd neu gestartet werden

service slapd restart

Konfiguration im WEB-GUI

Nach Anmeldung am WebGUI von ownCloud als ownCloud-Administrator (root in dieser Anleitung):

LDAP Backend aktivieren

Konfiguration des LDAP Backends

Reiter ''Server''

Dieser Reiter muss korrekt konfiguriert sein, damit die weiteren Reiter funktionieren.

Reiter ''User Filter''

Welcher User dürfen sich in ownCloud anmelden?

Reiter ''Login Filter''

Welches Attribut ist als Login zulässig?

Reiter ''Group Filter''

Welche Gruppen soll ownCloud kennen?

Reiter ''Advanced''

Die meisten Angaben werden automatisch richtig gesetzt

Reiter ''Expert''

Benutzer mit ihrem Loginnamen verwenden statt UUID

Diese Umstellung kann man nur ohne Probleme machen, solange sich noch kein LDAP-Benutzer angemeldet hat.

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

c886ef6e-16fe-1033-83aa-8f19b87fd5fc

Die Daten dieses Users würden dann in folgendem Verzeichnis gespeichert:

/home/owncloud/c886ef6e-16fe-1033-83aa-8f19b87fd5fc

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:

Nach erfolgreicher Konfiguration sieht die Benutzerliste von ownCloud z.B. so aus:

Zur Kontrolle sollte man prüfen:

Optimieren des LDAP Backends

LDAP-Abfragen beschleunigen

Reiter Advanced, Bereich Ordnereinstellungen

LDAP-Abfrage Cache verlängern

Reiter Advanced, Bereich Verbindungseinstellungen

Umstellen auf ldaps im Reiter ''User Filter''

Bei Bedarf kann im Reiter User Filter auf ldaps umgestellt werden:

ldaps://10.16.1.1

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:

  1. Alle Verbindungen beenden, User ausloggen
  2. Bisher erzeugte Loginnamen/Gruppennamen entfernen
    • Lösche LDAP-Benutzernamenzuordnung
    • Lösche LDAP-Gruppennamenzuordnung
  3. Reiter Server: Delete Konfiguration

Nun kann man neu loslegen.

Anmerkungen

Probleme die noch zu lösen sind

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:

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'
Denselben Effekt wie das vorangestellte LDAPTLS_REQCERT=never hat der Eintrag von TLS_REQCERT never inder Datei /etc/ldap/ldap.conf

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:

Datenbankänderungen