Automatische LDAP-Konfiguration

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 von cmk-member eingetragen
  • cmk-ro → als Subgruppe von cmk-member eingetragen

User (AD)

  • User1 ist Mitglied von Gruppe cmk-admin
  • User2 ist Mitglied von Gruppe cmk-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 von Groups trotz Angabe der expliziten Base DN mit CN=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 bei Handle nested Group memberships dann letztendlich bei den Additional Sync Plugin-Einstellungen bemerkt, dass cmk-admin und cmk-ro verschachtelte Gruppen von cmk-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

Also, soweit ich das noch in Erinnerung habe bedeuted dass: wenn GruppeA die GruppeB als “member” hat, dann werden quasie die Mitglieder der GruppeB wie die Mitglieder der GruppeA behandelt. D.h. alle Mitglieder der GruppeA und GruppeB werden der Kontaktruppe GruppeA zugewiesen.

Das hängt von der Einstellung “Create users only on login” ab. Wenn das aktiviert ist, wird die Zuweisung erst erfolgen nach dem der user sich das erste Mal angemeldet hat und danach der LDAP sync gelaufen ist, da er ja vorher nicht bekannt ist.
Im Monitoring sind die Einstellungen auch erst nach dem anschließenden Aktivieren verfügbar.

Gruß

Michael

Ich verstehe was Sie meinen, an der Stelle möchte ich mal auf den Satz aus der Doku zurück kommen.
Ihre Antwort sagt quasi:
GruppeB ist Mitglied von GruppeA, dann werden Mitglieder von Gruppe B der Kontaktgruppe A zugewiesen. Sprich bei Nested Groups ist die oberste Gruppe relevant.

Die hier drunter zitierte Antwort beschreibt im Absatz nested groups folgendes
Gruppe oracle_admins ist Mitglied von Gruppe cmk-user. Von dem Textabschnitt oben drüber (da es dort auch um die Gruppe oracle_admins geht) würde ich dann dennoch erwarten, dass die Zuordnung anhand von dieser Gruppe erfolgt.

Wenn das jedoch so ist, wie Sie schreiben, dann würde ich mir für die Dokumentation wünschen, dass das dort ebenfalls so erwähnt wird.

LDAP-Manual-Page CMK 2.0

.... Damit eine Zuordnung klappt, muss der Name (cn) der Gruppe auf dem LDAP-Server identisch mit dem in Checkmk sein, das heißt, die Kontaktgruppe oracle_admins wird nur korrekt einem Benutzer zugeordnet, wenn dieser auch im LDAP in der Gruppe oracle_admins ist. 

Nested Groups
Checkmk bietet — im Moment nur für Active Directory — die Möglichkeit, auch vererbte Gruppen zu nutzen. Aktivieren Sie diese Option, wenn z.B. Ihr Benutzer in der Gruppe oracle_admins ist und diese Gruppe wiederum Mitglied in cmk-user .

Die Frage von mir zielste quasi darauf ab, weshalb die Zuordnung generell mit meinen Configs nicht funktioniert, dass die Sachen erst bei Login kämen, ist klar, dennoch danke!

Grüße
Lukas

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed. Contact an admin if you think this should be re-opened.