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 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. In Configuration > Application details setzen Sie den Zabbix Single-Sign-On-Endpunkt http://<zabbix-instance-url>/zabbix/index_sso.php?acs als Wert für diese 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 anderen Optionen auf 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, z. B. user_name, user_lastname, user_email und user_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 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_email und user_mobile:

Achten Sie beim Hinzufügen eines Parameters darauf, sowohl 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 Zeichenfolge ü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 dieses Zeichen 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 Benutzerdefinierter Parameter user_email
Group name attribute Benutzerdefinierter Parameter group
User name attribute Benutzerdefinierter Parameter user_name
User last name attribute Benutzerdefinierter 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 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, 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, 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.