14 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
Anwendung erstellen
1. Melden Sie sich bei Ihrem Konto in 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 entsprechenden Anwendung. Die Anweisungen auf dieser Seite basieren auf dem Beispiel der Anwendung SCIM Provisioner with SAML (SCIM v2 Enterprise, full SAML).
4. Zu Beginn können Sie den Anzeigenamen Ihrer Anwendung anpassen. Sie können außerdem das Symbol und die Anwendungsdetails hinzufügen. Klicken Sie danach auf Save.
Einrichten der SSO-/SCIM-Bereitstellung
1. Legen Sie in Configuration -> Application details den Zabbix-Endpunkt für Single Sign-on http://<zabbix-instance-url>/zabbix/index_sso.php?acs als Wert für diese Felder fest:
- ACS (Consumer) URL Validator
- ACS (Consumer) URL
Beachten Sie die Verwendung von „http“ und nicht „https“, damit der Parameter acs in der Anfrage nicht abgeschnitten wird.

Es ist auch möglich, „https“ zu verwenden.
Damit dies mit Zabbix funktioniert, muss in conf/zabbix.conf.php die folgende Zeile hinzugefügt werden:
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
Lassen Sie die anderen Optionen auf ihren Standardwerten.
2. Legen Sie in Configuration -> API connection die folgenden Werte fest:
- SCIM Base URL:
https://<zabbix-instance-url>/zabbix/api_scim.php - SCIM JSON Template: sollte 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 frei wählbar. Es können andere Attributnamen verwendet werden, jedoch ist erforderlich, dass sie 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“ erhalten muss, auch wenn dies vom Dienstanbieter nicht verlangt wurde. Daher ist es notwendig, dies im Schema im Konfigurationsteil der Anwendung anzugeben.
- 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. E-Mail);
- Aktivieren Sie für den Parameter „Groups“ die Option Include in User Provisioning;
- Klicken Sie auf „+“, um die benutzerdefinierten Parameter zu erstellen, die für SAML-Assertions und die Benutzerbereitstellung erforderlich sind, z. B.
user_name,user_lastname,user_emailunduser_mobile:

Achten Sie beim Hinzufügen eines Parameters darauf, sowohl die Option 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.
Benutzerrollen werden als durch ein Semikolon
;getrennte Zeichenfolge übergeben. Die OneLogin-Benutzerrollen werden zum Erstellen von Benutzergruppen in Zabbix verwendet:

Überprüfen Sie die Parameterliste:

5. Erstellen Sie auf der Seite Rules Zuordnungen von Benutzerrollen zum Standardparameter Groups.

Sie können einen regulären Ausdruck verwenden, um bestimmte Rollen als Gruppen zu übergeben.
Die Rollennamen sollten kein ; enthalten, da OneLogin dieses als Trennzeichen verwendet, wenn ein Attribut mit mehreren Rollen gesendet wird.
6. Laden Sie das IdP-Zertifikat herunter. Setzen Sie die Berechtigung 644 dafür, indem Sie Folgendes ausführen:
chmod 644 idp.crt
Zabbix-Konfiguration
1. Gehen Sie in Zabbix zu den SAML-Einstellungen und füllen Sie die Konfigurationsoptionen basierend auf der OneLogin-Konfiguration aus:

| Zabbix-Feld | Einrichtungsfeld in OneLogin | Beispielwert |
|---|---|---|
| IdP-Entity-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) |
|
| Attribut für Benutzernamen | Benutzerdefinierter Parameter | user_email |
| Attribut für Gruppennamen | Benutzerdefinierter Parameter | group |
| Attribut für Vornamen | Benutzerdefinierter Parameter | user_name |
| Attribut für Nachnamen | Benutzerdefinierter Parameter | user_lastname |
Es ist außerdem erforderlich, die Benutzergruppen-Zuordnung zu konfigurieren. Die Medien-Zuordnung 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 zabbix.conf.php gesetzt ist, können Sie den Zertifikatstext einfügen oder die Zertifikatsdatei während der SAML-Konfiguration im Frontend hochladen — es sind keine Dateien im Dateisystem erforderlich.
Wenn $SSO['CERT_STORAGE'] = 'file' in zabbix.conf.php gesetzt ist, muss das Zertifikat im Dateisystem verfügbar gemacht werden (standardmäßig in ui/conf/certs oder in dem in zabbix.conf.php konfigurierten Pfad), und das Frontend speichert keine Zertifikate in der Datenbank.
Beachten Sie, dass, wenn $SSO['CERT_STORAGE'] nicht gesetzt ist oder auskommentiert wurde, Dateispeicherung angenommen wird und Zertifikate aus ui/conf/certs gelesen werden.
Sie können den Zertifikat-Download in OneLogin unter Applications -> SSO aufrufen und dort unter dem 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, können Benutzer und ihre Rollen jetzt in OneLogin hinzugefügt/aktualisiert werden und werden sofort in Zabbix bereitgestellt.
Sie können zum Beispiel einen neuen Benutzer erstellen:

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

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

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