Problem mit AD Sync und nested groups

Hallo,
Version: 1.6.0p7
AD: Microsoft Active Directory

ich habe im AD eine Gruppe “checkmk_read_only”, darin habe ich weitere Gruppen, z.b. rewe_storage oder rewe_aix. Jetzt möchte ich zum einen, dass alle User in den Gruppen, bzw. den Untergruppen im checkmk angelegt werden und zum anderen will ich auch noch Rollen mappen. Die Untergruppen werden allerdings nicht aufgelöst… auch beim Setzen des Hakens “Nested Groups” nicht. Verstehe ich das Nested Groups Feature falsch oder mache ich sonst irgendetwas falsch?

VG und danke vorab,
Christian

Ich denke dein Problem ist, dass die User schon gar nicht gefunden werden welche sich in den nested groups befinden oder?
Falls das so ist musst du denn Search Filter für die User noch etwas erweitern.
Dort steht bei dir ja “member of=cn=…”.
Dies muss geändert werden in
memberOf:1.2.840.113556.1.4.1941:=cn=…
Damit sollten auch die nested groups durchsucht werden.

2 Likes

Hi @andreas-doehler,
ja genau, einzelne User werden gefunden, aber User die sich in nested groups befinden, nicht. Ich habe den Users Search Filter nun angepasst, das Testen der LDAP Verbindung war auch erfolgreich, aber wenn ich danach auf Sync Users klicke, erhalte ich diese exception:

Synchronization started…
[htpasswd] Starting sync for connection
[htpasswd] Finished sync for connection
[KADS] Starting sync for connection
[KADS] Exception: Unable to successfully perform the LDAP search ()
2019-12-19 15:21:02,422 [40] [cmk.web 23607] Exception (KADS, userdb_job): Traceback (most recent call last):
File “/omd/sites/dev_master/lib/python/cmk/gui/userdb.py”, line 1380, in _execute_sync_action
connection.do_sync(add_to_changelog=add_to_changelog, only_username=False)
File “/omd/sites/dev_master/lib/python/cmk/gui/plugins/userdb/ldap_connector.py”, line 1154, in do_sync
ldap_users = self.get_users()
File “/omd/sites/dev_master/lib/python/cmk/gui/plugins/userdb/ldap_connector.py”, line 793, in get_users
self._config[‘user_scope’]):
File “/omd/sites/dev_master/lib/python/cmk/gui/plugins/userdb/ldap_connector.py”, line 646, in _ldap_search
_(‘Unable to successfully perform the LDAP search (%s)’) % last_exc)
MKLDAPException: Unable to successfully perform the LDAP search ()

Finalizing synchronization
The user synchronization completed successfully.

Ich hatte in den User Filter nun “memberOf:1.2.840.113556.1.4.1941:=CN=checkmk-admins,OU=Di…” eingetragen. Vorher hatte ich darin stehen “memberOf=CN=checkmk-admins,OU=Dis…”

Sagt dir der Fehler etwas?
VG
Christian

Hab es jetzt zumindest in einem LDAP Browser hinbekommen, probiere es morgen im checkmk aus. Melde mich.

Hab vorsichtshalber nochmal geschaut wegen Tippfehler usw.

memberOf:1.2.840.113556.1.4.1941:=CN=groupname,...
Sollte also passen.

HI @andreas-doehler,
so, ich habe heute nochmal den User-Suchfilter getestet, der sieht nun wie folgt aus:
(&(objectClass=user)(objectcategory=person)(|(memberOf:1.2.840.113556.1.4.1941:=CN=checkmk-read-only,OU=foo,OU=bar)(memberOf:1.2.840.113556.1.4.1941:=CN=checkmk-admins,OU=foo,OU=bar)(memberOf:1.2.840.113556.1.4.1941:=CN=checkmk-user,OU=foo,OU=bar)))

In einem LDAP Abfrage-Tool funktioniert das auch genau so, wie ich es gerne hätte.
Aber im checkmk erhalte ich folgende Fehler:

image

Synchronization started...
[KADS] Starting sync for connection
[KADS] Exception: Unable to successfully perform the LDAP search ()
2020-01-06 15:43:12,669 [40] [cmk.web 102964] Exception (KADS, userdb_job): Traceback (most recent call last):
  File "/omd/sites/rewe_poc/lib/python/cmk/gui/userdb.py", line 1380, in _execute_sync_action
    connection.do_sync(add_to_changelog=add_to_changelog, only_username=False)
  File "/omd/sites/rewe_poc/lib/python/cmk/gui/plugins/userdb/ldap_connector.py", line 1154, in do_sync
    ldap_users = self.get_users()
  File "/omd/sites/rewe_poc/lib/python/cmk/gui/plugins/userdb/ldap_connector.py", line 793, in get_users
    self._config['user_scope']):
  File "/omd/sites/rewe_poc/lib/python/cmk/gui/plugins/userdb/ldap_connector.py", line 646, in _ldap_search
    _('Unable to successfully perform the LDAP search (%s)') % last_exc)
MKLDAPException: Unable to successfully perform the LDAP search ()

Finalizing synchronization
The user synchronization completed successfully.

Noch Ideen dazu? :frowning:
Danke vorab!
Christian

Hi,
so es funktioniert nun. Es ist ein wenig peinlich…aber es lag am response timeout. :man_facepalming: :man_facepalming: :man_facepalming:

Ich habe immer nur den connect timeout hoch gesetzt und nicht gesehen, dass es noch einen response timeout gab. Da die Abfrage von nested Groups natürlich deutlich länger dauert, musste ich den Wert erhöhen.

Viele Grüße
Christian

1 Like

Schön zu hören :slight_smile:
Wusste schon nicht mehr was ich schreiben kann. Der Timeout bei nested Groups kann durchaus sehr sehr hoch sein. AD mit 30k Nutzern hat eine nested Group schon mal 1-2 Minuten gedauert.

Eigentlich geht es bei uns noch relativ fix. Wir haben 300k User im AD und die Suche dauert bisher 31 Sekunden. Mal sehen, wie sich das zukünftig noch entwickelt.
Danke auf jeden Fall für die Hilfe :slight_smile: