Nextcloud manuell in UCS integrieren (2024)

Die Nextcloud-App aus dem Univention App Center, ist eine sehr gute Möglichkeit, innerhalb kürzester Zeit eine funktionierende Integration der beliebten „File Sync and Share“-Lösung in das Managementsystem des Univention Corporate Server betriebsfertig zu machen. Mit ihr können die Dienste des Nextcloud-Hub einer überschaubaren Anzahl von Nutzer und Nutzerinnen zur Verfügung gestellt werden, die Docker-basierte Integration aus dem App Center hat allerdings architekturbedingt einige Nachteile.

Ein erster Punkt ist die Limitierung bei der Nutzung von lokalem Festplattenspeicher: Die Docker-Instanz hat nur Zugriff auf die seitens der Integration vorgesehenen Overlay-Mounts der Wirts-Maschine und kann nicht ohne Weiteres zusätzliche lokale Festplatten nutzen. Bei der Einbindung von NFS- oder S3-basiertem Netzwerkspeicher gibt es ähnliche Herausforderungen. Mit einer gesteigerten Nutzung der Nextcloud-Dienste wäre es weiterhin überlegenswert, horizontal auf mehrere gleichberechtigte Nextcloud-Instanzen skalieren zu können. Dies würde jedoch erhebliche nachträgliche Änderungen am System-Setup erforderlich machen. Auch eine Herauslösung der Datenbank, die bei der App-Center-Integration auf PostgreSQL setzt, oder eine Nutzung eines hochverfügbaren Datenbankclusters z.B. auf der Basis von Galera, wird bei der Docker basierten Integration nicht von Haus aus unterstützt.

Die Installation einer nativen Nextcloud-Instanz auf UCS ist aufgrund der der Abhängigkeit von Nextcloud zu sehr neuen PHP-Versionen nicht gerade leicht und aus Gründen der zu befürchtenden höheren Betriebsaufwände wenig empfehlenswert.

Inhaltsverzeichnis

Hochskalierbar und mit zentralem Identitätsmanagement – Ihre Nextcloud Instanz auf UCS

Wie Sie den Betrieb einer hochskalierbaren Nextcloud-Plattform zusammen mit dem durch UCS bereitgestellten Identitätsmanagmentsystem durch eine manuelle Integration vornehmen, möchte ich Ihnen im Folgenden beschreiben. Dabei ist es unerheblich, auf welcher Plattform Nextcloud installiert ist und welches Datenbankbackend und welcher Webserver verwendet werden.

Zunächst noch eine App… „LDAP user and group backend“

Als Erstes sollten Sie Nextcloud so konfigurieren, dass die in UCS definierten Nutzer und Gruppen auch in Nextcloud zur Verfügung stehen. Da der UCS diese Informationen in einem Verzeichnis auf der Basis von OpenLDAP speichert, liegt es nahe, dafür die „LDAP application“ zu verwenden. Diese Methode wird grundsätzlich auch von der Nextcloud-Integration aus dem Univention App Ccenter verwendet, aus Gründen der Automatierung der Konfiguration allerdings über das „occ“-Kommandozeilenwerkzeug. Falls noch nicht vorhanden, sollten Sie daher zunächst die Nextcloud App „LDAP user and group backend“ installieren und aktivieren.

In der oben genannten Dokumentation finden Sie einige elementare Konfigurationsoptionen für die LDAP-Verbindung. Zunächst wird der DNS-Name oder die IP-Adresse des LDAP-Servers benötigt. Hier ist man vielleicht versucht, den ersten Domaincontroller einer UCS-Domäne („DC Master“ oder „Primary Directory Node“) einzutragen. Das wird sicherlich funktionieren, ist aber zumindest dann eher fragwürdig, wenn ein sehr großer Nutzerkreis (mehrere tausend) den Dienst nutzen sollen. Zwar versucht Nextcloud, einmal erhaltene LDAP-Informationen zwischenzuspeichern, wird aber auf einem gut ausgelasteten Nextcloud-Server ausreichend Anfragen erzeugen, um bereits eine ziemliche Grundlast des LDAP-Servers zu bewirken. Es bietet sich daher an, hier einen anderen existierenden Domaincontroller auszuwählen.

Integration – aber bitte sicher mit TLS-Ports und Zertifikat

Ein weiterer Punkt bei der Konfiguration ist die Auswahl des Zielports auf dem LDAP-Server sowie in direktem Zusammenhang damit die TLS-gesicherte Übertragung der Nutzerinformationen aus dem Verzeichnis. Auch hier ist der LDAP-Standardport 389, den auch Nextcloud zunächst benutzen will, nicht die beste Wahl. Dieser Port wird nur auf Systemen, in denen kein „Active Directory-kompatibler Domain Controller “ läuft, von OpenLDAP bedient. In einer solchen Konstellation würden die Selbsterkennungsmechanismen von Nextcloud vermutlich einen Windows-Server detektieren. Auch das kann funktionieren, schränkt aber die später erwähnten Konfigurationsoptionen etwas ein.

Besser geeignet ist der alternative Port 7389, der auf jedem Domänencontroller immer durch OpenLDAP benutzt wird. Nun sind die Ports 389 und 7389 aber die Ports, auf denen „Klartext“ gesprochen wird. Eine Absicherung gibt es dort nur optional über „StartTLS“. Dabei wird die Verbindungssicherheit erst nach dem initialen Aufbau einer Klartextverbindung in Betrieb gesetzt. Dies mag ausreichend erscheinen, bietet aber keine Transparenz, ob die Verbindung TLS-gesichert ist oder nicht. Auf der im Sinne des Wortes sicheren Seite ist nur, wer explizit die TLS-Ports verwendet. Im Falle des LDAP wäre das Port 636 und – unter UCS – 7636. Daher sollten Sie im Feld Server etwa „ldaps://directorynode.example.com“ und im Feld Port „7636“ eintragen.

Damit das aber funktioniert, muss der LDAP-Konfiguration des Nextcloud-Servers noch das Zertifikat des UCS vertraut gemacht werden. UCS-Systeme erledigen das automatisch während des Domain-Joins. Dort, genauer in der Datei /etc/ldap/ldap.conf, können Sie sehen, dass in der Konfiguration „TLS_CACERT“ der Pfad zu einem Zertifikat abgelegt ist. Dieses Zertifikat ist das der UCS-Root CA und unter anderem in der Univention Management Console verlinkt. Im einfachsten Fall könne Sie sich das Zertifikat mit wget https://primarydirectorynode.example.com/ucs-root-ca.crt holen und z.B. unter /etc/ssl/certs speichern. Nach einer Anpassung der oben genannten Konfiguration in der ldap.conf sollten die Chancen sehr gut stehen, dass eine LDAP-Verbindung klappt.

Nutzer und Nutzerinnen anbinden – die LDAP-Anbindung macht es möglich

Damit eine Anwendung Nutzer identifizieren kann, wird zunächst in den meisten Fällen initial eine LDAP-Verbindung aufgebaut. Mittlerweile ist es aus Sicherheitsgründen eher unüblich, ein LDAP-Verzeichnis für anonyme Leser zugänglich zu machen. Das ist auch unter UCS der Fall. Applikationen, die an dieser Stelle auf einem sogenannten „anonymous bind“ beharren, könnte man unter Angabe der Quell-IP-Adresse mit der UCR-Variablen „ldap/acl/read/ips“ freischalten. Details dazu finden Sie im UCS-Handbuch unter https://docs.software-univention.de/handbuch.html#domain-ldap:acls. Für Nextcloud ist dies allerdings nicht nötig. Hier können Sie ein „Bind-DN“, das ist ein Konto, welches das LDAP-Verzeichnis durchsuchen kann, angeben.

Wenn man im Internet nach Beispielkonfigurationen für LDAP mit Nextcloud sucht, findet man zuweilen an dieser Stelle ein „uid=admin,…“ vor. Das ist eher zweifelhaft, da man davon ausgehen muss, dass irgendwo in der Konfiguration das Kennwort eines vermutlich sehr hoch privilegierten Nutzerkontos im Klartext vorliegt und im Falle einer ungesicherten Verbindung regelmäßig durchs Netz geschickt wird. Die aktuelle „LDAP application“ von Nextcloud benötigt keinerlei Schreibrechte im LDAP-Verzeichnis selbst. Man tut somit gut daran, ein separates, niedrig privilegiertes Dienstkonto zu verwenden. Dessen Einrichtung unter UCS ist in https://help.univention.com/t/cool-solution-ldap-search-user-simple-authentication-account/11818 detailliert beschrieben. Dort erfahren Sie auch, wie Sie das Konto und das mit hoffentlich ausreichender Entropie versehene Kennwort vorab testen können. Damit wissen Sie dann auch, wie der in das Feld „User DN“ einzutragende „Distinguished Name“ des Dienstkontos (z.B. uid=ldapsearch-nextcloud,cn=users,dc=example,dc=com) sowie die LDAP-Basis für das Feld „Base DN“ (z.B. dc=example,dc=com) lautet.

Die Qual der (Aus-)Wahl – Erweiterte Attribute machen vieles möglich

Der nächste Schritt der Konfiguration ist die Angabe eines passenden (LDAP-)Filters zur Auswahl der Nutzerkonten, die Nextcloud verwenden dürfen. Die Nextcloud-App aus dem Univention Appcenter verwendet eine Erweiterung des LDAP-Verzeichnisses, um zusätzliche Informationen wie z.B. die Berechtigung zur Nutzung und Quota-Informationen ablegen und nutzen zu können. Unter Beachtung der Lizenzbedingungen und mit den Hinweisen aus https://docs.software-univention.de/developer-reference-4.4.html#settings:ldapschema könnte man durchaus die Schemaerweiterung aus https://github.com/nextcloud/univention-app/blob/master/nextcloud.schema manuell konfigurieren. Damit diese Erweiterung auch in der Management-Console oder auf der Kommandozeile zugänglich werden, müssen Sie noch „erweiterte Attribute“ definieren. Der letztgenannte Link zeigt Ihnen zudem die Möglichkeit, ohne eine Erweiterung des LDAP-Schemas auszukommen: die Objektklasse „univentionFreeAttributes„.

Wenn Ihnen das zu komplex ist oder die Anforderungen an einen granularen Filter einfach nicht bestehen, kann auch einen LDAP-Filter auf der Basis von existierenden Attributen und Zuordnungen modellieren. Als erstes Kriterium dienen oft Objektklassen, angefangen mit „inetOrgperson„. Bei Einsatz von UCS@School Version 4.x könnte man den Personenkreis mit den Objektklassen „ucsschoolStudent“, „ucsschoolTeacher“ und „ucsschoolStaff“ weiter einschränken. Eine weitere gebräuchliche Selektionsmethode ist die Verwendung von Gruppenmitgliedschaften. Die Nextcloud-Dokumentation erwähnt, dass dazu das „member-of-overlay“ im LDAP-Server aktiviert sein muss. Dies ist unter UCS für alle Installationen seit Version 4.3.0 der Fall. Damit wäre der im Nextcloud-Handbuch angegebene LDAP-Filter „(&(objectClass=inetOrgPerson)(memberOf=cn=nextcloudusers,ou=groups,dc=example,dc=com))“ fast geeignet. Unter UCS liegen die Standardgruppen allerdings in „cn=groups“.

Bei der Suche nach einem passenden LDAP-Filter ist die Schaltfläche „Einstellungen überprüfen und Benutzer zählen“ sehr hilfreich. Bei einer nachträglichen Justage des Filters empfiehlt es sich, wie auch bei der Ersteinrichtung einen lokalen Nextcloud-Nutzer, also kein über LDAP definiertes Administrationskonto zu verwenden. Da alle Änderungen sofort gespeichert werden, könnte man sich ansonsten bei einem Konfigurationsfehler sehr leicht aussperren.

Feintuning – Von Mailadressen bis hin zur Definition von Gruppenrechten

Unter dem Tab „Anmeldeattribute“ bietet es sich an, dass Sie neben dem vorgewählten „LDAP/AD-Benutzername“ auch eine Anmeldung über die „LDAP/AD E-Mail-Adresse“ zulassen. Dies bewirkt eine Änderung des LDAP-Filters mit der neben dem Attribut „mailPrimaryAddress“, welches bei einer Mailintegration unter UCS die Haupt-SMTP-Adresse des Kontos vorhält, auch eine optional unter den Kontaktinformationen definierbare beliebige Mailadresse zur Anmeldung an Nextcloud verwendet werden kann. Aus Sicht der Nutzer kann dies unter Umständen verständlicher sein als ein „Benutzername“.

Ein Abgleich der Gruppen mit dem zentralen LDAP-Verzeichnis kann hilfreich sein, um die Administration von Rechten auf Nextcloud-Apps oder Freigaben zu vereinfachen. Wie auch beim Filter für Benutzer kommt es lediglich darauf an, passende Objektklassen und optional bestimmte Gruppen zur Synchronisation auszuwählen.

Und nun noch den LDAP-Benutzernamen eintragen…

Mit den bislang durchgeführten Konfigurationsschritte sollten Sie bereits erfolgreich eine funktionierenden LDAP-Anbindung eingerichtet haben. Diese hat allerdings je nach Blickwinkel einen kleinen Schönheitsfehler, den man eventuell gleich am Anfang korrigieren will, aber nicht zwangsläufig muss. In den Experteneinstellungen der LDAP-Konfiguration finden Sie den Hinweis, dass Nextcloud standardmäßig das „UUID“-Attribut als internen Benutzernamen verwendet. OpenLDAP benutzt das Attribut entryUUID zur Definition eines universell eindeutigen Indifikators. Die Eindeutigkeit macht es allerdings etwas schwerer, einem Eintrag wie „597ae2f6-16a6-1027-98f4-d28b5365dc14“ auf den ersten Blick ein LDAP-Konto zuzuordnen.

Alternativ kann man „uid“, also den LDAP-Benutzernamen als internen Namen in Nextcloud angeben, muss sich dann allerdings überlegen, wie generell mit Namensänderungen umgegangen wird.

Backup-Host für Redundanz und Hochverfügbarkeit

Eine hinsichtlich der Verfügbarkeit redundant aufgebaute UCS-Umgebung wird immer mehrere Domain Controller (Directory Nodes) mit einer kompletten Kopie des LDAP-Datenbestands bereitstellen. Damit ist es natürlich auch möglich, LDAP-basierte Dienste hochverfügbar anzubinden. Auch Nextcloud kennt eine solche Möglichkeit. Ein unter dem Tab „Fortgeschritten“ eingetragener Backup-Host benutzt die beim Hauptserver eingetragene Konfiguration und kann im Fehlerfall dessen Aufgabe übernehmen. Im Admin Manual von Nextcloudfinden Sie Hinweise zur Funktionsweise. Erwähnenswert ist, dass mit Nextcloud-Bordmitteln keine echte Lastverteilung der LDAP-Verbindungen erreicht werden kann. Hierzu ist bei Bedarf auf einen passenden Loadbalancer zurückzugreifen.

Für einen erfolgreichen langfristigen Betrieb von Nextcloud mit einem zentralen LDAP sollten Sie sich auf jeden Fall auch damit beschäftigen, was mit Konten in Nextcloud passiert, wenn deren Pendant im LDAP gelöscht wird. Im Admin Manual von Nextcloudfinden sich Hinweise, wie mit Überbleibseln (Remnants) verfahren werden kann.

Ich hoffe, dass Ihnen diese detaillierte Anleitung für die manuelle Integration des Nextcloud-Hub auf UCS und die Integration in dessen Identitätsmanagement hilft, um Ihren Nutzer und Nutzerinnen einen komfortablen Zugriff auf Nextcloud mit ihren gewohnten Credentials zu geben.

Wenn Sie Fragen dazu haben oder gute Tipps oder eigene Erfahrungen beisteuern möchten, können Sie dies gerne über die Kommentarfunktion des Blogs tun.

Nextcloud manuell in UCS integrieren (2024)

FAQs

How to setup nextcloud docker windows? ›

How to Install Nextcloud on Docker | Step-by-Step Setup Tutorial
  1. Step 1 - SSH into the server.
  2. Step 2 - Verify Docker and Docker Compose installation.
  3. Step 3: Update system packages.
  4. Step 4 - Update server hostname.
  5. Step 5 - Create a local user with sudo and Docker access.
  6. Step 6 - Enable firewall and reboot the server.
Nov 13, 2023

How to set up Nextcloud Linux? ›

Here a quick how-to:
  1. Get the file from the installation page.
  2. Upload setup-nextcloud.php to your web space.
  3. Point your web browser to setup-nextcloud.php on your webspace.
  4. Follow the instructions and configure Nextcloud.
  5. Login to your newly created Nextcloud instance!

Where is Nextcloud on Ubuntu server? ›

NextCloud files are all stored in the /snap/nextcloud/current/htdocs/ directory, and the configuration file in the /var/snap/nextcloud/current directory. To enable NextCloud access on your domain name, include it in the trusted domains array of the configuration file.

Can Nextcloud be installed on Windows? ›

Setting up a Nextcloud All-in-One on Windows (or AIO) is a simple, effective way to achieve a full-blown Nextcloud installation with many features working out-of-the-box. It provides you easy deployment and maintenance of these features while allowing you to keep your data under your control.

How do I install Nextcloud client on Windows? ›

  1. Client download. Download windows client at https://nextcloud.com/install/#. ...
  2. Client installation. Double click on the saved file in your download folder. ...
  3. Connect client and account. a) The program opens automatically. ...
  4. Client program configuration.

Which OS is best for Nextcloud? ›

We strongly recommend using the latest version of your operating system to get the full and most stable experience out of our clients.
  • Windows 10+
  • macOS Lion (10.14)+ (64-bits only)
  • Linux (64-bits only) Should run on any distribution newer than Ubuntu 18.04 with our official AppImage package.

Can you run Nextcloud locally? ›

It is possible due to several reasons that you do not want or cannot open Nextcloud to the public internet. However AIO requires a valid certificate to work correctly. Below is discussed how you can achieve both: Having a valid certificate for Nextcloud and only using it locally.

How do I setup Nextcloud remotely? ›

Run the TUI ( nextcloud-config ) or use the WebUI.
  1. Navigate to no-ip in the TUI or the WebUI.
  2. Change ACTIVE to yes .
  3. Change USER with your user name.
  4. Change PASS with your password.
  5. Change DOMAIN with your (sub)Domain Name.
  6. Change TIME with the interval time you want to update the DNS record. ...
  7. Click Run or Start.

How do I access Nextcloud files on Windows? ›

Mapping drives with Windows Explorer
  1. Open Windows Explorer on your MS Windows computer.
  2. Right-click on Computer entry and select Map network drive… from the drop-down menu.
  3. Choose a local network drive to which you want to map Nextcloud.

Where does Nextcloud store files locally? ›

I tried looking for the files, I can't find it. They are stored in Nextcloud's data directory. Where that directory is located depends on how you installed Nextcloud. On a manual installation, it will be in Nextcloud's installation directory, unless you have chosen a different location while setting up your Nextcloud.

How do I access my Nextcloud? ›

You can connect to your Nextcloud server using any Web browser. Just point it to your Nextcloud server URL (e.g. cloud.example.com) and enter your username and password.

How to set up docker container on Windows? ›

Step-By-Step Docker Installation on Windows
  1. Go to the website https://docs.docker.com/docker-for-windows/install/ and download the docker file. ...
  2. Then, double-click on the Docker Desktop Installer.exe to run the installer.
Jun 11, 2024

How to deploy Nextcloud on docker? ›

How to Install Nextcloud AIO on Docker | Step-by-Step
  1. Step 1 - Start the Nextcloud container.
  2. Step 2 - Access the Nextcloud AIO setup interface.
  3. Step 3 - Login to Nextcloud AIO.
  4. Step 4 - Configure the domain for your Nextcloud AIO instance.
  5. Step 5 - Install Nextcloud AIO.
  6. Step 6 - Access your Nextcloud AIO dashboard.
Apr 10, 2024

How to set up docker Compose on Windows? ›

How to install Docker Compose on Windows step by step
  1. Step 1: Start PowerShell. First, launch PowerShell using your administrator rights. ...
  2. Step 2: Set up TLS security protocol. GitHub requires TLS1.2 as the default security protocol. ...
  3. Step 3: Download and install Docker Compose. ...
  4. Step 3: Test Docker Compose.
Nov 1, 2023

How to setup docker registry Windows? ›

  1. Step 1: Create Registry Directories.
  2. Step 2: Create Docker Compose Manifest and Define Services.
  3. Step 3: Set up Nginx Port Forwarding.
  4. Step 4: Increase Nginx File Upload Size.
  5. Step 5: Configure SSL Certificate and Basic Authentication.
  6. Step 6: Add Root CA Certificate.
  7. Step 7: Run Docker Registry.
Mar 21, 2024

References

Top Articles
Latest Posts
Recommended Articles
Article information

Author: Jamar Nader

Last Updated:

Views: 6255

Rating: 4.4 / 5 (75 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Jamar Nader

Birthday: 1995-02-28

Address: Apt. 536 6162 Reichel Greens, Port Zackaryside, CT 22682-9804

Phone: +9958384818317

Job: IT Representative

Hobby: Scrapbooking, Hiking, Hunting, Kite flying, Blacksmithing, Video gaming, Foraging

Introduction: My name is Jamar Nader, I am a fine, shiny, colorful, bright, nice, perfect, curious person who loves writing and wants to share my knowledge and understanding with you.