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 su OneLogin. Per scopi 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 di SSO/SCIM provisioning

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 di questi campi:

  • ACS (Consumer) URL Validator
  • ACS (Consumer) URL

Si noti 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 a conf/zabbix.conf.php la seguente riga:

$SSO['SETTINGS'] = ['use_proxy_headers' => true];

Lasciare le altre opzioni con i 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_email e user_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. È possibile usare nomi di attributi diversi; tuttavia, è necessario che corrispondano al rispettivo valore del 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_email e user_mobile:

Quando si aggiunge un parametro, assicurarsi di selezionare sia Include in SAML assertion sia 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 usati per creare i gruppi utente in Zabbix:

Verificare l'elenco dei parametri:

5. Nella pagina Rules, creare le mappature dei ruoli utente al 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.

Configurazione di Zabbix

1. In Zabbix, vai alle impostazioni SAML e compila le opzioni di configurazione in base alla configurazione di OneLogin:

Campo Zabbix Campo di configurazione in OneLogin Valore di esempio
IdP entity ID Issuer URL
(vedi la scheda SSO della tua applicazione in OneLogin)
SSO service URL SAML 2.0 Endpoint (HTTP)
(vedi la scheda SSO della tua applicazione in OneLogin)
SLO service URL SLO Endpoint (HTTP)
(vedi la scheda SSO della tua applicazione 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

È inoltre necessario configurare il mapping dei gruppi utente. Il mapping dei media è facoltativo. Fai clic su Update per salvare queste impostazioni.

2. Scarica il certificato fornito da OneLogin e inseriscilo in conf/certs dell'installazione del frontend di Zabbix, come idp.crt.

Impostagli i permessi 644 eseguendo:

chmod 644 idp.crt

Puoi accedere al download del certificato in OneLogin in Applications -> SSO -> fai clic su View details sotto il certificato corrente.

È possibile usare un nome e un percorso diversi per il certificato. In tal caso, assicurati di aggiungere a conf/zabbix.conf.php la seguente riga:

$SSO['IDP_CERT'] = 'path/to/certname.crt';

Provisioning utenti SCIM

Con il provisioning utenti abilitato, è ora possibile aggiungere/aggiornare gli utenti e i loro ruoli in OneLogin e farli provisionare immediatamente in Zabbix.

Ad esempio, è possibile creare un nuovo utente:

Aggiungerlo a un ruolo utente e all'applicazione che provvederà al provisioning dell'utente:

Salvando l'utente, questo verrà provisionato in Zabbix. In Application -> Users è possibile verificare lo stato di provisioning degli utenti correnti dell'applicazione:

Se il provisioning ha esito positivo, l'utente sarà visibile nell'elenco utenti di Zabbix.