LDAP
Übersicht
Externe LDAP-Authentifizierung kann verwendet werden, um Benutzernamen und Passwörter zu überprüfen.
Die LDAP-Authentifizierung von Zabbix funktioniert mindestens mit Microsoft Active Directory und OpenLDAP.
Wenn nur die LDAP-Anmeldung konfiguriert ist, muss der Benutzer auch in Zabbix vorhanden sein, sein Zabbix-Passwort wird jedoch nicht verwendet. Wenn die Authentifizierung erfolgreich ist, gleicht Zabbix einen lokalen Benutzernamen mit dem von LDAP zurückgegebenen Attribut für den Benutzernamen ab.
Benutzerbereitstellung
Es ist möglich, die JIT-Benutzerbereitstellung (Just-in-Time) für LDAP-Benutzer zu konfigurieren. In diesem Fall muss ein Benutzer nicht bereits in Zabbix vorhanden sein. Das Benutzerkonto kann erstellt werden, wenn sich der Benutzer zum ersten Mal bei Zabbix anmeldet.
Wenn ein LDAP-Benutzer seinen LDAP-Benutzernamen und sein LDAP-Passwort eingibt, prüft Zabbix, ob dieser Benutzer auf dem Standard-LDAP-Server vorhanden ist. Wenn der Benutzer vorhanden ist und noch kein Konto in Zabbix besitzt, wird ein neuer Benutzer in Zabbix erstellt und der Benutzer kann sich anmelden.
Ein über JIT-Bereitstellung erstellter Benutzer wird dem LDAP-Server (Verzeichnis) zugeordnet, der zum Zeitpunkt der Erstellung als Standard festgelegt ist. Wenn der Standard-LDAP-Server später geändert wird, wird der mit bereits bereitgestellten Benutzern verknüpfte LDAP-Server nicht geändert oder aktualisiert.
Wenn die JIT-Bereitstellung aktiviert ist, muss auf der Registerkarte Authentifizierung eine Benutzergruppe für Benutzer angegeben werden, deren Bereitstellung aufgehoben wurde.
Die JIT-Bereitstellung ermöglicht außerdem, bereitgestellte Benutzerkonten auf Grundlage von Änderungen in LDAP zu aktualisieren. Wenn ein Benutzer beispielsweise von einer LDAP-Gruppe in eine andere verschoben wird, wird der Benutzer auch in Zabbix von einer Gruppe in eine andere verschoben. Wenn ein Benutzer aus einer LDAP-Gruppe entfernt wird, wird er auch in Zabbix aus der Gruppe entfernt und, sofern er keiner anderen Gruppe angehört, der Benutzergruppe für Benutzer hinzugefügt, deren Bereitstellung aufgehoben wurde. Bereitgestellte Benutzerkonten werden entsprechend dem konfigurierten Bereitstellungsintervall oder bei der Anmeldung des Benutzers bei Zabbix aktualisiert.
Beachten Sie, dass die Hintergrundbereitstellung vom Zabbix Frontend durchgeführt wird, wenn der Benutzer damit interagiert oder zumindest eine Frontend-Seite im Browser geöffnet hat. Für die Benutzerbereitstellung gibt es keine dedizierten Hintergrundprozesse.
LDAP unterstützt drei Möglichkeiten, eine Bindung an das Verzeichnis für die Authentifizierung und für Suchvorgänge herzustellen:
- Anonyme Bindung – es werden kein Bind DN und kein Bind-Passwort angegeben und der LDAP-Server erlaubt anonyme Abfragen.
- Dedizierter Bind-Benutzer (Dienstkonto) – ein bestimmtes LDAP-Konto wird unter Bind DN / Bind-Passwort festgelegt und von Zabbix für Suchvorgänge und die Bereitstellung verwendet. Dies ist die empfohlene und flexibelste Option, da Zabbix Suchvorgänge und Hintergrundbereitstellungen ohne die Anmeldedaten des Endbenutzers durchführen kann.
- Direkte Benutzerbindung – Zabbix stellt die Bindung mit den Anmeldedaten her, die der Benutzer bei der Anmeldung eingibt (kein Bind DN / Bind-Passwort konfiguriert). Dies wird konfiguriert, indem ein Platzhalter wie
uid=%{user}in der Basis-DN angegeben wird. In diesem Modus hat Zabbix nur während der interaktiven Anmeldung Zugriff auf das Passwort des Benutzers. Daher können Bereitstellungsaktionen, die eine Authentifizierung bei LDAP außerhalb der Anmeldesitzung des Benutzers erfordern (beispielsweise über die Schaltfläche Jetzt bereitstellen oder beim Ausführen einer Hintergrundbereitstellung, wenn der Benutzer nicht aktiv angemeldet ist), keine Authentifizierung durchführen und funktionieren daher nicht. Die Bereitstellung und Aktualisierung bei direkter Benutzerbindung erfolgt nur zu dem Zeitpunkt, an dem sich der Benutzer anmeldet.
Mehrere Server
Bei Bedarf können mehrere LDAP-Server definiert werden. So kann beispielsweise ein anderer Server verwendet werden, um eine andere Benutzergruppe zu authentifizieren. Sobald LDAP-Server konfiguriert sind, kann in der Konfiguration der Benutzergruppe der erforderliche LDAP-Server für die jeweilige Benutzergruppe ausgewählt werden.
Wenn ein Benutzer mehreren Benutzergruppen und mehreren LDAP-Servern angehört, wird für die Authentifizierung der erste Server in der nach Namen aufsteigend sortierten Liste der LDAP-Server verwendet.
Konfiguration

Konfigurationsparameter:
| Parameter | Beschreibung |
|---|---|
| LDAP-Authentifizierung aktivieren | Aktivieren Sie das Kontrollkästchen, um die LDAP-Authentifizierung zu aktivieren. |
| JIT-Bereitstellung aktivieren | Aktivieren Sie das Kontrollkästchen, um die JIT-Bereitstellung zu aktivieren. |
| Server | Klicken Sie auf Hinzufügen, um einen LDAP-Server zu konfigurieren (siehe LDAP-Serverkonfiguration weiter unten). |
| Anmeldung unter Beachtung der Groß-/Kleinschreibung | Deaktivieren Sie das Kontrollkästchen, um die Beachtung der Groß-/Kleinschreibung bei Benutzernamen zu deaktivieren (standardmäßig aktiviert). Wenn die Beachtung der Groß-/Kleinschreibung deaktiviert ist, ist beispielsweise eine Anmeldung als „admin“ möglich, auch wenn der Zabbix-Benutzer „Admin“ oder „ADMIN“ lautet. Beachten Sie, dass die Anmeldung für Benutzer immer mit der folgenden Fehlermeldung abgelehnt wird, wenn die Beachtung der Groß-/Kleinschreibung deaktiviert ist und mehrere Zabbix-Benutzer mit ähnlichen Benutzernamen vorhanden sind (z. B. Admin und admin): „Authentication failed: supplied credentials are not unique.“ |
| Bereitstellungszeitraum | Legen Sie den Bereitstellungszeitraum fest, d. h. wie oft der angemeldete Benutzer während der Arbeit mit dem Frontend bereitgestellt wird. |
LDAP-Server-Konfiguration

Parameter der LDAP-Server-Konfiguration:
| Parameter | Beschreibung |
|---|---|
| Name | Name des LDAP-Servers in der Zabbix-Konfiguration. |
| Host | Hostname, IP-Adresse oder URI des LDAP-Servers. Beispiele: ldap.example.com, 127.0.0.1, ldap://ldap.example.com Für einen sicheren LDAP-Server verwenden Sie das Protokoll ldaps und den Hostnamen. Beispiel: ldaps://ldap.example.com Mit OpenLDAP 2.x.x und höher kann eine vollständige LDAP-URI der Form ldap://hostname:port oder ldaps://hostname:port verwendet werden. |
| Port | Port des LDAP-Servers. Der Standardwert ist 389. Für eine sichere LDAP-Verbindung wird normalerweise die Portnummer 636 verwendet. Wird bei Verwendung vollständiger LDAP-URIs nicht verwendet. |
| Base DN | Basispfad zu den Benutzerkonten im LDAP-Server: ou=Users,ou=system (für OpenLDAP), DC=company,DC=com (für Microsoft Active Directory) uid=%{user},dc=example,dc=com (für direkte Benutzerbindung, siehe Hinweis unten) |
| Search attribute | LDAP-Kontoattribut, das für die Suche verwendet wird: uid (für OpenLDAP), sAMAccountName (für Microsoft Active Directory) |
| Bind DN | LDAP-Konto für die Bindung und Suche auf dem LDAP-Server, Beispiele: uid=ldap_search,ou=system (für OpenLDAP), CN=ldap_search,OU=user_group,DC=company,DC=com (für Microsoft Active Directory) Anonyme Bindungen werden ebenfalls unterstützt. Beachten Sie, dass eine anonyme Bindung die Domänenkonfiguration potenziell für nicht autorisierte Benutzer öffnet (Informationen über Benutzer, Computer, Server, Gruppen, Dienste usw.). Deaktivieren Sie aus Sicherheitsgründen anonyme Bindungen auf LDAP-Hosts und verwenden Sie stattdessen einen authentifizierten Zugriff. |
| Bind password | LDAP-Passwort des Kontos für die Bindung und Suche auf dem LDAP-Server. |
| Description | Beschreibung des LDAP-Servers. |
| Configure JIT provisioning | Aktivieren Sie dieses Kontrollkästchen, um Optionen für die JIT-Bereitstellung anzuzeigen. |
| Group configuration | Wählen Sie die Methode für die Gruppenkonfiguration aus: memberOf – durch die Suche nach Benutzern und deren Gruppenmitgliedschaftsattribut groupOfNames – durch die Suche nach Gruppen über das member-Attribut Beachten Sie, dass memberOf vorzuziehen ist, da es schneller ist. Verwenden Sie groupOfNames, wenn Ihr LDAP-Server memberOf nicht unterstützt oder eine Gruppenfilterung erforderlich ist. |
| Group name attribute | Geben Sie das Attribut an, aus dem der Gruppenname aller Objekte im memberOf-Attribut abgerufen wird (siehe das Feld User group membership attribute).Der Gruppenname ist für die Zuordnung von Benutzergruppen erforderlich. |
| User group membership attribute | Geben Sie das Attribut an, das Informationen über die Gruppen enthält, denen der Benutzer angehört (z. B. memberOf).Das memberOf-Attribut kann beispielsweise Informationen wie diese enthalten: memberOf=cn=zabbix-admin,ou=Groups,dc=example,dc=comDieses Feld ist nur für die memberOf-Methode verfügbar. |
| User name attribute | Geben Sie das Attribut an, das den Vornamen des Benutzers enthält. |
| User last name attribute | Geben Sie das Attribut an, das den Nachnamen des Benutzers enthält. |
| User group mapping | Ordnen Sie ein LDAP-Benutzergruppenmuster einer Zabbix-Benutzergruppe und Benutzerrolle zu. Dies ist erforderlich, um zu bestimmen, welche Benutzergruppe bzw. Rolle der bereitgestellte Benutzer in Zabbix erhält. Klicken Sie auf Add, um eine Zuordnung hinzuzufügen. Das Feld LDAP group pattern unterstützt Platzhalter (siehe Hinweis unten). Der Gruppenname muss mit einer vorhandenen Gruppe übereinstimmen. Wenn ein LDAP-Benutzer mehreren Zabbix-Benutzergruppen entspricht, wird er Mitglied aller dieser Gruppen. Wenn ein Benutzer mehreren Zabbix-Butzerrollen entspricht, erhält er die Rolle mit der höchsten Berechtigungsstufe. |
| Media type mapping | Ordnen Sie die LDAP-Medien-Attribute des Benutzers (z. B. E-Mail) den Zabbix-Benutzermedien für den Versand von Benachrichtigungen zu (der Attributwert wird als Feld Send to des Benutzermediums verwendet). |
| Advanced configuration | Klicken Sie auf die Überschrift Advanced configuration, um erweiterte Konfigurationsoptionen anzuzeigen (siehe unten). |
| StartTLS | Aktivieren Sie das Kontrollkästchen, um beim Herstellen der Verbindung zum LDAP-Server die StartTLS-Operation zu verwenden. Die Verbindung schlägt fehl, wenn der Server StartTLS nicht unterstützt. StartTLS kann nicht mit Servern verwendet werden, die das Protokoll ldaps verwenden. |
| Search filter | Definieren Sie eine benutzerdefinierte Zeichenfolge für die Authentifizierung eines Benutzers in LDAP. Die folgenden Platzhalter werden unterstützt:%{attr} – Name des Suchattributs (uid, sAMAccountName)%{user} – Benutzername des zu authentifizierenden BenutzersUm beispielsweise eine Suche mit Beachtung der Groß-/Kleinschreibung in einer LDAP- oder Microsoft-Active-Directory-Umgebung ohne Beachtung der Groß-/Kleinschreibung durchzuführen, kann die Zeichenfolge wie folgt definiert werden: (%{attr}:caseExactMatch:=%{user}).Wenn der Filter nicht angepasst wird, verwendet LDAP den Standardwert: (%{attr}=%{user}). |
Um einen LDAP-Server für die direkte Benutzerbindung zu konfigurieren, fügen Sie dem Parameter Base DN ein Attribut uid=%{user} hinzu (zum Beispiel uid=%{user},dc=example,dc=com) und lassen Sie die Parameter BindDN und Bind password leer.
Bei der Authentifizierung wird der Platzhalter %{user} durch den beim Anmelden eingegebenen Benutzernamen ersetzt.
Bei der direkten Benutzerbindung hat Zabbix nur während der interaktiven Anmeldung Zugriff auf die Anmeldedaten des Benutzers.
Daher ignorieren Bereitstellungsaufgaben, die ohne interaktive Anmeldung ausgeführt werden (zum Beispiel die Schaltfläche Provision now oder die API-Methode user.provision), Benutzer, die sich über eine direkte Benutzerbindung authentifizieren, da Zabbix nicht in deren Namen eine Bindung herstellen kann.
Verwenden Sie eine anonyme Bindung oder einen dedizierten Bindungsbenutzer (Dienstkonto), wenn Bereitstellung und LDAP-Suchen vom Frontend aus funktionieren sollen, ohne dass der Endbenutzer angemeldet sein muss.
Im Feld LDAP group pattern verhält sich der Platzhalter * wie .* in regulären Ausdrücken und entspricht null oder mehr Zeichen.
Das Muster *Demo*Admin entspricht beispielsweise sowohl den LDAP-Gruppen WebDemoSuperAdmin als auch WebDemoAdmin.
Das Muster muss mit dem gesamten Gruppennamen übereinstimmen. Daher entspricht Demo*Admin (ohne führendes *) keiner dieser Gruppen.
Die folgenden Felder gelten speziell für "groupOfNames" als Methode Group configuration:

| Parameter | Beschreibung |
|---|---|
| Group base DN | Basispfad zu den Gruppen im LDAP-Server. |
| Group name attribute | Geben Sie das Attribut an, aus dem der Gruppenname im angegebenen Basispfad zu den Gruppen abgerufen wird. Der Gruppenname ist für die Zuordnung von Benutzergruppen erforderlich. |
| Group member attribute | Geben Sie das Attribut an, das Informationen über die Mitglieder der Gruppe in LDAP enthält (z. B. member). |
| Reference attribute | Geben Sie das Referenzattribut für den Gruppenfilter an (siehe das Feld Group filter). Verwenden Sie anschließend %{ref} im Gruppenfilter, um Werte für das hier angegebene Attribut abzurufen. |
| Group filter | Geben Sie den Filter an, mit dem die Gruppe abgerufen wird, der der Benutzer angehört. Beispielsweise entspricht (member=uid=%{ref},ou=Users,dc=example,dc=com) dem Benutzer „User1“, wenn das member-Attribut der Gruppe uid=User1,ou=Users,dc=example,dc=com lautet, und gibt die Gruppe zurück, der „User1“ angehört. |
Bei Problemen mit Zertifikaten müssen Sie möglicherweise eine Zeile TLS_REQCERT allow zur Konfigurationsdatei /etc/openldap/ldap.conf hinzufügen, damit eine sichere LDAP-Verbindung (ldaps) funktioniert.
Dies kann die Sicherheit der Verbindung zum LDAP-Katalog verringern.
Es wird empfohlen, ein separates LDAP-Konto (Bind DN) mit minimalen LDAP-Berechtigungen für die Bindung und Suche auf dem LDAP-Server zu erstellen, anstatt echte Benutzerkonten zu verwenden (die für die Anmeldung am Zabbix-Frontend verwendet werden).
Dieser Ansatz bietet mehr Sicherheit und macht es nicht erforderlich, das Bind password zu ändern, wenn der Benutzer sein eigenes Passwort im LDAP-Server ändert.
In der obigen Tabelle handelt es sich dabei um den Kontonamen ldap_search.
Zugriff testen
Mit der Schaltfläche Test können Sie den Benutzerzugriff testen:
| Parameter | Beschreibung |
|---|---|
| Login | Zu testender LDAP-Benutzername (mit dem aktuellen Benutzernamen aus dem Zabbix Frontend vorausgefüllt). Dieser Benutzername muss auf dem LDAP-Server vorhanden sein. Zabbix aktiviert die LDAP-Authentifizierung nicht, wenn der Testbenutzer nicht authentifiziert werden kann. |
| User password | Zu testendes LDAP-Benutzerpasswort. |