Hallo zusammen,
aktuell versuche ich den LDAP-Login für Check-MK zu konfigurieren.
Dabei möchte ich, dass Nutzern eine Kontaktgruppe und eine Rolle zugewiesen wird, die ich vorab konfiguriert habe.
Erstmal eine Übersicht:
Rollen
Name: cmk-admin
, Alias: ldap-admin-role
Name: cmk-ro
, Alias: ldap-ro-role
Kontaktgruppe
cmk-admin
, Alias: ldap-admin-contact-group
Für cmk-ro besteht keine Kontaktgruppe, ich möchte erstmal erreichen, dass ein Admin-User automatisch konfiguriert werden kann, sprich bei einem ReadOnly-User soll nur die Rolle zugewiesen werden.
LDAP (AD)
- es besteht eine User-OU
- es besteht eine Gruppen-OU
In der Gruppen-OU existieren folgende Gruppen:
cmk-member
-
cmk-admin
→ als Subgruppe voncmk-member
eingetragen -
cmk-ro
→ als Subgruppe voncmk-member
eingetragen
User (AD)
-
User1
ist Mitglied von Gruppecmk-admin
-
User2
ist Mitglied von Gruppecmk-ro
Zielszenario
User1
loggt sich ein und wird der Kontaktgruppe cmk-admin
und der Rolle cmk-admin
zugewiesen, da er Mitglied der Gruppe cmk-admin
im AD ist.
Bisheriges Vorgehen:
Ich habe folgende Konfiguration getestet:
Die LDAP-Connection-Einstellungen lasse ich mal aus, die funktionieren.
Users
Base DN: OU=User,OU=Abteilung,DC=erfunden,DC=de
Search filter: (&(objectclass=user)(memberof:1.2.840.113556.1.4.1941:=CN=cmk-member,OU=Gruppen,DC=erfunden,DC=de))
-> Damit nur User gequeried werden, die rekursiv auch Mitglied der Gruppe cmk-member sind
User-ID attribute: samaccountname
Außerdem ist der Haken gesetzt, dass die Benutzer beim ersten Login erstellt werden.
Resultat beim Test
Wenn ich die Konfiguration teste, werden genau 2 User gefunden (… von insgesamt über 500 ohne den memberOf-Filter), prima bis hierher.
Connection Success Connection established. The connection settings seem to be ok.
User Base-DN Success The User Base DN could be found.
Count Users Success Found 2 users for synchronization.
Groups
Config 1:
Base DN: CN=cmk-member,OU=Gruppen,DC=erfunden,DC=de
Scope: Search whole subtree below the base DN
Suchfilter: (&(objectclass=group))
Member Attribut: member
Resultat beim Test
Group Base-DN Success The Group Base DN could be found.
Count Groups Success Found 1 groups for synchronization.
→ Hier wird nun nur eine Gruppe gefunden, klar - ich habe auch auch explizit CN=cmk-member
gesetzt.
Ich denke hier schafft noch Abhilfe, wenn ich CN=cmk-member
von der BaseDN entferne und den Suchfilter wiefolgt anpasse:
Config 2:
Base DN: OU=Gruppen,DC=erfunden,DC=de
Scope: Search whole subtree below the base DN
Suchfilter: (&(objectclass=group)(cn=cmk*))
Member Attribut: member
Neues Resultat
Group Base-DN Success The Group Base DN could be found.
Count Groups Success Found 3 groups for synchronization.
Attribute Sync Plugins
Contactgroup Membership
(x) Handle nested group memberships
An diesem Punkt Frage 1
-
Handle nested group memberships
hätte ich hier nur gesetzt, wenn bei der ersten Konfiguration vonGroups
trotz Angabe der expliziten Base DN mitCN=cmk-member
alle 3 Gruppen gefunden worden wären. Mit der angepassten Konfiguration findet er ja ohnehin alle 3 Gruppen und braucht die Verschachtelung meiner Ansicht nach nicht mehr zu betrachten.
Ergebnisse
Groups Config 1 + (x) handle nested group memberships (Contactgroup) in Attribute Sync Plugin
Ich mache einen Login mit User1
, jedoch sind die Contact Groups nach Login leer, none
ist in der Benutzerübersicht gesetzt. Die Contact-Group-Zuweisung hat also dennoch nicht funktioniert, obwohl die Contact Group exakt so heißt, wie die Gruppe im AD.
Bei einer manuellen Synchroniserung unter Setup → Users
cmk.gui.plugins.userdb.ldap_connector.MKLDAPException: Unable to synchronize nested groups (Found no common base DN for user base DN "OU=User,OU=Abteilung,DC=erfunden,DC=de" and group base DN "CN=cmk-member,OU=Gruppen,DC=erfunden,DC=de")
Groups Config 2 + ( ) handle nested group memberships (Contactgroup) in Attribute Sync Plugin
Die Kontaktgruppe cmk-admin
wird dem User zugewiesen, es wird in der Benutzerübersicht der Alias ldap-admin-contact-group
angezeigt. Jedoch wird hier nicht mehr mit nested Groups gearbeitet, wie eigentlich angestrebt.
Roles
Natürlich habe ich auch etwas mit den Rollen herumprobiert und als DNs entsprechend
CN=cmk-admin,OU=Gruppen,DC=erfunden,DC=de
und
CN=cmk-ro,OU=Gruppen,DC=erfunden,DC=de
gesetzt, dabei jeweils die Haken (x)ldap-ro-role (x)ldap-admin-role
gesetzt. Hierbei ist auffällig, dass hier der Alias verwendet wird und nicht der Rollennamen.
Auch hier wäre mir in der 2. Konfiguration des Groups-Bereich ohne Angabe der CN bei der BaseDN schleierhaft, weshalb man (x) Handle nested groups
setzen sollte.
Wie auch vorhin: Lasse ich bei Config 2 der Groups den Haken weg bei Handle nested groups
und gebe die entsprechenden DNs an, funktioniert die Zuweisung vollständig, aber leider ebenfalls nicht wie eigentlich angestrebt.
Abschließende Fragen
- Was verstehe ich bei Nested Groups falsch? Ich verstand es eigentlich so, dass man die 1. Config von
Groups
verwenden kann und der Haken beiHandle nested Group memberships
dann letztendlich bei den Additional Sync Plugin-Einstellungen bemerkt, dasscmk-admin
undcmk-ro
verschachtelte Gruppen voncmk-member
sind und daraufhin die Kontaktgruppe und Rollen zuweist. - Warum werden die Kontaktgruppen und Rollen nicht automatisch bei Login mit der gezeigten Konfiguration zugewiesen?
Für Hilfe dazu wäre ich dankbar.
Grüße
Lukas