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 Anweisungen 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. Sie können auch das Symbol und die App-Details hinzufügen. Klicken Sie danach auf Save.
Einrichtung der SSO/SCIM-Bereitstellung
1. Legen Sie unter Configuration -> Application details den Zabbix Single-Sign-On-Endpunkt 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 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. Legen Sie unter 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 beliebig. Es können unterschiedliche 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 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 Benutzeranmeldungswert in OneLogin übereinstimmt (z. B. E-Mail);
- Markieren 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 markieren.
- 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.
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 muss das Mapping der Benutzergruppen konfiguriert werden. Das Medien-Mapping ist optional. Klicken Sie auf Update, um diese Einstellungen zu speichern.
2. Laden Sie das von OneLogin bereitgestellte Zertifikat herunter und legen Sie es als idp.crt in conf/certs der Zabbix-Frontend-Installation ab.
Setzen Sie die Berechtigungen 644, indem Sie Folgendes ausführen:
chmod 644 idp.crt
Sie können den Zertifikat-Download in OneLogin unter Applications -> SSO -> View details unter dem aktuellen Zertifikat aufrufen.
Es ist möglich, einen anderen Zertifikatsnamen und einen anderen Speicherort zu verwenden. In diesem Fall stellen Sie sicher, dass Sie in conf/zabbix.conf.php die folgende Zeile hinzufügen:
$SSO['IDP_CERT'] = 'path/to/certname.crt';
SCIM-Benutzerbereitstellung
Wenn die Benutzerbereitstellung aktiviert ist, können Benutzer und ihre Rollen in OneLogin nun hinzugefügt/aktualisiert und sofort an Zabbix bereitgestellt werden.
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 an 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.
