Nextcloud und UCS als AD Mitglied

german
nextcloud

#1

Hallo zusammen,

ich habe gerade einen UCS als Mitglied einer Windows-AD installiert und anschließend Nextcloud drauf geschmissen.
Der erste Versuch den Administrator anzumelden schlug sofort fehl.

Wenn ich mir die Config ausgeben lassen, so erhalte ich:

ldap:show-config

univention-app shell nextcloud
root@nextc-42463691:/# sudo -u www-data php /var/www/html/occ ldap:show-config
+-------------------------------+-----------------------------------------------------------------+
| Configuration                 | s01                                                             |
+-------------------------------+-----------------------------------------------------------------+
| hasMemberOfFilterSupport      | 0                                                               |
| hasPagedResultSupport         |                                                                 |
| homeFolderNamingRule          |                                                                 |
| lastJpegPhotoLookup           | 0                                                               |
| ldapAgentName                 | cn=nextc-42463691,cn=memberserver,cn=computers,dc=name,dc=local |
| ldapAgentPassword             | ***                                                             |
| ldapAttributesForGroupSearch  |                                                                 |
| ldapAttributesForUserSearch   | uid;givenName;sn;employeeNumber;mailPrimaryAddress              |
| ldapBackupHost                |                                                                 |
| ldapBackupPort                |                                                                 |
| ldapBase                      | dc=name,dc=local                                                |
| ldapBaseGroups                | cn=groups,dc=name,dc=local                                      |
| ldapBaseUsers                 | cn=users,dc=name,dc=local                                       |
| ldapCacheTTL                  | 600                                                             |
| ldapConfigurationActive       | 1                                                               |
| ldapDynamicGroupMemberURL     |                                                                 |
| ldapEmailAttribute            | mailPrimaryAddress                                              |
| ldapExperiencedAdmin          | 1                                                               |
| ldapExpertUUIDGroupAttr       |                                                                 |
| ldapExpertUUIDUserAttr        |                                                                 |
| ldapExpertUsernameAttr        | uid                                                             |
| ldapGroupDisplayName          | cn                                                              |
| ldapGroupFilter               | (&(objectclass=nextcloudGroup)(nextcloudEnabled=1))             |
| ldapGroupFilterGroups         |                                                                 |
| ldapGroupFilterMode           | 1                                                               |
| ldapGroupFilterObjectclass    | nextcloudGroup                                                  |
| ldapGroupMemberAssocAttr      | uniqueMember                                                    |
| ldapHost                      | nextCloud.name.local                                            |
| ldapIgnoreNamingRules         |                                                                 |
| ldapLoginFilter               | (&(objectclass=nextcloudUser)(nextcloudEnabled=1)(uid=%uid))    |
| ldapLoginFilterAttributes     |                                                                 |
| ldapLoginFilterEmail          | 0                                                               |
| ldapLoginFilterMode           | 1                                                               |
| ldapLoginFilterUsername       | 1                                                               |
| ldapNestedGroups              | 0                                                               |
| ldapOverrideMainServer        |                                                                 |
| ldapPagingSize                | 500                                                             |
| ldapPort                      | 7389                                                            |
| ldapQuotaAttribute            | nextcloudQuota                                                  |
| ldapQuotaDefault              |                                                                 |
| ldapTLS                       | 0                                                               |
| ldapUserDisplayName           | displayName                                                     |
| ldapUserDisplayName2          |                                                                 |
| ldapUserFilter                | (&(objectclass=nextcloudUser)(nextcloudEnabled=1))              |
| ldapUserFilterGroups          |                                                                 |
| ldapUserFilterMode            | 1                                                               |
| ldapUserFilterObjectclass     |                                                                 |
| ldapUuidGroupAttribute        | auto                                                            |
| ldapUuidUserAttribute         | auto                                                            |
| turnOffCertCheck              | 0                                                               |
| turnOnPasswordChange          | 0                                                               |
| useMemberOfToDetectMembership | 0                                                               |
+-------------------------------+-----------------------------------------------------------------+

Wenn ich die Config dann testen möchte, bekomme ich den Fehler, dass die Verbindung zum LDAP verloren wurde.

ldap:test-config

  [OC\ServerNotAvailableException]  
  Lost connection to LDAP server. ```



<p>Wo kann ich ansetzen, um dem Fehler erstens auf die Schliche zu kommen oder was habe ich falsch gemacht haben können?</p>

<p>Danke für jeden Tipp im Voraus.</p>

<p>Gruß, Christian.</p>

#2

Hallo Christian,

mal ins Blaue geraten:

  • ist der LDAP-Server nextCloud.name.local vom Container aus auflösbar?
  • kannst du mit dem LDAP user cn=nextc-42463691 und dem Kennwort aus /etc/machine.secret (im Container!) eine LDAP-Verbindung aufbauen? Einmal auf dem UCS Host und einmal im Container probieren?

Currently connected users
#3

Hallo Grandjean,

Dein erster Verdacht mit der Namensauflösung war schon einmal perfekt.
Der DHCP hatte sich Name und IP während der Installation zwischengespeichert und damit stimmte die Namensauflösung nicht. Nachdem ich das gefixt habe ist zumindest der Fehler ein anderer:

root@nextc-42463691:/# sudo -u www-data php /var/www/html/occ ldap:test-config s01
The configuration is valid, but the Bind failed. Please check the server settings and credentials.

Ich habe das Passwort mittels

sudo -u www-data php /var/www/html/occ ldap:set-config s01 ldapAgentPassword [Passwort aus /etc/machine.secret]

neu gesetzt, aber das hatte nichts verändert.
Leider weiß ich nicht, wie ich innerhalb des Containers die Verbindung richtig prüfen kann, da dort nicht einmal ping oder nslookup zur Verfügung stehen, bzw. ich nicht weiß, wie ich da außerhalb des Containers rankommen könnte, falls das überhaupt geht.

Gruß, Christian.


Nextcloud bind password invalid
#4

Hallo,

ja, das ist so ne Sache. Man möchte ja die Docker Images möglichst klein halten und verzichtet dann eben auf alles, was nicht wirklich essentiell ist. Du solltest die Tools aber per apt install ... für den aktuell laufenden Container nachrüsten können.

Mich würde aber auch interessieren, ob ein LDAP-Bind/-Search vom UCS Host aus geht:

ldapsearch -LLL -ZZ \
  -h nextCloud.name.local -p 7389 \
  -D cn=nextc-42463691,cn=memberserver,cn=computers,dc=name,dc=local \
  -w <Passwort-aus-/etc/machine.secret-im-Container> \
  '(&(objectclass=nextcloudUser)(nextcloudEnabled=1))' dn

Das sollte eine Liste der Nextcloud-User zurückgeben.

Schönen Gruß,
Michael Grandjean


#5

Hallo Michael,

ups ... das wirft folgenden Fehler:
ldap_bind: Invalid credentials (49)

In die Richtung hatte ich auch mit der vorherigen Fehlermeldung schon getippt, aber warum?

Gruß, Christian.


#6

Hm :thinking:, also mit der seit letzter Woche verfügbaren Version der Nextcloud-App sollte es so funktionieren:

  • App Center erstellt Rechnerkonto cn=nextc-42463691 für den Docker Container, inkl. Passwort
  • Passwort wird im Container als /etc/machine.secret abgelegt
    • Wichtig: /etc/machine.secret im Container unterscheidet sich von /etc/machine.secret auf dem UCS Host
  • Das Joinscript 50nextcloud.inst konfiguriert den Inhalt der Datei /etc/machine.secret aus dem Container als LDAP-Bind-PW und den DN des Rechnerkontos als LDAP-Bind-User

→ Ist im join.log (auf dem Host) irgendetwas Auffälliges zu sehen?
→ Welche Version hat das Joinscript? (grep ^VERSION= /usr/lib/univention-install/50nextcloud.inst)


#7

Hallo Michael,

VIELEN DANK!

Das Problem ist gelöst, man muss eben auch das richtige machine.secret verwenden :slight_smile:
(Das Join-Skript hat Version 2)

Viele Grüße, Christian.