Nextcloud und Active Directory nahtlos verbinden

Es ist ein vertrautes Szenario in vielen Unternehmen: Die Benutzerkonten liegen sauber gepflegt im Active Directory, überall dort, wo Windows-Umgebungen regieren, ist es die zentrale Instanz für Zugriff und Berechtigungen. Und dann kommt eine neue Software dazu, die sich partout nicht in diese heile Welt einfügen will. Gruppen müssen doppelt gepflegt werden, Passwörter laufen auseinander, und irgendwann fragt sich der Administrator, warum er eigentlich zwei Verzeichnisse synchron halten soll. Genau an dieser Stelle steht Nextcloud, wenn man es mit Active Directory verbinden möchte. Die gute Nachricht: Es geht, und es geht besser, als manch einer denkt. Aber es gibt auch ein paar Fallstricke, die man kennen sollte, bevor man sich an die Einrichtung macht.

Nextcloud hat sich in den letzten Jahren von einer einfachen Owncloud-Abspaltung zu einer ernstzunehmenden Kollaborationsplattform entwickelt. Für viele Unternehmen ist es die erste Wahl, wenn es um selbstgehostetes File-Sharing, Kalender, Kontakte oder kollaborative Dokumentenbearbeitung geht. Gerade im europäischen Raum, wo Datenschutz nicht nur ein Schlagwort ist, sondern handfeste rechtliche Konsequenzen haben kann, punkten die Freiburger mit ihrer Lösung. Aber was nützt die schönste Plattform, wenn sie sich nicht in die bestehende IT-Landschaft einfügt? Das Active Directory ist in mittelständischen und großen Organisationen nach wie vor das Rückgrat der Benutzerverwaltung. Und genau dort entscheidet sich, ob eine Software angenommen wird oder nicht.

Warum die Anbindung ans Active Directory über den reinen Komfort hinausgeht

Man könnte jetzt argumentieren, dass eine Cloud-Lösung wie Nextcloud doch auch eigene Benutzerkonten verwalten kann. Das stimmt, und für kleine Teams mit zehn oder zwanzig Leuten mag das sogar ausreichen. Die Probleme beginnen jedoch spätestens dann, wenn ein Mitarbeiter das Unternehmen verlässt. Wer möchte schon durch dreizehn verschiedene Anwendungen gehen, um jeden Account zu deaktivieren? In einer AD-dominierten Welt reicht ein einziger Mausklick im Verzeichnis, und der Zugriff ist gekappt. Vorausgesetzt, die Anwendung ist ordentlich angebunden.

Ein weiterer Punkt ist die Passwortpolitik. Unternehmen, die Wert auf Sicherheit legen, erzwingen regelmäßige Passwortwechsel, Komplexitätsanforderungen und sperren Konten nach mehreren Fehlversuchen. Diese Mechanismen sind im Active Directory tief verankert und werden von den meisten Diensten respektiert. Wenn sich Nextcloud daran nicht beteiligt, entsteht eine Lücke – oder ein Zettelwirtschaft-System, bei dem jeder Mitarbeiter sein Passwort notiert und unter der Tastatur aufbewahrt. Das kann es ja nicht sein.

Nicht zuletzt ist es eine Frage der Benutzerfreundlichkeit. Wer sich morgens an seinem Rechner anmeldet, will nicht ein zweites oder drittes Passwort für weitere Dienste eingeben müssen. Single Sign-on, also das einmalige Anmelden mit Windows-Anmeldedaten, ist kein Luxus mehr, sondern ein Grundbedürfnis in modernen IT-Umgebungen. Die Integration von Nextcloud in ein Active Directory ebnet den Weg dorthin.

Dabei zeigt sich jedoch ein interessantes Phänomen: Die Anbindung selbst ist technisch nicht besonders schwierig, die Herausforderungen liegen oft im Detail und in den Erwartungen, die alle Beteiligten haben. Wer glaubt, nach fünfzehn Minuten Konfiguration sei alles erledigt und die Welt perfekt, der wird schnell auf den Boden der Tatsachen zurückgeholt.

Die Grundlagen: LDAP ist nicht gleich Active Directory

Wer sich mit der Nextcloud-Administration beschäftigt, stößt sehr schnell auf den Begriff LDAP. Die Verzeichnisabfrage über das Lightweight Directory Access Protocol ist der De-facto-Standard, wenn es um die Kommunikation mit Verzeichnisdiensten geht. Das Active Directory von Microsoft unterstützt LDAP natürlich, aber es wäre ein Fehler, die beiden Begriffe gleichzusetzen. Das AD ist ein komplexer Verzeichnisdienst mit eigenen Erweiterungen, eigenen Schema-Definitionen und einer eigenen Datenbank. Die LDAP-Schnittstelle ist sozusagen nur die Tür, durch die man hinein gehen kann.

Nextcloud bringt für die Ldap-Anbindung ein eigenes App-Paket mit, das sich in den meisten Distributionen bereits im Grundumfang befindet. Dieses App-Paket ist in der Lage, gegen das Active Directory zu arbeiten, es kann aber auch gegen andere LDAP-Verzeichnisse wie OpenLDAP oder 389 Directory Server eingesetzt werden. Die Konfiguration ist, das sei vorweg gesagt, nicht unbedingt intuitiv. Sie verlangt Grundkenntnisse über Verzeichnisstrukturen, DNs, RDN und die eine oder andere LDAP-Abfrage. Wer schon einmal ein LDAP-Tool wie Apache Directory Studio oder das alte JXplorer verwendet hat, wird sich leichter tun.

Ein wichtiger Unterschied zwischen einem abstrakten LDAP-Server und dem Active Directory ist das verwendete Schema. Das AD hat – im Vergleich zu offeneren Verzeichnisdiensten – sehr spezifische Attribute und Klassen. So sind zum Beispiel die Objektklässer „user“ und „group“ anders aufgebaut als die reinen RFC-2307-Klassen, die in der Unix-Welt üblich sind. Nextcloud hat sich mittlerweile gut auf diese Gegebenheiten eingestellt, dennoch gibt es immer wieder Situationen, in denen die automatische Erkennung des AD-Schemas nicht richtig greift. Dann hilft nur die manuelle Anpassung der Abfragen.

Ein interessanter Aspekt ist die Art und Weise, wie Nextcloud die Benutzer aus dem Active Directory übernimmt. Man kann das mit einem Blick durch ein Fenster vergleichen: Nextcloud erstellt keine Kopie der Benutzerdatenbank, sondern greift bei jeder Anfrage direkt auf das Verzeichnis zu. Das heißt aber nicht, dass keine Daten lokal gespeichert werden. Es entstehen sehr wohl Caches, die in einer lokalen Datenbank abgelegt werden, um die Performance zu steigern. Hochskalierte Abfragen ohne Caching würden den AD-LDAP-Server sonst unnötig belasten. Richtig konfiguriert, werden Änderungen im Active Directory wie Gruppenmitgliedschaften oder Nutzer-Sperren in der Regel innerhalb weniger Sekunden oder Minuten auch in Nextcloud wirksam. Das ist in den meisten Fällen ausreichend.

wo die Reise wirklich hingeht: Benutzer und Gruppen sauber abbilden

Bevor man überhaupt mit der Konfiguration beginnt, sollte man sich ein paar grundsätzliche Fragen stellen. Wie ist die Organisationsstruktur im Active Directory aufgebaut? Arbeiten die Benutzer in einer einzigen Domain, oder gibt es eine Gesamtstruktur mit mehreren Domains? Und, ganz wichtig: Welche Gruppen sollen später in Nextcloud verwendet werden?

Die Gruppenverwaltung in Nextcloud ist eng mit der LDAP-Anbindung verbunden. Aus Gruppen im Active Directory werden dann Gruppen in Nextcloud, die man wiederum für die Zugriffskontrolle auf Freigaben und Ordner nutzen kann. Das klingt simpel, hat aber weitreichende Konsequenzen. Wenn man es zum Beispiel gewohnt ist, Gruppen in Nextcloud zu verschachteln, also Gruppen, die andere Gruppen enthalten, muss man aufpassen. Das Active Directory unterscheidet zwischen Sicherheitsgruppen und Verteilergruppen, und nicht jede Form lässt sich sinnvoll abbilden. Nextcloud kann mit verschachtelten Gruppen umgehen, aber es braucht ein wenig Überzeugungsarbeit in der Konfiguration, insbesondere bei der Verwendung des Active Directories, wo die Verschachtelung über das Attribut „memberOf“/„member“ läuft.

Ein weiterer Punkt, der oft übersehen wird: Die Reihenfolge, in der Base-DNs angegeben werden. Manche Umgebungen haben eine sehr flache Hierarchie im AD, andere sind tief verschachtelt. Wenn man die Base-DN, also den Ausgangspunkt für die LDAP-Suche, falsch oder zu weit oben ansetzt, kann das zu einer unnötigen Systemlast führen, weil die Suche dann den gesamten Verzeichnisbaum durchsammelt. Es ist also nicht nur eine Frage der korrekten Zuordnung, sondern auch eine Frage der Performance. Hier ist ein wenig Feingefühl gefragt.

Und dann gibt es noch das leidige Thema der Benutzer-IDs. Nextcloud verwendet einen internen Benutzernamen, der automatisch generiert wird, wenn der Benutzer zum ersten Mal aus dem AD synchronisiert wird. Dieser interne Name kann sich vom tatsächlichen Login-Namen unterscheiden, besonders wenn man mit mehreren Domains arbeitet oder die LDAP-Konfiguration später ändert. Das führt zu einer der häufigsten Frustrationen bei der Nextcloud-/AD-Integration: Wenn sich die Konfiguration ändert, zeigt Nextcloud den Benutzern plötzlich einen anderen Namen an oder erkennt bestehende Freigaben nicht mehr.

Ich erinnere mich an ein Projekt, da hatte ein Administrator die Base-DN pro Auge um eine Ebene verschoben, um eine neue Organisationseinheit zu integrieren. Prompt erschienen alle Benutzer doppelt, weil Nextcloud sie nicht mehr den bestehenden lokalen Benutzern zuordnen konnte. Die Synchronisierung hatte zwar niemanden gelöscht, aber die Zuordnung war gestört. Ein Fall wie aus dem Lehrbuch, aber er zeigt, wie sensibel das System auf Änderungen reagiert. Es ist also ratsam, vor größeren Umbauten am Active Directory ein Backup der Nextcloud-Datenbank anzulegen und die LDAP-Konfiguration genau zu dokumentieren.

Einrichtung mit Bedacht: Was man beim Nextcloud-Adminpanel oder auf der Kommandozeile beachten sollte

Nextcloud bietet mehrere Wege, um die LDAP-Anbindung einzurichten. Der bequemste ist der Administrator-Bereich im Browser. Man sucht den Punkt für die LDAP-Schnittstelle und wird durch einen Assistenten geführt, der in mehreren Schritten die Verbindung herstellt. Dieser Assistent fragt nach dem Hostnamen, dem Port (in der Regel 389 für LDAP und 636 für LDAPS, also LDAP mit SSL/TLS), und den Bind-Anmeldedaten. Das sind die Zugangsdaten eines technischen Benutzers im Active Directory, der Leseberechtigung für die gewünschten Verzeichnisbereiche hat. Man sollte unter allen Umständen vermeiden, hierfür ein normales Benutzerkonto mit hohen Rechten zu verwenden. Ein dedizierter Dienstbenutzer mit beschränkten Leserechten ist das Mittel der Wahl, und wer es besonders gut machen will, setzt das Konto auf „Kennenwort läuft nicht ab“. Kein Spaß, sonst muss man nach 90 Tagen plötzlich alle Dienste umkonfigurieren.

Die anschließende Eingabe der Base-DNs ist, wie bereits erwähnt, entscheidend. Nextcloud erlaubt mehrere Base-DNs, was praktisch ist, wenn die Benutzer über verschiedene Organisationseinheiten verteilt sind und man nicht den gesamten Stamm durchsuchen möchte. Häufig wird auch das Benutzer- und Gruppen-Schema abgefragt, doch Nextcloud erkennt in den meisten Fällen, ob die Objektklasse „user“ oder „group“ im AD verwendet wird. Die automatische Erkennung ist eine gute Hilfe, aber man sollte die Ergebnisse nicht blind übernehmen.

Was die Verwendung von LDAPS betrifft, also der verschlüsselten Variante, so ist das heutzutage keine Frage des Ob, sondern nur noch des Wie. Active-Directory-Domänencontroller sind standardmäßig für LDAPS konfiguriert, sofern eine passende Zertifizierungsstelle im Unternehmen existiert. Nextcloud kann mit LDAPS umgehen, und es ist dringend davon abzuraten, LDAP unverschlüsselt über das Netzwerk laufen zu lassen. Das gilt insbesondere, wenn die Domänencontroller in einem anderen Netzwerksegment stehen oder gar über Standortgrenzen hinweg erreichbar sind. Ein Angreifer, der in der Lage ist, den Datenverkehr zwischen Nextcloud-Server und Domänencontroller abzuhören, könnte sonst Passwörter im Klartext mitlesen.

Wer sich einmal intensiver mit dem LDAP-Backend von Nextcloud beschäftigt hat, der stellt fest, dass die eigentliche Magie weniger in der Eingabe der Serverdaten liegt, sondern in den Suchfiltern. Der Standardfilter für Benutzer sieht zum Beispiel so aus:

(&(objectClass=person)(sAMAccountName=*))

Mit so einem Filter sagt man dem System: Ich möchte alle Objekte, die die Objektklasse „person“ haben und bei denen das Attribut sAMAccountName, also der Windows-Anmeldename, gesetzt ist. Das funktioniert, aber es erfasst möglicherweise auch technische Konten oder Dienstkonten, die man gar nicht in Nextcloud sehen möchte. Eine saubere Filterung ist also nicht nur kosmetisch, sondern auch sicherheitsrelevant. Manche Umgebungen ergänzen den Filter so, dass nur Konten gefunden werden, die nicht deaktiviert sind. Das lässt sich mit einer Bedingung auf das Attribut userAccountControl erreichen, allerdings ist das nicht ganz trivial, weil dieses Attribut eine Bitmaske ist. Man muss dann die Konstante „512″ für aktivierte Konten als dezimalen Wert setzen, aber Achtung: Das funktioniert nur, wenn man nicht zusätzlich andere Flags setzt. Sonst wird es schnell kompliziert.

Ein Trick, der häufig empfohlen wird, ist das Einschränken über den Suchfilter auf bestimmte Organisationseinheiten. Das mag erlaubt sein, ist aber wartungsintensiv, wenn sich die Struktur ändert. Besser ist es, ein Attribut zu verwenden, das die Benutzer grundsätzlich als nächste Cloud-Benutzer ausweist. Manche Unternehmen setzen dazu eine eigene Gruppe oder einen benutzerdefinierten Personen-Suchfilter ein.

Im nächsten Schritt geht es um die Zuordnung der Attribute. Nextcloud muss wissen, welches Attribut als Benutzername verwendet werden soll. In einer reinen Microsoft-Umgebung ist das sAMAccountName die naheliegendste Wahl, weil es exakt dem Windows-Login entspricht. In Domänen mit mehreren Gesamtstrukturen kann es jedoch vorkommen, dass ein sAMAccountName in verschiedenen Domänen mehrfach vorkommt. Dann ist der UserPrincipalName (UPN) die bessere Wahl, weil er global eindeutig ist. Als E-Mail-Attribut wird in der Regel die SMTP-Adresse herangezogen, sofern sie im AD gepflegt wird. Es ist wichtig, die LDAP-Attributzuordnung mit Bedacht zu treffen, weil eine spätere Änderung ähnliche Probleme verursacht wie eine geänderte Base-DN.

Auch das Gruppen-Mapping will überlegt sein. Gruppen aus dem Active Directory haben ein Attribut, das den Gruppennamen enthält. In der Regel ist das „cn“ (Common Name). Nextcloud übernimmt diese Namen, und daraus werden dann die Redaktions-, Projekt- oder Abteilungsgruppen in der nächsten Cloud. Man kann auch die distinguished Name, den DN, als Gruppe verwenden, aber das ist unleserlich und unpraktisch. Also: cn verwenden, das ist die Lesbarste Variante.

Single Sign-on und die Frage nach Kerberos und SAML

Die reine LDAP-Anbindung löst nur die Frage der Benutzerverwaltung, nicht unbedingt die Frage der bequemen Anmeldung. Der Benutzer muss weiterhin seinen Benutzernamen und sein Passwort in das Nextcloud-Login-Formular eingeben. Die Authentifizierung erfolgt dann über das Active Directory, das ist schon mal gut, aber von Single Sign-on (SSO) kann noch keine Rede sein. Um das zu erreichen, braucht es zusätzliche Komponenten.

Eine Option ist Kerberos. In einer Windows-Domäne wird Kerberos standardmäßig für die Authentifizierung von Netzwerkdiensten verwendet. Auch Webbrowser können Kerberos-Tickets nutzen, wenn der Server entsprechend konfiguriert ist und im Browser die Einstellung für integrierte Windows-Authentifizierung aktiviert ist. In Nextcloud kann man dies über die Authentifizierungs-App umsetzen. Das ist ein elegantes Verfahren: Der Benutzer öffnet den Browser, meldet sich an seinem Windows-Rechner an, und der Browser reicht das Ticket an den Nextcloud-Server weiter. Der Benutzer sieht keine Login-Maske, es läuft einfach. Allerdings muss Nextcloud dazu in derselben Domäne, zumindest aber in einer vertrauenswürdigen Umgebung, betrieben werden. Und der Aufwand, die Kerberos-Integration gemeinsam mit Apache bzw. Nginx und PHP zum Laufen zu bringen, ist nicht zu unterschätzen. Kerberos ist ein Protokoll mit eigenem Willen – wenn die Uhrzeiten zwischen den Servern nicht synchron sind, was praktisch immer passiert, wenn man die Zeitsynchronisation nicht überprüft, dann funktioniert es überhaupt nicht.

Viele Unternehmen bevorzugen deshalb SAML oder OpenID Connect (OIDC). Diese Protokolle sind nicht an den engen Windows-Kosmos gebunden und funktionieren browserbasiert. Nextcloud bietet dafür eine App, die es erlaubt, einen externen Identity Provider (IdP) anzuschließen. Dafür eignen sich klassische Hersteller wie ADFS, Keycloak oder Shibboleth. Durch diese Kombination erreicht man ein einheitliches Login-Erlebnis. Der Nutzer loggt sich dann einmal am IdP ein und wird von dort aus zu Nextcloud weitergeleitet. Die Benutzerverwaltung kann trotzdem das Active Directory sein, da der IdP in der Regel den LDAP- oder AD-Anschluss selbst übernimmt. In diesem Fall ist die LDAP-Anbindung von Nextcloud also sekundär, weil der IdP die Benutzerdaten zur Verfügung stellt.

Hier zeigt sich eine interessante strategische Überlegung. Wer bereits einen Identity Provider im Unternehmen einsetzt, sollte die Nextcloud-Anbindung über SAML oder OIDC ernsthaft in Betracht ziehen. Es erspart einem die doppelte LDAP-Konfiguration und ist bei Anwendungen wie Nextcloud oft die sauberere Lösung. Allerdings muss man sich bewusst sein, dass die reine LDAP-Anbindung viele Prozesse wie das Erstellen von Benutzerkonten in Nextcloud automatisch erledigt. Bei SAML/OIDC ist das nicht immer der Fall. Nextcloud muss die Benutzer ebenfalls einmalig anlegen, das macht es aber auf Basis der vom IdP übermittelten Attribute. Das funktioniert meist gut, aber es gibt weniger Spielraum für lokale Einstellungen an den Benutzerkonten, zum Beispiel für Quoten. Die Quote muss dann entweder über Gruppen oder über externe Skripte gesetzt werden.

Wenn man also eine Umgebung hat, in der schon etwas wie Keycloak im Einsatz ist, würde ich persönlich tendenziell zum SAML schielen. Wenn man eine einfache, klassische Windows-Umgebung hat, in der nicht schon gefühlte zehn Single-Sign-on-Lösungen existieren, dann ist die LDAP-Anbindung mit Kerberos oder auch ohne Kerberos der pragmatische Weg.

Provisioning aus dem Active Directory: Von Scripten, APIs und offenen Fragen

Ein Thema, das in der Praxis oft für Stirnrunzeln sorgt, ist das automatische Provisioning, also das Anlegen, Aktualisieren und Deaktivieren von Benutzerkonten. Nextcloud kann über die LDAP-Anbindung Benutzer aus dem AD übernehmen, aber was passiert, wenn ein Benutzer aus dem Active Directory gelöscht wird? In der Regel wird er bei der nächsten Synchronisierung auch in Nextcloud deaktiviert oder gelöscht, je nachdem welche Option eingestellt ist. Wer hier nicht aufpasst, kann schnell Datenverluste provozieren. Nextcloud fragt beim Löschen zwar nach, ob die Daten des Benutzers entfernt werden sollen, aber man sollte sich bewusst sein, was die automatische Synchronisierung bedeutet.

Richtig unangenehm wird es, wenn man Benutzer aus dem AD nicht löscht, sondern deaktiviert. Die Deaktivierung im Active Directory wird von Nextcloud in der Regel erkannt, und der Benutzer wird gesperrt. Das ist eine wichtige Funktion, die man im Rahmen der Sicherheitsrichtlinie genau testen sollte. Aber es gibt einen feinen Unterschied: Ein Benutzer, der in Nextcloud gesperrt ist, verschwindet nicht unbedingt aus den Freigaben. Seine Inhalte bleiben erhalten, und die Verzeichnisse sind weiterhin sichtbar, nur der Zugriff ist blockiert. Das kann eine bewusste Entscheidung sein, es kann aber auch verwirren, wenn ein Teampläne einer ausgeschiedenen Person weiterhin sieht. Je nach Compliance-Anforderung möchte man vielleicht, dass ein Benutzerkonto nach dem Ausscheiden komplett anonymisiert wird. Dafür gibt es allerdings keine eingebaute Funktion in der LDAP-Anbindung, die das automatisch erledigt. Man muss also entweder manuell in der Nextcloud-Administration tätig werden oder sich ein Skript schreiben, das die Nextcloud-API aufruft.

Die Nextcloud-API ist eine mächtige Schnittstelle, die oft unterschätzt wird. Über REST-Aufrufe kann man Benutzer anlegen, ändern, löschen, Quoten setzen und Gruppen zuweisen. Wer schon ein wenig Programmiererfahrung hat, kann sich hier ein individuelles Provisioning bauen, das perfekt auf die hauseigenen Workflows abgestimmt ist. Ein einfaches PHP-Skript oder ein Python-Skript, das die AD-Datenbank liest und per HTTP an die Nextcloud sendet, ist keine Hexerei. Wunder dauern allerdings etwas länger, und man sollte sich viel Zeit für das Testen der Sonderfälle nehmen. Ein Klassiker ist der Fall, in dem ein Benutzer schon gelöscht wurde, bevor das Provisioning-Skript die Löschung an Nextcloud gemeldet hat. Dann geht die Freigabe verloren, bevor die Inhalte archiviert wurden. Um solche Datenverluste zu vermeiden, gibt es die Möglichkeit, gelöschte Benutzer in Nextcloud noch eine Weile aufzubewahren und die Daten zu sichern, bevor man die endgültige Löschung anstößt. All dies ist aber händische Konfigurationsarbeit und nichts, was die Software einem von Haus aus abnimmt.

Bei der ganzen Provisionierungs-Frage spielt auch das Thema „nextcloud active directory“ in Kombination mit Gruppenrichtlinien oder PowerShell-Skripten hinein. Viele Administratorinnen und Administratoren haben bereits eine Skript-Infrastruktur für die Benutzerverwaltung im AD. Es ist ein Leichtes, diese Skripte um einen Aufruf an die Nextcloud-REST-API zu ergänzen. Umgekehrt lassen sich auch Ereignisse aus Nextcloud heraus in das Active Directory spiegeln, etwa wenn sich ein Benutzer das erste Mal anmeldet. Das ist aber eher die exotische Richtung und, das sei ehrlich gesagt, meistens nicht nötig. Nextcloud ist in dieser Konstellation eher der Nehmer von Daten und nicht der Geber.

Der 32.000-Fuß-Blick: Skalierung und Performance

Die Frage, wie viel Last ein Nextcloud-Server verträgt, ist eng mit der Active-Directory-Anbindung verknüpft. Wenn jeder Seitenaufruf eine LDAP-Abfrage an den Domänencontroller schickt, kann das gerade bei mittleren und großen Installationen zu spürbaren Reaktionszeiten führen. Nextcloud hat dafür Mechanismen eingebaut, die im Prinzip funktionieren, aber sie müssen richtig konfiguriert werden. Der wichtigste Baustein ist der LDAP-Cache. Nextcloud speichert die Ergebnisse von LDAP-Abfragen in einer lokalen Datenbank. Damit das funktioniert, muss aber die Datenbank, in der Regel MySQL/MariaDB oder PostgreSQL, schnell genug sein und über genügend Cache-Speicher verfügen. Viele Admins unterschätzen, wie viel Speicher eine große Benutzerliste in der Datenbank belegen kann. Es ist nicht ungewöhnlich, dass die Cache-Tabellen mehrere hundert Megabyte groß werden, wenn man zehntausende Benutzer oder Gruppen im Active Directory hat. Die Standardeinstellungen von Nextcloud passen nicht unbedingt für solche Extremfälle, daher sollte man die System-Konfiguration genau prüfen und ggf. Anpassungen an der PHP-Speichergrenze und an der Datenbank vornehmen.

Ein weiterer Faktor ist die Laufzeit von LDAP-Abfragen. Nextcloud führt nicht bei jeder Interaktion alle Abfragen aus, sondern nutzt die Caches und führt gelegentliche Hintergrund-Synchronisierungen durch. Die Hintergrund-Intervalle lassen sich einstellen. Wenn man sie zu langsam einstellt, spürt man Änderungen im AD nicht schnell genug; wenn man sie zu schnell einstellt, wird der Domänencontroller überlastet. Ein guter Ausgangspunkt sind Intervalle von einigen Minuten für die Benutzersynchronisierung und etwas längere Intervalle für die Gruppensynchronisierung. Aber, wie so oft, hängt es von der Umgebung ab. Man sollte das Monitoring bemühen und die Latenzen beobachten.

Was die Skalierung des Nextcloud-Servers anbelangt, so gilt: Mehrere PHP-FPM-Prozesse, ein leistungsfähiger Webserver und eine gute Datenbank sind das A und O. Der LDAP-Filter ist eine einfache Datenbankabfrage, die nicht viel CPU braucht, aber die Netzwerklatenz zum Domänencontroller ist entscheidend. Steht der Nextcloud-Server am anderen Ende einer langsamen WAN-Verbindung, während die AD-Standorte woanders liegen, dann wird die Anmeldung unangenehm zäh.

In solchen Szenarien kann die Zwischenschaltung eines LDAP-Proxy-Servers wie ApacheDS oder OpenDJ sinnvoll sein. Der Proxy hält eine lokale Kopie oder zumindest eine Zwischenablage der abgefragten Daten und entlastet den eigentlichen Domänencontroller. Das ist allerdings eine zusätzliche Komponente, die verwaltet und überwacht werden will. Für den klassischen Mittelständler ist das meist übertrieben, aber in Konzern-Umgebungen mit zehntausenden Benutzern kann es eine Option sein.

Sicherheit: Mehr als nur ein paar Häkchen

Die Verbindung von Nextcloud mit einem Active Directory ist auch ein sicherheitsrelevanter Eingriff. Schließlich gibt man einem Dienst Zugriff auf das Herzstück der Benutzerverwaltung. Man sollte sich die Frage stellen: Welche Rechte hat der Bind-Benutzer? Ist er in der Lage, Passwort-Hashes zu lesen? In der Regel nicht, wenn man ihn nur für LDAP-Lesezugriffe einrichtet. Aber wenn man unsaubere Konfigurationen erbt, sind manchmal alte Dienstkonten mit weitreichenden Rechten im Einsatz, nur weil eine ältere Anwendung das mal verlangt hat. Bevor man die LDAP-Anbindung von Nextcloud in Betrieb nimmt, sollte man genau prüfen, welche Benutzerkonten als technische Benutzer verwendet werden und wie deren Berechtigungsstufen aussehen.

Ein weiterer Punkt ist die Zertifikatsprüfung bei LDAPS. Nextcloud fragt das Zertifikat des Domänencontrollers ab, wenn man eine verschlüsselte Verbindung nutzt. Standardmäßig wird das Zertifikat gegen die lokale Zertifizierungsstelle geprüft. Wenn Nextcloud aber auf einem System läuft, auf dem das CA-Wurzelzertifikat des Unternehmens nicht installiert ist, schlägt die Verbindung fehl. Manche Abhilfe besteht darin, die Zertifikatsprüfung zu deaktivieren – was man aber niemals tun sollte. Besser ist es, das Zertifikat des Unternehmens in den Zertifikatsspeicher des Betriebssystems zu importieren. Auch das ist ein Detail, das in Projekten gerne vergessen wird und dann zu nächtlichen Anrufen führt, weil die Anmeldung auf einmal nicht mehr klappt. Dabei ist es nur die Zertifikatskette, die nicht sauber aufgelöst wird.

Die Verschlüsselung der Daten liegt dann aber noch einmal auf einer anderen Ebene. Nextcloud kann die Daten auf dem Server verschlüsseln, und es kann Verschlüsselung für den Transport anbieten. Das hat mit Active Directory zunächst nichts zu tun, sollte aber im Gesamtkontext betrachtet werden. Ein Unternehmen, das seine Daten mit externen Rechenzentren oder Cloud-Anbietern austauscht, muss sich darüber im Klaren sein, dass Nextcloud auch die Möglichkeit bietet, Daten über Verbundsysteme zu teilen. Da gerät das AD schnell in den Hintergrund – aber es bleibt der Schlüssel für den Zugriff auf die gesamte Plattform. Wenn das Active Directory kompromittiert wird, ist es egal, wie stark die Nextcloud-Verschlüsselung ist – die Angreifer können sich als legitime Benutzer ausgeben. Deshalb ist es so wichtig, im AD selbst auf saubere Hygiene zu achten: Konten sperren, Multi-Faktor-Authentifizierung einführen, privilegierte Benutzer trennen.

Nextcloud selbst kann die Multi-Faktor-Authentifizierung (MFA) erzwingen. MFA gilt dann zusätzlich zur LDAP-Anmeldung. Das ist eine Option, die in Umgebungen eingesetzt werden sollte, in denen nicht bereits ein zentrales MFA-System für den gesamten Zugriff sorgt. Der Benutzer gibt dann also sein Passwort ein, das gegen das AD geprüft wird, und muss anschließend noch einen zweiten Faktor bestätigen. Das ist lästig, aber es hebt die Sicherheit deutlich. Man kann das auch mit der bereits erwähnten SAML-Anbindung kombinieren, dann ist das MFA-Gefälle am Identity-Provider angesiedelt und Nextcloud bekommt nur noch das Ergebnis mitgeteilt.

Migration und Betrieb: Wie man vom ungeliebten Schatten-IT-Dasein zur regulären Plattform kommt

Es kommt nicht selten vor, dass Nextcloud zunächst als Schatten-IT in einer Abteilung entsteht, bevor es dann zentral aufgesetzt wird. Solche Projekte laufen meist so ab: Ein einzelner Mitarbeiter installiert die Software auf einem privaten Server, nutzt sie zum Datenabgleich und erzählt es dann seinem Team weiter. Irgendwann hört die IT-Abteilung davon und muss sich überlegen, wie sie die Lösung in ihr Portfolio aufnimmt. Bei einer solchen Migration ist die Active-Directory-Anbindung ein wesentlicher Bestandteil. Die Benutzer, die bisher lokale Konten in Nextcloud hatten, sollen nun ihre AD-Konten verwenden. Das ist ein heikler Eingriff, weil die Zuordnung zwischen bestehenden Daten und den neuen Benutzerkonten nicht verloren gehen darf.

Nextcloud bietet für diesen Fall eine Umstellungsfunktion an, die die lokalen Benutzerkonten mit LDAP-Konten verknüpft. Voraussetzung ist, dass die Benutzernamen in beiden Systemen identisch sind oder dass Attribute einander zugeordnet werden können. Wenn nicht, muss man die Benutzerkonten manuell zusammenführen oder – im schlimmsten Fall – die Daten verschieben. Ich habe schon Migrationen erlebt, die daran gescheitert sind, dass die alten Benutzernamen nicht den neuen AD-Logins entsprachen und niemand mehr wusste, welches lokale Konto zu welchem Benutzer gehört. Man spart also viel Zeit, wenn man vor der Migration die Daten bereinigt und dafür sorgt, dass die E-Mail-Adressen oder Benutzernamen konsistent sind.

Der Betrieb einer Nextcloud-Instanz mit AD-Anbindung umfasst auch die regelmäßige Pflege der LDAP-Konfiguration. Das Active Directory wird aktualisiert, Gesamtstrukturen ändern sich, neue Domänencontroller kommen dazu, alte gehen weg. Die Nextcloud-Installation muss darauf vorbereitet sein. Dazu gehört es, die DNS-Einträge zu prüfen, die den LDAP-Server benennen. Wenn der Hostname, den Nextcloud verwendet, nicht mehr auflösbar ist, schlägt die Anmeldung fehl, aber nicht sofort und nicht immer. Es können seltsame Teilausfälle auftreten, je nachdem ob der alte DNS-Eintrag noch im Cache steckt. Deshalb ist es ratsam, in Nextcloud nicht nur einen einzigen LDAP-Server anzugeben, sondern, falls unterstützt, die Failover-Konfiguration zu verwenden. Das gilt besonders, wenn man zwei Domänencontroller an verschiedenen Standorten hat. Nextcloud sollte in der Lage sein, nach einem Ausfall auf den anderen Server zu wechseln. In der Praxis wird diese Funktion aber oft nicht richtig getestet, weil niemand einen echten Ausfall provozieren möchte. Man sollte es dennoch tun.

Ein weiterer essenzieller Bestandteil des Betriebs ist die Sicherung. NEXTCLOUD-Daten und Nextcloud-Datenbank müssen regelmäßig gesichert werden. Wenn die Datenbank gesichert wird, reicht das nicht, denn die eigentlichen Dateien liegen im Datenverzeichnis. Sicherungskonzepte sollten auch die lokale Nextcloud-Config-Datei einschließen, in der die LDAP-Konfiguration gespeichert ist. Ein Verlust dieser Datei ist zwar nicht unterkritisch, weil man die Konfiguration neu aufsetzen kann, aber man muss dann das gesamte Regelwerk neu zusammenstellen.

Hinzu kommt das Thema der Betriebssystemebene. Nextcloud lässt sich als Appliance betreiben, etwa mit der Linux-Maschine, oder als Container-Lösung mit Docker bzw. Kubernetes. Die Container-Variante ist elegant, kann aber bei der LDAP-Anbindung Tücken haben, wenn das Container-Image nicht über die benötigten Zertifikate verfügt oder die Netzwege nicht richtig aufgelöst werden. In solchen Umgebungen ist es wichtig, die Konfigurationen über Environment-Variablen oder Konfigurationsdateien zu parametrisieren, damit die Container reproduzierbar bleiben. Ein guter Weg ist es, die LDAP-Verbindung in einer konfigurierbaren CI/CD-Pipeline zu testen, bevor man neue Versionen in Produktion bringt.

troubleshooting: die Klassiker

Wenn etwas nicht funktioniert, zeigt sich die Qualität eines Systems darin, wie schnell man die Fehlerquelle findet. Bei Nextcloud mit Active Directory gibt es einige klassische Fehlersymptome. Ein sehr häufiger Fall: Die Anmeldung schlägt fehl, obwohl das Passwort korrekt ist. Die Ursache liegt dann oft darin, dass der LDAP-Bind für die Authentifizierung nicht klappt. Nextcloud muss ja, wenn sich ein Benutzer anmeldet, die Zugangsdaten gegen das AD prüfen. Das geschieht nicht über den technischen Bind-Benutzer, sondern über einen neuen Bind mit den eingegebenen Daten – das ist der Hauptunterschied zur reinen Synchronisierung. Wenn dieser Bind fehlschlägt, weil zum Beispiel das Konto gesperrt ist oder die Passwortrichtlinie das Anmelden über LDAP für dieses Konto untersagt, dann zeigt Nextcloud lediglich eine allgemeine Fehlermeldung. Dann liegt das Problem aber nicht in Nextcloud, sondern im AD.

Ein anderes Problem sind fehlerhafte Gruppenzuordnungen. Wenn die Gruppen aus dem AD nicht in Nextcloud ankommen, liegt es oft an den Suchfiltern. Nextcloud sucht standardmäßig nach Objekten der Klasse „group“. In einem AD mit mehreren Gesamtstrukturen kann es Gruppen geben, die nicht in der Base-DN liegen, die man angegeben hat. Ein simpler Sonderfall sind leere Gruppen – manche AD-Administration löscht sie regelmäßig, aber manche werden einfach nie bereinigt. Nextcloud kann leere Gruppen darstellen, aber es ist unschön.

Eine weitere Sache, die mir immer wieder begegnet, ist das Vergessen, die Hintergrund-Aufgaben von Nextcloud zu konfigurieren. Die Synchronisierung mit dem LDAP-Verzeichnis läuft über Cron-Jobs. Wenn diese Jobs nicht laufen, weil der Standard-Webcron deaktiviert wurde und kein System-Cron eingerichtet ist, dann kann die Synchronisierung lange dauern oder ausbleiben. Nextcloud zeigt in der Administration Übersicht eine Warnung, die man aber leicht übersieht. Es ist deshalb ratsam, von Anfang an einen echten System-Cron einzurichten und zu überwachen.

Und dann gibt es noch das bekannte Phänomen der „verlorenen“ Benutzer: Sie tauchen in Nextcloud nicht auf, obwohl sie im AD vorhanden sind. Oft liegt es daran, dass die Basis-DN zu eng gewählt wurde. Wenn Benutzer in einer anderen Organisationseinheit liegen, werden sie nicht gefunden. Das Problem ist schnell behoben, indem man die Base-DN anpasst. Aber es kann auch am Attribut liegen, das für den Benutzernamen verwendet wird. Wenn ein Promotionssystem den Benutzernamen aus dem Attribut „cn“ zieht, das bei jedem Benutzer nur den Anzeigenamen, nicht aber den Login-Namen enthält, dann kann es zu Verwechslungen kommen. Die richtige Wahl ist in der Regel sAMAccountName oder UPN.

Nicht zuletzt sollte man die Logs von Nextcloud im Auge behalten. Die Protokolle zeigen fehlgeschlagene LDAP-Verbindungen und manchmal auch die konkrete Suchabfrage, die schief gelaufen ist. Die Meldungen sind nicht immer selbsterklärend, aber sie geben Hinweise. Im Zweifelsfall hilft das Tool „ldapsearch“, das auf den meisten Linux-Systemen verfügbar ist, um die Abfrage direkt gegen den AD-Server zu testen. Damit lässt sich die Konfiguration sehr schnell verifizieren, bevor man Nextcloud bemüht.

Nächste Generation: Nextcloud Hub und der Fokus auf Integration

Nextcloud hat sich längst von der reinen Dropbox-Altvative zu einer Plattform entwickelt, die man mit „Hub“ bezeichnet. Der Hub umfasst Dateien, Kalender, Kontakte, Aufgaben, Mail, Chat und Videokonferenzen sowie eine Office-Suite, die in der Branche einen guten Ruf genießt. Das alles soll zusammenarbeiten, und es soll in die bestehende IT-Infrastruktur integrierbar sein. Die Active-Directory-Anbindung ist dabei ein Fundament. Sie ist quasi die Klammer, die die verschiedenen Funktionen an die zentrale Benutzerverwaltung anbindet. Ohne diese Klammer bliebe jedes Modul eine Insel.

Die Office-Integration ist ein Beispiel dafür, wie wichtig die Gruppen- und Nutzerverwaltung ist. Wenn mehrere Personen an einem Dokument arbeiten, müssen sie in Echtzeit erkennen können, wer gerades etwas ändert. Das geschieht über die Benutzernamen und die in Nextcloud hinterlegten Profile. Wenn diese Profile aus dem Active Directory gespeist werden, stimmen die angezeigten Namen, Abteilungen und E-Mail-Adressen automatisch. Kleine Unstimmigkeiten, wie etwa abweichende Anzeigenamen, lassen sich durch die LDAP-Attributzuordnung korrigieren.

In modernen Unternehmen spielt auch die Verzeichnis-Anbindung für mobile Geräte eine Rolle. Benutzer, die sich von unterwegs mit ihrem Smartphone in Nextcloud einloggen, sollen nicht nur ihre Daten sehen, sondern auch die passenden Gruppen und Freigaben. Mobile Device Management (MDM)-Systeme können Nextcloud als App bereitstellen, und die Anmeldung über das AD könnte auch hier über einen Identity Provider laufen. Ob man das über native Nextcloud-Apps oder über den Browser macht, ist Geschmackssache. Wichtig ist, dass der zentrale Verzeichnisdienst in jeder dieser Sitzungen die Kontrolle behält.

Das Stichwort „Federation“ fällt in diesem Zusammenhang ebenfalls. Nextcloud bietet die Möglichkeit, Verbindungen zu anderen Nextcloud-Servern herzustellen, ohne die Benutzerdaten in die Cloud zu geben. Diese föderierten Instanzen müssen ihre Benutzer aber auch irgendwie verwalten. Auch hier kann das Active Directory die Grundlage sein. Man sieht also: Es gibt kaum einen Bereich in Nextcloud, der nicht von der ordentlichen Anbindung an das Verzeichnis profitiert.

Praktische Empfehlungen für die eigene Roadmap

Wer nun vor der Aufgabe steht, Nextcloud mit Active Directory zu verbinden, der sollte nicht einfach loslegen, sondern sich die Zeit nehmen, eine kleine Roadmap zu erstellen. Zuerst sollte man sich über die Ziele klar werden. Geht es nur um die Authentifizierung? Sollen auch Gruppen in Nextcloud gespiegelt werden? Braucht es Single Sign-on? Oder sogar eine vollständig automatisierte Benutzerverwaltung mit API-Integration? Diese Fragen bestimmen, wie viel Aufwand man in die Konfiguration steckt.

Als nächstes sollte man die AD-Struktur kennen. Man sollte die OU-Struktur auswerten, die vorhandenen Benutzerattribute prüfen und festlegen, welche Benutzergruppen in Nextcloud sichtbar sein sollen. Oft hilft es, ein Muster-AD mit ein paar Testbenutzern anzulegen und dort die LDAP-Konfiguration auszuprobieren, bevor man sie auf die Produktion ansetzt. Das klingt banal, aber ich habe schon Projekte erlebt, in denen direkt in der Produktion herumexperimentiert wurde und dann die halbe Belegschaft sich nicht mehr anmelden konnte.

Danach folgt die technische Umsetzung. Die LDAP-Anbindung wird Schritt für Schritt eingerichtet, getestet und dokumentiert. Parallel dazu sollte man die Backups überprüfen. Auch die Absicherung der Verbindung per LDAPS gehört selbstverständlich dazu. Wenn all das steht, kann man die Feintuning-Maßnahmen angehen, etwa das Setzen von Quoten über Gruppen und das Einrichten von Speicherplatzlimits.

Was die Wahl der Login-Methode angeht, rate ich dazu, sich nicht zu früh auf Kerberos zu fixieren. Kerberos ist ein mächtiges Werkzeug, aber es ist fehleranfällig. SAML bzw. OpenID Connect ist in den meisten Umgebungen flexibler und zukunftssicherer, weil es auch für andere Anwendungen genutzt werden kann. Wer noch kein SSO-System hat, könnte mit Keycloak einen guten Partner wählen. Die Integration in Nextcloud ist gut dokumentiert und es gibt viele Beispiele.

Eine letzte Empfehlung, die fast schon eine interne Regel sein sollte: Die Dokumentation der LDAP-Konfiguration nicht vergessen. Sie gehört nicht ins Kopfkino des Adminstratoren, sondern in ein Wiki oder zumindest in ein Konfigurationsmanagement-Tool. So kann im Notfall auch ein Kollege die Probleme beheben, ohne die halbe Konfiguration neu zu erfinden.

Nextcloud als Teil einer robusten, offenen Infrastruktur

Am Ende zeigt sich, dass die Verbindung von Nextcloud mit dem Active Directory mehr ist als eine lästige Pflichtübung. Sie ist das Beispiel dafür, wie sich eine moderne, datenschutzfreundliche Kollaborationsplattform in eine gewachsene IT-Landschaft integrieren lässt. Es ist eine Geschichte von Kompromissen, aber auch von neuen Möglichkeiten. Die Tatsache, dass eine Open-Source-Anwendung wie Nextcloud so sauber mit einem Microsoft-Verzeichnisdienst zusammenarbeitet, ist nicht selbstverständlich. Es zeigt, wie weit die Zusammenarbeit von Schnittstellen und Protokollen mittlerweile ist, wenn beide Seiten bereit sind, auf Standards zu achten.

Natürlich gibt es Stolpersteine. Die Konfiguration ist nicht in fünf Minuten erledigt, und je größer die Umgebung ist, desto mehr Fallstricke tun sich auf. Aber das gilt für nahezu jede ernsthafte IT-Integration. Wer sich die Mühe macht, die Feinheiten zu verstehen, wird mit einer Plattform belohnt, die den Mitarbeitern das Leben erleichtert und der IT-Abteilung ein hohes Maß an Kontrolle lässt. Denn letztlich ist die Frage, ob man „nextcloud active directory“ als einen einfachen LDAP-Eintrag behandelt oder als ein Thema, das strategisch angegangen wird, ein entscheidender Erfolgsfaktor.

Die eingangs erwähnte zweite Passwort-Verwaltungstabelle auf einem Zettel unter der Tastatur kann dann in der Schublade verschwinden. Die Benutzer melden sich einmal an, und alle Dienste funktionieren. Und das ist doch ein Ziel, das es wert ist, verfolgt zu werden.