Gelöst: Verbindung Nextcloud -> Synology Active Directory
Hallo zusammen,
tatsächlich ist mir die Verbindung soeben geglückt. Zur Dokumentation werde ich hier niederschreiben, was ich getan und eingestellt habe.
Zunächst ein paar Infos zum Logging-Thema von oben:
Die beiden von genannten Ordner für die Log-Platzierung sind korrekt. Es handelt sich um eine Einstellungsfrage, was man wo sieht.
Um verwertbare informationen bezüglich des LDAP-Verhaltens von NC zu bekommen, hat bei mir geholfen, das Loglevel von NC erhöhen und die Logausgabe auf die /var/log/messages umzubiegen.
Dazu editiert man die config.php von NC - diese liegt auf meiner Syno unter /volume1/web/[NEXTCLOUDORDNER]/config/
In der config.php habe ich folgendes eingetragen:
Rich (BBCode):
'log_type' => 'syslog',
'logfile' => '',
'loglevel' => '0',
'syslog_tag' => 'Nextcloud',
Mit diesen Einstellungen schreibt NC so gut wie alles, was passiert in die /var/log/messages. Dort kann man dann prima fürs Debugging nachsehen. Wie man das macht, findet sich an vielen Stellen im Netz.
Hinterher sollte man dann nur das Loglevel wieder zurücksetzen, da die 'messages'-Datei sonst zu sehr vollgemüllt wird. Standard-Loglevel für NC ist '3'.
Einstellungen in Nextcloud:
Bei mir lief es leicht anders als in dem Blogeintrag beschrieben, woran das final lag, vermag ich nicht einzuschätzen, vermutlich eine Sache der jeweiligen DS und von Programm- und DSM-Versionen.
Zunächst hier ein paar Hinweise:
1) Ich denke, die Syno bzw. der AD-Server braucht im Zweifel lieber mal einen Neustart mehr als weniger. Danach sollte man aber immer etwas warten, damit alles sauber in Gang gerät.
2) Wenn man etwas an den AD-Benutzern im Server ändert, unbedingt unter "Systemsteuerung" -> "Domain/LDAP" -> Tabs "Domainbenutzer" bzw. "Domaingruppe" IMMER auf den Button "Domain-Daten aktualisieren" klicken! Damit werden die Benutzerdaten im LDAP-Speicher aktualisiert. Das Ganze scheint aber ebenfalls etwas Zeit zu brauchen, bis es vollständig zur Verfügung steht, also im Zweifel danach etwas warten.
3) Bei mir war es
nicht erforderlich (ich hatte keine entsprechende Fehlermeldung), dass ich wie Blogeintrag beschrieben die 'smb.conf' unter /etc/samba/ anpasse, d. h. der Eintrag "ldap server require strong auth=no" konnte weggelassen werden.
4) Ich habe keine separate Nutzergruppe für Nextcloud in der Domain angelegt, sondern verwende einfach die normalen Benutzer der Domain. Das Ganze hat den Hintergrund, dass ich irgendwo gelesen habe, Nextcloud hat Probleme bei der Ermittlung von Benutzern, die mehr als einer Nutzergruppe angehören. Die Einstellung, die das beheben soll, limitiert die Anzahl der verwendbare User aus der AD-Domain und das wollte ich nicht.
5) Um Daten und Werte der AD-Domäne herauszufinden, hilft am Besten der Active Directory Explorer, oder auch AdExplorer von Sysinternals/Microsoft ->
Klick (muss nicht instelliert werden, nur entzippen, starten, einloggen)
6) Ich lege folgendes Beispiel für die gezeigten Daten zu Grunde:
7) Um Problemen vorzubeugen, bitte tragt im AD-Benutzer auf der DS im Feld "Vollständiger Name" den Namen Eurer Benutzer ein! Das Feld findet man im DSM unter "Active Directory Server" -> "Benutzer und Computer" -> [Domäne] -> "Users" -> Benutzer wählen -> Rechtsklick, "Bearbeiten" -> Tab "Allgemein"
Jetzt zu den Einstellungen in der Nextcloud, hier öffnet man NC mit deren Administrator-account und geht nach "Verwaltung" -> "LDAP/AD-Integration":
Eintragungen im Tab "Server":
Host:
ldap://Diskstation.Domain.Local
Port:
389 -> Dieser wird üblicherweise gefunden, wenn man den korrekten Host erfasst hat und danach auf "Port ermitteln" klickt
Benutzer-DN:
Domain\[Benutzername] -> Scheinbar kann man bei Synology den ganzen Kram mit DC=/DN= ... vergessen. Ich verwende übrigens den Domainadministrator als Benutzer für die Verbindung.
Passwort:
Passwort -> Also bitteschön da NICHT 'Passwort' reinschreiben...
Es handelt sich selbstredend um das Domainpasswort des für die Verbindung zu verwendenden Users.
Mit den Daten konnte ich dann auf den Button "Base-DN ermitteln" klicken und NC spuckte mir direkt folgende Werte aus (d.h. NC konnte nun tatsächlich die Base-DN ermitteln! Juhuuu!
):
Base DN:
dc=domain,dc=local
Laut Blogeintrag sollte man den Haken im Feld "LDAP-Filter manuell eingeben ..." setzen und dann die Queries in den nächsten Tabs von Hand eingeben. Ich habe es - versehentlich - nicht gemacht, was sich als gut erwiesen hat.
Denn interessanterweise konnte ich dann nämlich in den Tabs "Benutzer", "Anmeldeattribute" und "Gruppen" über die dort angebotenen Auswahlfelder die richtigen Felder im LDAP-Verzeichnis wählen und so fast automatisch die richtigen Queries erzeugen. Diese werden dann in das jeweilige Feld eingetragen. Danach habe ich auch den Haken bei "LDAP-Filter manuell eingeben ..." gesetzt, die Queries sind dabei stehengeblieben.
Bei mir stellt sich das dann wie folgt dar:
Eintragungen im Tab "Benutzer":
Rich (BBCode):
(&(|(objectclass=user))(|(|(memberof=CN=Domain Users,CN=Users,DC=domain,DC=local)(primaryGroupID=XYZ))))
Eintragungen im Tab "Anmeldeattribute":
Rich (BBCode):
(&(&(|(objectclass=user))(|(|(memberof=CN=Domain Users,CN=Users,DC=domain,DC=local)(primaryGroupID=XYZ))))(|(samaccountname=%uid)(|(memberOf=%uid))))
Eintragungen im Tab "Gruppen":
Rich (BBCode):
(&(|(objectclass=group))(|(cn=Domain Users)))
Noch zwei Hinweise hierzu:
1) "Domain Users" aus dem Beispiel entspricht der Benutzergruppe aus Eurer Domain, die auf die NC zugreifen können soll. Bei mir sind das einfach die normalen Domänenbenutzer.
2) Die "primaryGroupID" ('XYZ') aus den Queries ist die numerische ID der primären Benutzergruppe eines Users in der AD-Domäne. Diese ist vermutlich bei jedem anders und sollte vorher am besten über den AdExplorer ausgelesen werden. Dazu ruft man darin einfach den jeweiligen Nutzer auf und sucht im Rechten Bildschirmteil das "primaryGroupID"-Feld. Die Nummer dahinter ist die ID. Bei mir ist sie dreistellig, im Blogeintrag war sie vierstellig.
Hoffe, ich konnte ein wenig helfen.
Gruß
Zap