13 SAML-Einrichtung mit Okta
Dieser Abschnitt enthält Richtlinien für die Konfiguration von Okta, um die SAML-2.0-Authentifizierung und die Benutzerbereitstellung für Zabbix zu aktivieren.
Okta-Konfiguration
1. Gehen Sie zu https://developer.okta.com/signup/ und registrieren/melden Sie sich bei Ihrem Konto an.
2. Navigieren Sie in der Okta-Weboberfläche zu Applications → Applications.
3. Klicken Sie auf Create App Integration.

Wählen Sie „SAML 2.0“ als Anmeldemethode aus und klicken Sie auf Next.
4. Geben Sie in den allgemeinen Einstellungen den App-Namen ein und klicken Sie auf Next.
5. Geben Sie in der SAML-Konfiguration die unten angegebenen Werte ein und klicken Sie dann auf Next.

-
Fügen Sie unter General Folgendes hinzu:
- Single sign-on URL:
http://<your-zabbix-url>/zabbix/index_sso.php?acs
Beachten Sie die Verwendung von „http“ und nicht von „https“, damit der Parameteracsin der Anfrage nicht abgeschnitten wird. Das Kontrollkästchen Use this for Recipient URL and Destination URL sollte ebenfalls aktiviert sein. - Audience URI (SP Entity ID):
zabbix
Beachten Sie, dass dieser Wert innerhalb der SAML-Assertion als eindeutige Kennung des Service-Providers verwendet wird (bei Nichtübereinstimmung wird der Vorgang abgelehnt). In diesem Feld kann eine URL oder eine beliebige Zeichenfolge angegeben werden. - Default RelayState:
Lassen Sie dieses Feld leer; wenn eine benutzerdefinierte Weiterleitung erforderlich ist, kann sie in Zabbix in den Einstellungen Users > Users hinzugefügt werden. - Füllen Sie die übrigen Felder entsprechend Ihren Anforderungen aus.
- Single sign-on URL:
-
Fügen Sie unter Attribute Statements/Group Attribute Statements Folgendes hinzu:

Diese Attributanweisungen werden in die mit Zabbix geteilten SAML-Assertions eingefügt.
Die hier verwendeten Attributnamen sind beliebige Beispiele. Sie können andere Attributnamen verwenden, diese müssen jedoch mit dem jeweiligen Feldwert in den Zabbix-SAML-Einstellungen übereinstimmen.
Wenn Sie die SAML-Anmeldung bei Zabbix ohne JIT-Benutzerbereitstellung konfigurieren möchten, ist nur das E-Mail-Attribut erforderlich.
Wenn Sie eine verschlüsselte Verbindung verwenden möchten, generieren Sie die privaten und öffentlichen Verschlüsselungszertifikate und laden Sie dann das öffentliche Zertifikat in Okta hoch. Das Formular zum Hochladen des Zertifikats wird angezeigt, wenn Assertion Encryption auf „Encrypted“ gesetzt ist (klicken Sie auf Show Advanced Settings, um diesen Parameter zu finden).
6. Wählen Sie auf der nächsten Registerkarte „I'm a software vendor. I'd like to integrate my app with Okta“ aus und klicken Sie auf Finish.
7. Navigieren Sie zur Registerkarte „Assignments“ der neu erstellten Anwendung und klicken Sie auf die Schaltfläche Assign; wählen Sie dann „Assign to People“ aus der Dropdown-Liste aus.

8. Weisen Sie in dem angezeigten Popup die App den Personen zu, die SAML 2.0 zur Authentifizierung bei Zabbix verwenden werden, und klicken Sie dann auf Save and go back.
9. Laden Sie das IdP-Zertifikat herunter. Setzen Sie die Berechtigungen 644 dafür, indem Sie Folgendes ausführen:
chmod 644 idp.crt
10. Navigieren Sie zur Registerkarte „Sign On“ und klicken Sie auf die Schaltfläche View Setup Instructions.
Die Anweisungen zur Einrichtung werden in einer neuen Registerkarte geöffnet; lassen Sie diese Registerkarte geöffnet, während Sie Zabbix konfigurieren.
Zabbix-Konfiguration
1. Gehen Sie in Zabbix zu den SAML-Einstellungen und füllen Sie die Konfigurationsoptionen anhand der Einrichtungsanweisungen von Okta aus:

| Zabbix-Feld | Einrichtungsfeld in Okta | Beispielwert |
|---|---|---|
| IdP-Entitäts-ID | Identity Provider Issuer | |
| SSO-Service-URL | Identity Provider Single Sign-On URL | |
| Benutzernamenattribut | Attributname | usrEmail |
| SP-Entitäts-ID | Audience URI | zabbix |
| Gruppennamenattribut | Attributname | groups |
| Vornamenattribut des Benutzers | Attributname | user_name |
| Nachnamenattribut des Benutzers | Attributname | user_lastname |
Außerdem müssen die Zuordnung von Benutzergruppen und Medien konfiguriert werden.
2. Fügen Sie das Base64-Zertifikat hinzu, das in den Okta-SAML-Einrichtungsanweisungen bereitgestellt wird.
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 oder auskommentiert ist, Dateispeicherung angenommen wird und Zertifikate aus ui/conf/certs gelesen werden.
3. Wenn Assertion Encryption in Okta auf "Encrypted" gesetzt wurde, sollte in Zabbix auch das Kontrollkästchen "Assertions" des Parameters Encrypt aktiviert werden.
4. Klicken Sie auf die Schaltfläche Update, um diese Einstellungen zu speichern.
SCIM-Provisionierung
1. Um die SCIM-Provisionierung zu aktivieren, gehen Sie in Okta zu "General" -> "App Settings" der Anwendung.
Aktivieren Sie das Kontrollkästchen Enable SCIM provisioning. Dadurch erscheint ein neuer Reiter Provisioning.
2. Gehen Sie zum Reiter "Provisioning", um eine SCIM-Verbindung einzurichten:
- Geben Sie in SCIM connector base URL den Pfad zum Zabbix Frontend an und hängen Sie
api_scim.phpdaran an, z. B.:
https://<your-zabbix-url>/zabbix/api_scim.php - Unique identifier field for users:
email - Authentication mode:
HTTP header - Geben Sie unter Authorization ein gültiges API-Token mit Super-Admin-Rechten ein

Wenn bei Ihnen Authentifizierungsprobleme auftreten, siehe Weiterleitung des Authorization-Headers.
3. Klicken Sie auf Test Connector Configuration, um die Verbindung zu testen. Wenn alles korrekt ist, wird eine Erfolgsmeldung angezeigt.
4. Stellen Sie unter "Provisioning" -> "To App" sicher, dass die folgenden Kontrollkästchen aktiviert sind:
- Create Users
- Update User Attributes
- Deactivate Users
Dadurch wird sichergestellt, dass diese Anfragetypen an Zabbix gesendet werden.
5. Stellen Sie sicher, dass alle in SAML definierten Attribute auch in SCIM definiert sind. Sie können den Profile Editor für Ihre App unter "Provisioning" -> "To App" aufrufen, indem Sie auf Go to Profile Editor klicken.
Klicken Sie auf Add Attribute.
Füllen Sie die Werte für Display name, Variable name und External name mit dem SAML-Attributnamen aus, zum Beispiel user_name.

External namespace sollte mit dem Benutzerschema übereinstimmen: urn:ietf:params:scim:schemas:core:2.0:User
6. Gehen Sie in Ihrer Anwendung zu "Provisioning" -> "To App" -> "Attribute Mappings". Klicken Sie unten auf Show Unmapped Attributes. Neu hinzugefügte Attribute werden angezeigt.
7. Ordnen Sie jedes hinzugefügte Attribut zu.

8. Fügen Sie Benutzer im Reiter "Assignments" hinzu. Die Benutzer müssen zuvor unter Directory -> People hinzugefügt werden. Alle diese Zuweisungen werden als Anfragen an Zabbix gesendet.
9. Fügen Sie Gruppen im Reiter "Push Groups" hinzu. Das Zuordnungsmuster für Benutzergruppen in den Zabbix-SAML-Einstellungen muss mit einer hier angegebenen Gruppe übereinstimmen. Wenn es keine Übereinstimmung gibt, kann der Benutzer in Zabbix nicht erstellt werden.
Informationen über Gruppenmitglieder werden jedes Mal gesendet, wenn eine Änderung vorgenommen wird.