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 su 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", affinché il parametro acs non venga rimosso dalla richiesta.

È anche possibile usare "https". Per utilizzarlo con Zabbix, aggiungere la seguente riga al file di configurazione del frontend (zabbix.conf.php):

$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.

Perché il provisioning degli utenti funzioni, OneLogin deve ricevere nella risposta un attributo 'name' con 'givenName' e 'familyName', anche se non era richiesto dal service provider. Pertanto, è necessario specificarlo nello schema nella sezione di configurazione dell'applicazione.

  • SCIM Bearer Token: inserire un token API di Zabbix con autorizzazioni 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 accesso dell'utente in OneLogin (ad esempio, l'e-mail);
  • 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 l'opzione Include in SAML assertion sia l'opzione Include in User Provisioning.

  • Aggiungere un parametro 'group' che corrisponda ai ruoli degli utenti in OneLogin. I ruoli degli utenti verranno passati come stringa, separati da un punto e virgola ;. I ruoli degli utenti OneLogin verranno utilizzati per creare i gruppi di utenti 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.

6. Scaricare il certificato IdP. Impostare i permessi 644 eseguendo:

chmod 644 idp.crt

Configurazione di Zabbix

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

Campo Zabbix Campo di configurazione in OneLogin Valore di esempio
ID entità IdP URL dell'emittente
(vedere la scheda SSO dell'applicazione in OneLogin)
URL del servizio SSO Endpoint SAML 2.0 (HTTP)
(vedere la scheda SSO dell'applicazione in OneLogin)
URL del servizio SLO Endpoint SLO (HTTP)
(vedere la scheda SSO dell'applicazione in OneLogin)
Attributo del nome utente Parametro personalizzato user_email
Attributo del nome del gruppo Parametro personalizzato group
Attributo del nome dell'utente Parametro personalizzato user_name
Attributo del cognome dell'utente Parametro personalizzato user_lastname

È inoltre necessario configurare la mappatura dei gruppi di utenti. La mappatura dei media è facoltativa. Fare clic su Aggiorna per salvare queste impostazioni.

2. Aggiungere il certificato Base64 fornito da OneLogin.

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, si presume l'archiviazione su file e i certificati vengono letti da ui/conf/certs.

È possibile accedere al download del certificato in OneLogin selezionando Applications > SSO > facendo clic su View details sotto il certificato corrente.

3. Fare clic sul pulsante Aggiorna per salvare queste impostazioni.

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 eseguirà il 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.