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
Erstellen einer Anwendung
1. Melden Sie sich bei Ihrem Konto bei OneLogin an. Zu Testzwecken können Sie ein kostenloses Entwicklerkonto in OneLogin 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. In Configuration -> Application details setzen Sie den Zabbix Single-Sign-On-Endpunkt http://<zabbix-instance-url>/zabbix/index_sso.php?acs als Wert dieser Felder:
- 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];
Belassen Sie die übrigen Optionen bei ihren Standardwerten.
2. In Configuration -> API connection setzen Sie die folgenden Werte:
- 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, wie
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 unterschiedliche 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 als Antwort ein Attribut name mit givenName und familyName erhalten muss, auch wenn dies vom Service Provider nicht erforderlich war.
Daher ist es notwendig, dies im Schema im Konfigurationsbereich 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 Benutzer-Login-Wert in OneLogin übereinstimmt (z. B. E-Mail);
- Markieren Sie die Option Include in User Provisioning für den Parameter 'Groups';
- Klicken Sie auf "+" , um die benutzerdefinierten Parameter zu erstellen, die für SAML-Assertions und die Benutzerbereitstellung erforderlich sind, wie
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 markieren.
- Fügen Sie einen Parameter 'group' hinzu, der den Benutzerrollen in OneLogin entspricht.
Benutzerrollen werden als Zeichenkette übergeben, getrennt durch ein Semikolon
;. 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 es als Trennzeichen verwendet, wenn ein Attribut mit mehreren Rollen gesendet wird.
6. Laden Sie das IdP-Zertifikat herunter. Setzen Sie die Berechtigungen dafür auf 644, 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 SSO-Registerkarte Ihrer Anwendung in OneLogin) |
|
| SSO service URL | SAML 2.0 Endpoint (HTTP) (siehe SSO-Registerkarte Ihrer Anwendung in OneLogin) |
|
| SLO service URL | SLO Endpoint (HTTP) (siehe SSO-Registerkarte Ihrer Anwendung in OneLogin) |
|
| Username attribute | Custom parameter | user_email |
| Group name attribute | Custom parameter | group |
| User name attribute | Custom parameter | user_name |
| User last name attribute | Custom parameter | user_lastname |
Außerdem ist die Konfiguration der Zuordnung von Benutzergruppen erforderlich. Die Medienzuordnung ist optional. Klicken Sie auf Update, um diese Einstellungen zu speichern.
2. Fügen Sie das von OneLogin bereitgestellte Base64-Zertifikat hinzu.
Wenn in zabbix.conf.php $SSO['CERT_STORAGE'] = 'database' gesetzt ist, können Sie den Zertifikatstext einfügen oder die Zertifikatsdatei im Frontend während der SAML-Konfiguration hochladen — auf dem Dateisystem sind keine Dateien erforderlich.
Wenn in zabbix.conf.php $SSO['CERT_STORAGE'] = 'file' gesetzt ist, muss das Zertifikat auf dem Dateisystem verfügbar gemacht werden (standardmäßig in ui/conf/certs oder unter dem in zabbix.conf.php konfigurierten Pfad), und das Frontend speichert Zertifikate nicht in der Datenbank.
Beachten Sie, dass, wenn $SSO['CERT_STORAGE'] nicht gesetzt ist oder auskommentiert wurde, die Dateispeicherung angenommen wird und Zertifikate aus ui/conf/certs gelesen werden.
Sie können den Zertifikat-Download in OneLogin unter Applications -> SSO -> View details unter dem aktuellen Zertifikat aufrufen.
3. Klicken Sie auf die Schaltfläche Update, 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.
