Configurazione SAML con Okta
Questa sezione fornisce linee guida per configurare Okta per abilitare l'autenticazione SAML 2.0 e il provisioning degli utenti per Zabbix.
Configurazione di Okta
1. Vai su https://developer.okta.com/signup/ e registrati/accedi al tuo account.
2. Nell'interfaccia web di Okta, vai su Applications > Applications.
3. Fai clic su Create App Integration.

Seleziona "SAML 2.0" come metodo di accesso e fai clic su Next.
4. Nelle impostazioni generali, inserisci il nome dell'app e fai clic su Next.
5. Nella configurazione SAML, inserisci i valori indicati di seguito, quindi fai clic su Next.

-
In General aggiungi:
- Single sign-on URL:
http://<your-zabbix-url>/zabbix/index_sso.php?acs
Nota l'uso di "http" e non di "https", in modo che il parametroacsnon venga rimosso dalla richiesta. Deve essere selezionata anche la casella Use this for Recipient URL and Destination URL. - Audience URI (SP Entity ID):
zabbix
Tieni presente che questo valore verrà usato all'interno dell'asserzione SAML come identificatore univoco del service provider (se non corrisponde, l'operazione verrà rifiutata). In questo campo è possibile specificare un URL o qualsiasi stringa di dati. - Default RelayState:
Lascia questo campo vuoto; se è necessario un reindirizzamento personalizzato, può essere aggiunto in Zabbix nelle impostazioni Users > Users. - Compila gli altri campi in base alle tue preferenze.
- Single sign-on URL:
-
In Attribute Statements/Group Attribute Statements aggiungi:

Queste dichiarazioni di attributo vengono inserite nelle asserzioni SAML condivise con Zabbix.
I nomi degli attributi usati qui sono esempi arbitrari. Puoi usare nomi di attributo diversi, tuttavia è necessario che corrispondano al rispettivo valore del campo nelle impostazioni SAML di Zabbix.
Se vuoi configurare l'accesso SAML a Zabbix senza il provisioning utenti JIT, allora è richiesto solo l'attributo email.
Se prevedi di usare una connessione crittografata, genera i certificati di crittografia privato e pubblico, quindi carica il certificato pubblico su Okta. Il modulo per il caricamento del certificato appare quando Assertion Encryption è impostato su "Encrypted" (fai clic su Show Advanced Settings per trovare questo parametro).
6. Nella scheda successiva, seleziona "I'm a software vendor. I'd like to integrate my app with Okta" e fai clic su Finish.
7. Vai alla scheda "Assignments" della nuova applicazione creata e fai clic sul pulsante Assign, quindi seleziona "Assign to People" dal menu a discesa.

8. Nella finestra popup che appare, assegna l'app alle persone che utilizzeranno SAML 2.0 per autenticarsi con Zabbix, quindi fai clic su Save and go back.
9. Scarica il certificato IdP. Imposta i permessi 644 eseguendo:
chmod 644 idp.crt
10. Vai alla scheda "Sign On" e fai clic sul pulsante View Setup Instructions.
Le istruzioni di configurazione si apriranno in una nuova scheda; lascia questa scheda aperta mentre configuri Zabbix.
Configurazione di Zabbix
1. In Zabbix, accedere alle impostazioni SAML e compilare le opzioni di configurazione in base alle istruzioni di configurazione di Okta:

| Campo di Zabbix | Campo di configurazione in Okta | Valore di esempio |
|---|---|---|
| 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 |
È inoltre necessario configurare la mappatura dei gruppi di utenti e dei media.
2. Aggiungere il certificato Base64 fornito nelle istruzioni di configurazione SAML di Okta.
Se nel file di configurazione del frontend (zabbix.conf.php) è impostato $SSO['CERT_STORAGE'] = 'database', è possibile incollare il testo del certificato o caricare il file del certificato nel frontend durante la configurazione SAML; non sono necessari file nel filesystem.
Se nel file di configurazione è impostato $SSO['CERT_STORAGE'] = 'file', il certificato deve essere disponibile nel filesystem (per impostazione predefinita in ui/conf/certs o nel percorso configurato nel file di configurazione) e il frontend non memorizzerà i certificati nel database.
Se $SSO['CERT_STORAGE'] non è impostato o è commentato, viene utilizzata la memorizzazione su file e i certificati vengono letti da ui/conf/certs.
3. Se in Okta Assertion Encryption è impostato su "Encrypted", anche in Zabbix deve essere selezionata la casella di controllo "Assertions" del parametro Encrypt.
4. Fare clic sul pulsante Update per salvare queste impostazioni.
Provisioning SCIM
1. Per abilitare il provisioning SCIM, accedere a General > App Settings dell'applicazione in Okta.
Selezionare la casella di controllo Enable SCIM provisioning. Di conseguenza, viene visualizzata una nuova scheda Provisioning.
2. Accedere alla scheda "Provisioning" per configurare una connessione SCIM:
- In SCIM connector base URL, specificare il percorso del frontend Zabbix e aggiungere
api_scim.php, ovvero:
https://<your-zabbix-url>/zabbix/api_scim.php - Unique identifier field for users:
email - Authentication mode:
HTTP header - In Authorization, inserire un token API valido con diritti di Super admin.

In caso di problemi di autenticazione, consultare Authorization header forwarding.
3. Fare clic su Test Connector Configuration per verificare la connessione. Se tutto è corretto, verrà visualizzato un messaggio di conferma.
4. In Provisioning > To App, assicurarsi di selezionare le seguenti caselle di controllo:
- Create Users
- Update User Attributes
- Deactivate Users
In questo modo, questi tipi di richieste verranno inviati a Zabbix.
5. Assicurarsi che tutti gli attributi definiti in SAML siano definiti anche in SCIM. È possibile accedere all'editor del profilo dell'applicazione in Provisioning > To App, facendo clic su Go to Profile Editor.
Fare clic su Add Attribute.
Compilare i valori per Display name, Variable name, External name con il nome dell'attributo SAML, ad esempio user_name.

External namespace deve corrispondere allo schema utente: urn:ietf:params:scim:schemas:core:2.0:User
6. Accedere a Provisioning > To App > Attribute Mappings dell'applicazione. Fare clic su Show Unmapped Attributes in fondo alla pagina. Vengono visualizzati gli attributi aggiunti di recente.
7. Mappare ogni attributo aggiunto.

8. Aggiungere gli utenti nella scheda "Assignments". Gli utenti devono essere stati precedentemente aggiunti in Directory > People. Tutte queste assegnazioni verranno inviate come richieste a Zabbix.
9. Aggiungere i gruppi nella scheda "Push Groups". Il modello di mappatura dei gruppi utente nelle impostazioni SAML di Zabbix deve corrispondere a un gruppo specificato qui. Se non viene trovata alcuna corrispondenza, l'utente non può essere creato in Zabbix.
Le informazioni sui membri dei gruppi vengono inviate ogni volta che viene apportata una modifica.