14 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 OneLogin.
À des fins de test, vous pouvez créer un compte développeur gratuit dans OneLogin.
2. Dans l’interface web de 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 de l’application SCIM Provisioner with SAML (SCIM v2 Enterprise, full SAML).
4. Pour commencer, vous pouvez 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 de l’approvisionnement 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 que cela fonctionne avec Zabbix, il est nécessaire d’ajouter la ligne suivante à conf/zabbix.conf.php :
$SSO['SETTINGS'] = ['use_proxy_headers' => true];
Laissez les autres options à 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. Des noms d’attributs différents peuvent être utilisés ; toutefois, il est nécessaire qu’ils correspondent à la valeur du champ respectif dans les paramètres SAML de Zabbix.
Notez que, pour que l’approvisionnement des utilisateurs fonctionne, OneLogin doit recevoir en réponse un attribut « name » avec « givenName » et « familyName », même si cela 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 configuration de l’application.
- SCIM Bearer Token : saisissez un jeton d’API Zabbix avec des autorisations de Super admin.
Cliquez sur Enable pour activer la connexion.

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

4. La page Parameters contient une liste de paramètres par défaut :
- Assurez-vous que « scimusername » correspond à la valeur de connexion de l’utilisateur dans OneLogin (par exemple, l’e-mail) ;
- Cochez 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 l’approvisionnement des utilisateurs, tels que
user_name,user_lastname,user_emailetuser_mobile:

Lors de l’ajout d’un paramètre, veillez à cocher à la fois 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 utilisateur 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 correspondances de rôles utilisateur avec 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 contenant plusieurs rôles.
6. Téléchargez le certificat IdP. Définissez-lui les permissions 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 | Valeur d’exemple |
|---|---|---|
| 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 de 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 zabbix.conf.php, vous pouvez coller le texte du certificat ou téléverser le fichier du certificat dans l’interface web lors de la configuration SAML — aucun fichier n’est requis sur le système de fichiers.
Si $SSO['CERT_STORAGE'] = 'file' est défini dans zabbix.conf.php, le certificat doit être disponible sur le système de fichiers (par défaut dans ui/conf/certs ou dans le chemin configuré dans zabbix.conf.php) et l’interface web ne stockera 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 des fichiers est supposé et les certificats sont lus depuis ui/conf/certs.
Vous pouvez accéder au téléchargement du certificat dans OneLogin via Applications -> SSO -> cliquez sur View details sous le certificat actuel.
3. Appuyez 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/de mettre à jour des utilisateurs et leurs rôles dans OneLogin et de les provisionner immédiatement dans Zabbix.
Par exemple, vous pouvez créer un nouvel utilisateur :

L’ajouter à 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 :

Si le provisionnement a réussi, l’utilisateur peut être vu dans la liste des utilisateurs de Zabbix.
