SAML-Einrichtung mit OneLogin
Übersicht
Dieser Abschnitt enthält Richtlinien für die Konfiguration von Single Sign-on und der Benutzerbereitstellung in Zabbix aus OneLogin mithilfe der SAML-2.0-Authentifizierung.
OneLogin-Konfiguration
Erstellen einer Anwendung
1. Melden Sie sich bei Ihrem Konto bei OneLogin an. Zu Testzwecken können Sie in OneLogin ein kostenloses Entwicklerkonto erstellen.
2. Navigieren Sie in der OneLogin-Weboberfläche zu Applications > Applications.
3. Klicken Sie auf "Add App" und suchen Sie nach der passenden App. Die Richtlinien auf dieser Seite basieren auf dem App-Beispiel SCIM Provisioner with SAML (SCIM v2 Enterprise, full SAML).
4. Zunächst möchten Sie möglicherweise den Anzeigenamen Ihrer App anpassen. Möglicherweise möchten Sie auch das Symbol und die App-Details hinzufügen. Klicken Sie danach auf Save.
SSO-/SCIM-Bereitstellung einrichten
1. Navigieren Sie zu Configuration > Application details und legen Sie den Zabbix-Endpunkt für einmaliges Anmelden http://<zabbix-instance-url>/zabbix/index_sso.php?acs als Wert für die folgenden Felder fest:
- ACS (Consumer) URL Validator
- ACS (Consumer) URL
Beachten Sie die Verwendung von „http“ und nicht „https“, damit der Parameter acs nicht aus der Anfrage entfernt wird.

Es ist auch möglich, „https“ zu verwenden.
Damit dies mit Zabbix funktioniert, fügen Sie der Frontend-Konfigurationsdatei (zabbix.conf.php) die folgende Zeile hinzu:
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
Belassen Sie die anderen Optionen bei ihren Standardwerten.
2. Navigieren Sie zu Configuration > API connection und legen Sie die folgenden Werte fest:
- SCIM Base URL:
https://<zabbix-instance-url>/zabbix/api_scim.php - SCIM JSON Template: Muss alle benutzerdefinierten Attribute enthalten, die Sie über SCIM an Zabbix übergeben möchten, z. B.
user_name,user_lastname,user_emailunduser_mobile:
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"userName": "{$parameters.scimusername}",
"name": {
"familyName": "{$user.lastname}",
"givenName": "{$user.firstname}"
},
"user_name": "{$user.firstname}",
"user_lastname": "{$user.lastname}",
"user_mobile": "{$user.phone}",
"user_email": "{$user.email}"
}
Die Attributnamen sind beliebig. Es können andere Attributnamen verwendet werden. Sie müssen jedoch mit dem jeweiligen Feldwert in den Zabbix-SAML-Einstellungen übereinstimmen.
Beachten Sie, dass OneLogin für die Benutzerbereitstellung in der Antwort ein Attribut „name“ mit „givenName“ und „familyName“ empfangen muss, auch wenn dies vom Dienstanbieter nicht angefordert wurde. Daher muss dies im Schema im Abschnitt für die Anwendungskonfiguration angegeben werden.
- SCIM Bearer Token: Geben Sie ein Zabbix-API-Token mit Super-Admin-Berechtigungen ein.
Klicken Sie auf Enable, um die Verbindung zu aktivieren.

3. Aktivieren Sie auf der Seite Provisioning die Option Provisioning:

4. Die Seite Parameters enthält eine Liste der Standardparameter:
- Stellen Sie sicher, dass „scimusername“ mit dem Benutzeranmeldewert in OneLogin übereinstimmt (z. B. der E-Mail-Adresse).
- Aktivieren Sie für den Parameter „Groups“ die Option Include in User Provisioning.
- Klicken Sie auf „+“, um die für SAML-Assertions und die Benutzerbereitstellung erforderlichen benutzerdefinierten Parameter zu erstellen, z. B.
user_name,user_lastname,user_emailunduser_mobile:

Achten Sie beim Hinzufügen eines Parameters darauf, sowohl die Optionen Include in SAML assertion als auch Include in User Provisioning zu aktivieren.
- Fügen Sie einen Parameter „group“ hinzu, der den Benutzerrollen in OneLogin entspricht.
Die Benutzerrollen werden als durch ein Semikolon
;getrennte Zeichenfolge übergeben. Die OneLogin-Benutzerrollen werden zum Erstellen von Benutzergruppen in Zabbix verwendet:

Überprüfen Sie die Liste der Parameter:

5. Erstellen Sie auf der Seite Rules Benutzerrollenzuordnungen zum Standardparameter „Groups“.

Sie können einen regulären Ausdruck verwenden, um bestimmte Rollen als Gruppen zu übergeben.
Die Rollennamen dürfen kein ; enthalten, da OneLogin dieses Zeichen als Trennzeichen verwendet, wenn ein Attribut mit mehreren Rollen gesendet wird.
6. Laden Sie das IdP-Zertifikat herunter. Legen Sie die Berechtigungen mit folgendem Befehl auf 644 fest:
chmod 644 idp.crt
Zabbix-Konfiguration
1. Rufen Sie in Zabbix die SAML-Einstellungen auf und füllen Sie die Konfigurationsoptionen anhand der OneLogin-Konfiguration aus:

| Zabbix-Feld | Einrichtungsfeld in OneLogin | Beispielwert |
|---|---|---|
| IdP-Entitäts-ID | Issuer URL (siehe Registerkarte SSO Ihrer Anwendung in OneLogin) |
|
| SSO-Service-URL | SAML 2.0 Endpoint (HTTP) (siehe Registerkarte SSO Ihrer Anwendung in OneLogin) |
|
| SLO-Service-URL | SLO Endpoint (HTTP) (siehe Registerkarte SSO Ihrer Anwendung in OneLogin) |
|
| Benutzernamenattribut | Custom parameter | user_email |
| Attribut für den Gruppennamen | Custom parameter | group |
| Attribut für den Benutzernamen | Custom parameter | user_name |
| Attribut für den Nachnamen des Benutzers | Custom parameter | user_lastname |
Außerdem muss die Zuordnung von Benutzergruppen konfiguriert werden. Die Medienzuordnung ist optional. Klicken Sie auf Aktualisieren, um diese Einstellungen zu speichern.
2. Fügen Sie das von OneLogin bereitgestellte Base64-Zertifikat hinzu.
Wenn $SSO['CERT_STORAGE'] = 'database' in der Frontend-Konfigurationsdatei (zabbix.conf.php) festgelegt ist, können Sie den Zertifikatstext einfügen oder die Zertifikatsdatei während der SAML-Konfiguration im Frontend hochladen – auf dem Dateisystem werden keine Dateien benötigt.
Wenn $SSO['CERT_STORAGE'] = 'file' in der Konfigurationsdatei festgelegt ist, muss das Zertifikat im Dateisystem verfügbar gemacht werden (standardmäßig in ui/conf/certs oder unter dem in der Konfigurationsdatei konfigurierten Pfad), und das Frontend speichert keine Zertifikate in der Datenbank.
Beachten Sie, dass bei nicht gesetztem oder auskommentiertem $SSO['CERT_STORAGE'] die Dateispeicherung verwendet wird und Zertifikate aus ui/conf/certs gelesen werden.
Sie können den Zertifikat-Download in OneLogin unter Applications > SSO aufrufen, indem Sie beim aktuellen Zertifikat auf View details klicken.
3. Klicken Sie auf die Schaltfläche Aktualisieren, um diese Einstellungen zu speichern.
SCIM-Benutzerbereitstellung
Wenn die Benutzerbereitstellung aktiviert ist, ist es nun möglich, Benutzer und ihre Rollen in OneLogin hinzuzufügen/zu aktualisieren und sie sofort in Zabbix bereitzustellen.
Sie können beispielsweise einen neuen Benutzer erstellen:

Fügen Sie ihn einer Benutzerrolle und der Anwendung hinzu, die den Benutzer bereitstellen wird:

Beim Speichern des Benutzers wird er in Zabbix bereitgestellt. Unter Application > Users können Sie den Bereitstellungsstatus der aktuellen Anwendungsbenutzer überprüfen:

Wenn die Bereitstellung erfolgreich war, ist der Benutzer in der Zabbix-Benutzerliste sichtbar.
