Configuration SAML avec OneLogin
Vue d’ensemble
Cette section fournit des directives pour configurer l’authentification unique et le provisionnement des utilisateurs dans Zabbix depuis OneLogin à l’aide de l’authentification SAML 2.0.
Configuration OneLogin
Création de l'application
1. Connectez-vous à votre compte sur OneLogin. À des fins de test, vous pouvez créer un compte développeur gratuit dans OneLogin.
2. Dans l'interface web OneLogin, accédez à Applications > Applications.
3. Cliquez sur "Add App" et recherchez l'application appropriée. Les instructions de cette page sont basées sur l'exemple d'application SCIM Provisioner with SAML (SCIM v2 Enterprise, full SAML).
4. Pour commencer, vous pouvez souhaiter personnaliser le nom d'affichage de votre application. Vous pouvez également ajouter l'icône et les détails de l'application. Ensuite, cliquez sur Save.
Configuration du provisionnement SSO/SCIM
1. Dans Configuration > Application details, définissez le point de terminaison d’authentification unique Zabbix http://<zabbix-instance-url>/zabbix/index_sso.php?acs comme valeur des champs suivants :
- ACS (Consumer) URL Validator
- ACS (Consumer) URL
Notez l’utilisation de « http », et non de « https », afin que le paramètre acs ne soit pas supprimé de la requête.

Il est également possible d’utiliser « https ».
Pour l’utiliser avec Zabbix, ajoutez la ligne suivante au fichier de configuration de l’interface (zabbix.conf.php) :
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
Laissez les autres options avec leurs valeurs par défaut.
2. Dans Configuration > API connection, définissez les valeurs suivantes :
- SCIM Base URL :
https://<zabbix-instance-url>/zabbix/api_scim.php - SCIM JSON Template : doit contenir tous les attributs personnalisés que vous souhaitez transmettre à Zabbix via SCIM, tels que
user_name,user_lastname,user_emailetuser_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}"
}
Les noms des attributs sont arbitraires. D’autres noms d’attributs peuvent être utilisés, mais ils doivent correspondre à la valeur du champ respectif dans les paramètres SAML de Zabbix.
Notez que, pour que le provisionnement des utilisateurs fonctionne, OneLogin doit recevoir en réponse un attribut « name » avec « givenName » et « familyName », même si celui-ci n’était pas requis par le fournisseur de services. Il est donc nécessaire de le spécifier dans le schéma, dans la partie de configuration de l’application.
- SCIM Bearer Token : saisissez un jeton d’API Zabbix disposant des permissions de super administrateur.
Cliquez sur Enable pour activer la connexion.

3. Dans la page Provisioning, activez l’option de provisionnement :

4. La page Parameters contient une liste de paramètres par défaut :
- Vérifiez que « scimusername » correspond à la valeur de connexion de l’utilisateur dans OneLogin (par exemple, l’adresse e-mail) ;
- Activez l’option Include in User Provisioning pour le paramètre « Groups » ;
- Cliquez sur « + » pour créer les paramètres personnalisés requis pour les assertions SAML et le provisionnement des utilisateurs, tels que
user_name,user_lastname,user_emailetuser_mobile:

Lors de l’ajout d’un paramètre, veillez à activer les options Include in SAML assertion et Include in User Provisioning.
- Ajoutez un paramètre « group » correspondant aux rôles des utilisateurs dans OneLogin.
Les rôles des utilisateurs seront transmis sous forme de chaîne, séparés par un point-virgule
;. Les rôles des utilisateurs OneLogin seront utilisés pour créer des groupes d’utilisateurs dans Zabbix :

Vérifiez la liste des paramètres :

5. Dans la page Rules, créez des mappages de rôles d’utilisateurs vers le paramètre Groups par défaut.

Vous pouvez utiliser une expression régulière pour transmettre des rôles spécifiques en tant que groupes.
Les noms de rôles ne doivent pas contenir ;, car OneLogin l’utilise comme séparateur lors de l’envoi d’un attribut comportant plusieurs rôles.
6. Téléchargez le certificat IdP. Définissez ses permissions sur 644 en exécutant :
chmod 644 idp.crt
Configuration de Zabbix
1. Dans Zabbix, accédez aux paramètres SAML et renseignez les options de configuration en fonction de la configuration OneLogin :

| Champ Zabbix | Champ de configuration dans OneLogin | Exemple de valeur |
|---|---|---|
| ID d’entité IdP | URL de l’émetteur (voir l’onglet SSO de votre application dans OneLogin) |
|
| URL du service SSO | Point de terminaison SAML 2.0 (HTTP) (voir l’onglet SSO de votre application dans OneLogin) |
|
| URL du service SLO | Point de terminaison SLO (HTTP) (voir l’onglet SSO de votre application dans OneLogin) |
|
| Attribut du nom d’utilisateur | Paramètre personnalisé | user_email |
| Attribut du nom du groupe | Paramètre personnalisé | group |
| Attribut du prénom de l’utilisateur | Paramètre personnalisé | user_name |
| Attribut du nom de famille de l’utilisateur | Paramètre personnalisé | user_lastname |
Il est également nécessaire de configurer le mappage des groupes d’utilisateurs. Le mappage des médias est facultatif. Cliquez sur Mettre à jour pour enregistrer ces paramètres.
2. Ajoutez le certificat Base64 fourni par OneLogin.
Si $SSO['CERT_STORAGE'] = 'database' est défini dans le fichier de configuration de l’interface (zabbix.conf.php), vous pouvez coller le texte du certificat ou charger le fichier de certificat dans l’interface pendant la configuration SAML : aucun fichier n’est requis sur le système de fichiers.
Si $SSO['CERT_STORAGE'] = 'file' est défini dans le fichier de configuration, le certificat doit être disponible sur le système de fichiers (par défaut dans ui/conf/certs ou dans le chemin configuré dans le fichier de configuration) et l’interface n’enregistrera pas les certificats dans la base de données.
Notez que si $SSO['CERT_STORAGE'] n’est pas défini ou est commenté, le stockage dans un fichier est utilisé par défaut et les certificats sont lus depuis ui/conf/certs.
Vous pouvez accéder au téléchargement du certificat dans OneLogin en sélectionnant Applications > SSO, puis en cliquant sur View details sous le certificat actuel.
3. Cliquez sur le bouton Mettre à jour pour enregistrer ces paramètres.
Provisionnement des utilisateurs SCIM
Avec le provisionnement des utilisateurs activé, il est désormais possible d'ajouter ou de mettre à jour des utilisateurs et leurs rôles dans OneLogin, puis de les provisionner immédiatement dans Zabbix.
Par exemple, vous pouvez créer un nouvel utilisateur :

Ajoutez-le à un rôle utilisateur et à l'application qui provisionnera l'utilisateur :

Lors de l'enregistrement de l'utilisateur, celui-ci sera provisionné dans Zabbix. Dans Application > Users, vous pouvez vérifier l'état du provisionnement des utilisateurs actuels de l'application :

S'il est correctement provisionné, l'utilisateur apparaît dans la liste des utilisateurs Zabbix.
