SAML-Einrichtung mit Okta
Dieser Abschnitt enthält Richtlinien zur 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 Sie sich bzw. 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 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.

-
In General hinzufügen:
- Single sign-on URL:
http://<your-zabbix-url>/zabbix/index_sso.php?acs
Beachten Sie die Verwendung von "http" und nicht "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 nach Ihren Wünschen aus.
- Single sign-on URL:
-
In Attribute Statements/Group Attribute Statements hinzufügen:

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; sie müssen jedoch mit dem jeweiligen Feldwert in den Zabbix-SAML-Einstellungen übereinstimmen.
Wenn Sie die SAML-Anmeldung bei Zabbix ohne JIT-Bereitstellung von Benutzern 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 anschließend 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 im nächsten Tab "I'm a software vendor. I'd like to integrate my app with Okta" aus und klicken Sie auf Finish.
7. Navigieren Sie zum Tab "Assignments" der neu erstellten Anwendung und klicken Sie auf die Schaltfläche Assign und wählen Sie dann im Dropdown-Menü Assign to People 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 auf 644, indem Sie Folgendes ausführen:
chmod 644 idp.crt
10. Navigieren Sie zum Tab "Sign On" und klicken Sie auf die Schaltfläche View Setup Instructions.
Die Anweisungen zur Einrichtung werden in einem neuen Tab geöffnet; lassen Sie diesen Tab während der Konfiguration von Zabbix geöffnet.
Zabbix-Konfiguration
1. Navigieren 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 entity ID | Identity Provider Issuer | |
| SSO service URL | Identity Provider Single Sign-On URL | |
| Username attribute | Attribute name | usrEmail |
| SP entity ID | Audience URI | zabbix |
| Group name attribute | Attribute name | groups |
| User name attribute | Attribute name | user_name |
| User last name attribute | Attribute name | user_lastname |
Außerdem müssen Sie die Zuordnung von Benutzergruppen und Medien konfigurieren.
2. Fügen Sie das in den Okta-SAML-Einrichtungsanweisungen bereitgestellte Base64-Zertifikat hinzu.
Wenn $SSO['CERT_STORAGE'] = 'database' in der Frontend-Konfigurationsdatei (zabbix.conf.php) festgelegt ist, können Sie den Zertifikatstext einfügen oder die Zertifikatsdatei während der SAML-Konfiguration im Frontend hochladen – Dateien im Dateisystem sind nicht erforderlich.
Wenn $SSO['CERT_STORAGE'] = 'file' in der Konfigurationsdatei festgelegt ist, muss das Zertifikat im Dateisystem verfügbar gemacht werden (standardmäßig in ui/conf/certs oder unter dem in der Konfigurationsdatei konfigurierten Pfad), und das Frontend speichert keine Zertifikate in der Datenbank.
Beachten Sie, dass bei nicht gesetztem oder auskommentiertem $SSO['CERT_STORAGE'] die dateibasierte Speicherung verwendet wird und Zertifikate aus ui/conf/certs gelesen werden.
3. Wenn Assertion Encryption in Okta auf „Encrypted“ gesetzt wurde, muss in Zabbix ebenfalls das Kontrollkästchen „Assertions“ für den Parameter Encrypt aktiviert werden.
4. Klicken Sie auf die Schaltfläche Update, um diese Einstellungen zu speichern.
SCIM-Bereitstellung
1. Um die SCIM-Bereitstellung zu aktivieren, gehen Sie in Okta bei der Anwendung zu General > App Settings.
Aktivieren Sie das Kontrollkästchen Enable SCIM provisioning. Daraufhin wird eine neue Registerkarte Provisioning angezeigt.
2. Wechseln Sie zur Registerkarte „Provisioning“, um eine SCIM-Verbindung einzurichten:
- Geben Sie unter 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 Authentifizierungsprobleme auftreten, lesen Sie 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 Anforderungstypen an Zabbix gesendet werden.
5. Stellen Sie sicher, dass alle in SAML definierten Attribute auch in SCIM definiert sind. Sie können den Profileditor für Ihre Anwendung unter Provisioning > To App öffnen, indem Sie auf Go to Profile Editor klicken.
Klicken Sie auf Add Attribute.
Tragen Sie für Display name, Variable name und External name den Namen des SAML-Attributs ein, z. B. user_name.

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

8. Fügen Sie Benutzer auf der Registerkarte „Assignments“ hinzu. Die Benutzer müssen zuvor unter Directory > People hinzugefügt worden sein. Alle diese Zuweisungen werden als Anforderungen an Zabbix gesendet.
9. Fügen Sie Gruppen auf der Registerkarte „Push Groups“ hinzu. Das Muster für die Zuordnung von Benutzergruppen in den Zabbix-SAML-Einstellungen muss mit einer hier angegebenen Gruppe übereinstimmen. Wenn keine Übereinstimmung vorliegt, kann der Benutzer nicht in Zabbix erstellt werden.
Informationen zu Gruppenmitgliedern werden jedes Mal gesendet, wenn eine Änderung vorgenommen wird.