14 Configurazione SAML con OneLogin
Panoramica
Questa sezione fornisce linee guida per configurare il single sign-on e il provisioning degli utenti in Zabbix da OneLogin utilizzando l'autenticazione SAML 2.0.
Configurazione di OneLogin
Creazione dell'applicazione
1. Accedi al tuo account OneLogin. A scopo di test, puoi creare un account sviluppatore gratuito in OneLogin.
2. Nell'interfaccia web di OneLogin, vai a Applications → Applications.
3. Fai clic su "Add App" e cerca l'app appropriata. Le linee guida in questa pagina si basano sull'esempio dell'app SCIM Provisioner with SAML (SCIM v2 Enterprise, full SAML).
4. Per iniziare, potresti voler personalizzare il nome visualizzato della tua app. Potresti anche voler aggiungere l'icona e i dettagli dell'app. Dopodiché, fai clic su Save.
Configurazione del provisioning SSO/SCIM
1. In Configuration -> Application details, impostare l'endpoint di single sign-on di Zabbix http://<zabbix-instance-url>/zabbix/index_sso.php?acs come valore dei seguenti campi:
- ACS (Consumer) URL Validator
- ACS (Consumer) URL
Notare l'uso di "http" e non di "https", in modo che il parametro acs non venga rimosso dalla richiesta.

È anche possibile usare "https".
Per farlo funzionare con Zabbix, è necessario aggiungere la seguente riga a conf/zabbix.conf.php:
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
Lasciare le altre opzioni ai valori predefiniti.
2. In Configuration -> API connection, impostare i seguenti valori:
- SCIM Base URL:
https://<zabbix-instance-url>/zabbix/api_scim.php - SCIM JSON Template: deve contenere tutti gli attributi personalizzati che si desidera passare a Zabbix tramite SCIM, come
user_name,user_lastname,user_emaileuser_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}"
}
I nomi degli attributi sono arbitrari. Possono essere usati nomi di attributi diversi, tuttavia è necessario che corrispondano al rispettivo valore di campo nelle impostazioni SAML di Zabbix.
Si noti che, affinché il provisioning degli utenti funzioni, OneLogin deve ricevere in risposta un attributo 'name' con 'givenName' e 'familyName', anche se non era richiesto dal service provider. Pertanto è necessario specificarlo nello schema nella parte di configurazione dell'applicazione.
- SCIM Bearer Token: inserire un token API di Zabbix con permessi di Super admin.
Fare clic su Enable per attivare la connessione.

3. Nella pagina Provisioning, abilitare l'opzione Provisioning:

4. La pagina Parameters contiene un elenco di parametri predefiniti:
- Assicurarsi che 'scimusername' corrisponda al valore di login dell'utente in OneLogin (ad esempio email);
- Selezionare l'opzione Include in User Provisioning per il parametro 'Groups';
- Fare clic su "+" per creare i parametri personalizzati richiesti per le asserzioni SAML e il provisioning degli utenti, come
user_name,user_lastname,user_emaileuser_mobile:

Quando si aggiunge un parametro, assicurarsi di selezionare sia l'opzione Include in SAML assertion sia l'opzione Include in User Provisioning.
- Aggiungere un parametro 'group' che corrisponda ai ruoli utente in OneLogin.
I ruoli utente verranno passati come stringa, separati da un punto e virgola
;. I ruoli utente di OneLogin saranno utilizzati per creare gruppi utenti in Zabbix:

Verificare l'elenco dei parametri:

5. Nella pagina Rules, creare le mappature dei ruoli utente per il parametro Groups predefinito.

È possibile usare un'espressione regolare per passare ruoli specifici come gruppi.
I nomi dei ruoli non devono contenere ; poiché OneLogin lo usa come separatore quando invia un attributo con più ruoli.
6. Scaricare il certificato IdP. Impostare i permessi 644 eseguendo:
chmod 644 idp.crt
Configurazione di Zabbix
1. In Zabbix, andare alle impostazioni SAML e compilare le opzioni di configurazione in base alla configurazione di OneLogin:

| Campo di Zabbix | Campo di configurazione in OneLogin | Valore di esempio |
|---|---|---|
| ID entità IdP | URL issuer (vedere la scheda SSO della propria applicazione in OneLogin) |
|
| URL del servizio SSO | Endpoint SAML 2.0 (HTTP) (vedere la scheda SSO della propria applicazione in OneLogin) |
|
| URL del servizio SLO | Endpoint SLO (HTTP) (vedere la scheda SSO della propria applicazione in OneLogin) |
|
| Attributo nome utente | Parametro personalizzato | user_email |
| Attributo nome gruppo | Parametro personalizzato | group |
| Attributo nome dell'utente | Parametro personalizzato | user_name |
| Attributo cognome dell'utente | Parametro personalizzato | user_lastname |
È inoltre necessario configurare la mappatura dei gruppi utenti. La mappatura dei media è facoltativa. Fare clic su Aggiorna per salvare queste impostazioni.
2. Aggiungere il certificato Base64 fornito da OneLogin.
Se in 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 richiesti file nel filesystem.
Se in zabbix.conf.php è impostato $SSO['CERT_STORAGE'] = 'file', il certificato deve essere reso disponibile nel filesystem (per impostazione predefinita in ui/conf/certs o nel percorso configurato in zabbix.conf.php) e il frontend non memorizzerà i certificati nel database.
Si noti che se $SSO['CERT_STORAGE'] non è impostato o è commentato, si presume l'archiviazione su file e i certificati vengono letti da ui/conf/certs.
È possibile accedere al download del certificato in OneLogin in Applications -> SSO -> facendo clic su View details sotto il certificato corrente.
3. Premere il pulsante Aggiorna per salvare queste impostazioni.
Provisioning utenti SCIM
Con il provisioning utenti abilitato, ora è possibile aggiungere/aggiornare gli utenti e i relativi ruoli in OneLogin e farne eseguire immediatamente il provisioning in Zabbix.
Ad esempio, è possibile creare un nuovo utente:

Aggiungerlo a un ruolo utente e all'applicazione che eseguirà il provisioning dell'utente:

Quando si salva l'utente, verrà eseguito il provisioning in Zabbix. In Application -> Users è possibile controllare lo stato del provisioning degli utenti correnti dell'applicazione:

Se il provisioning è stato eseguito correttamente, l'utente sarà visibile nell'elenco utenti di Zabbix.
