12 Configurazione SAML con Microsoft Entra ID
Panoramica
Questa sezione fornisce linee guida per configurare il single sign-on e il provisioning degli utenti in Zabbix da Microsoft Entra ID (in precedenza Microsoft Azure Active Directory) utilizzando l'autenticazione SAML 2.0.
Configurazione di Microsoft Entra ID
Creazione dell'applicazione
1. Accedere al Microsoft Entra admin center in Microsoft Entra ID. A scopo di test, è possibile creare un account di prova gratuito in Microsoft Entra ID.
2. Nel Microsoft Entra admin center selezionare Applications -> Enterprise applications -> New application -> Create your own application.
3. Aggiungere il nome dell'app e selezionare l'opzione Integrate any other application.... Successivamente, fare clic su Create.

Configurazione del single sign-on
1. Nella pagina della tua applicazione, vai a Set up single sign on e fai clic su Get started. Quindi seleziona SAML.
2. Modifica Basic SAML Configuration:
- In Identifier (Entity ID) imposta un nome univoco per identificare la tua app in Microsoft Entra ID, ad esempio
zabbix; - In Reply URL (Assertion Consumer Service URL) imposta l'endpoint di single sign-on di Zabbix:
https://<path-to-zabbix-ui>/index_sso.php?acs:

Nota che è richiesto "https".
Per farlo funzionare con Zabbix, è necessario aggiungere la seguente riga a conf/zabbix.conf.php:
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
3. Modifica Attributes & Claims. Devi aggiungere tutti gli attributi che vuoi passare a Zabbix (user_name, user_lastname, user_email, user_mobile, groups).
I nomi degli attributi sono arbitrari. Possono essere utilizzati nomi di attributi diversi, tuttavia è necessario che corrispondano al valore del rispettivo campo nelle impostazioni SAML di Zabbix.
- Fai clic su Add new claim per aggiungere un attributo:

- Fai clic su Add a group claim per aggiungere un attributo per passare i gruppi a Zabbix:

In questa claim è importante che i nomi dei gruppi (anziché gli ID dei gruppi) vengano passati a Zabbix tramite il Source attribute selezionato. Altrimenti il provisioning JIT degli utenti non funzionerà correttamente.
4. In SAML Certificates scarica il certificato Base64 fornito da Entra ID e inseriscilo in conf/certs dell'installazione del frontend di Zabbix.
Imposta i permessi 644 eseguendo:
chmod 644 entra.cer
5. Usa i valori di Set up <your app name> in Entra ID per configurare l'autenticazione SAML di Zabbix (vedi la sezione successiva):

Configurazione di Zabbix
1. In Zabbix, andare alle impostazioni SAML e compilare le opzioni di configurazione in base alla configurazione di Entra ID:

| Campo di Zabbix | Campo di configurazione in Entra ID | Valore di esempio |
|---|---|---|
| ID entità IdP | Identificatore Microsoft Entra | |
| URL del servizio SSO | URL di accesso | |
| URL del servizio SLO | URL di disconnessione | |
| ID entità SP | Identificatore (ID entità) | |
| Attributo nome utente | Attributo personalizzato (claim) | user_email |
| Attributo nome gruppo | Attributo personalizzato (claim) | groups |
| Attributo nome | Attributo personalizzato (claim) | user_name |
| Attributo cognome | Attributo personalizzato (claim) | user_lastname |
2. Aggiungere il certificato Base64 fornito da Entra ID.
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.
È inoltre necessario configurare la mappatura dei gruppi utenti.
La mappatura dei supporti è facoltativa.
3. Premere il pulsante Update per salvare queste impostazioni.
Provisioning utenti SCIM
1. Nella pagina dell'applicazione Entra ID, dal menu principale apri la pagina Provisioning. Fai clic su Get started e quindi seleziona la modalità di provisioning automatico:
- In Tenant URL, imposta il seguente valore:
https://<path-to-zabbix-ui>/api_scim.php - In Secret token, inserisci un token API di Zabbix con permessi di Super admin.
- Fai clic su Test connection per verificare se la connessione è stata stabilita.

2. Ora puoi aggiungere tutti gli attributi che verranno passati con SCIM a Zabbix. Per farlo, fai clic su Mappings e quindi su Provision Microsoft Entra ID Users.

Nella parte inferiore dell'elenco Attribute Mapping, abilita Show advanced options, quindi fai clic su Edit attribute list for customappsso.
Nella parte inferiore dell'elenco degli attributi, aggiungi i tuoi attributi con tipo 'String':

Salva l'elenco.
3. Ora puoi aggiungere le mappature per gli attributi aggiunti. Nella parte inferiore dell'elenco Attribute Mapping, fai clic su Add New Mapping e crea le mappature come mostrato di seguito:

Quando tutte le mappature sono state aggiunte, salva l'elenco delle mappature.

4. Come prerequisito per il provisioning degli utenti in Zabbix, devi avere utenti e gruppi configurati in Entra ID.
Per farlo, vai a Microsoft Entra admin center e quindi aggiungi utenti/gruppi nelle rispettive pagine Users e Groups.
5. Quando utenti e gruppi sono stati creati in Entra ID, puoi andare al menu Users and groups della tua applicazione e aggiungerli all'app.
6. Vai al menu Provisioning della tua app e fai clic su Start provisioning per eseguire il provisioning degli utenti in Zabbix.
Tieni presente che la richiesta PATCH Users in Entra ID non supporta le modifiche ai media.
Firma delle richieste di autenticazione
È possibile configurare Entra ID per convalidare la firma delle richieste di autenticazione firmate.
Per farlo, creare chiavi pubblica/privata:
openssl req -x509 -newkey rsa:4096 -keyout /usr/share/zabbix/conf/certs/request-sign.key -out /usr/share/zabbix/conf/certs/request-sign.pem -sha256 -days 1825 -nodes
Assegnare i permessi:
chown apache /usr/share/zabbix/conf/certs/request-sign.key
chmod 400 /usr/share/zabbix/conf/certs/request-sign.key
Aggiornare la configurazione del frontend di Zabbix aggiungendo:
$SSO['SP_KEY'] = 'conf/certs/request-sign.key';
$SSO['SP_CERT'] = 'conf/certs/request-sign.crt';
Risoluzione dei problemi
Possono verificarsi problemi di autenticazione con i browser MicroSoft Edge quando un utente, che tenta di accedere a Zabbix tramite SAML, ha già effettuato l'accesso con il profilo MicroSoft Edge. Un segnale di questo problema è che l'utente potrebbe riuscire ad accedere a Zabbix usando MicroSoft Edge in modalità privata.
Per evitare problemi di autenticazione in questo caso, potrebbe essere necessario impostare requestedAuthnContext su "false" nel file di configurazione del frontend di Zabbix (zabbix.conf.php).
$SSO['SETTINGS'] = [
'security' => [
'requestedAuthnContext' => false
]
];