Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:owncloud:basics:benutzer_aus_ldap]] 

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

  • 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)
    10.16.1.1
  • 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):
    dc=example,dc=com

    (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:
    Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!

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:

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

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:

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

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

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

 [[anwenderwiki:owncloud:basics:benutzer_aus_ldap]] anwenderwiki/owncloud/basics/benutzer_aus_ldap.txt · Zuletzt geändert: 2017/12/08 13:12 von Tobias