Dans ce tutoriel, je vais vous expliquer comment configurer le SSO avec Zabbix et un serveur ADFS avec SAML.
Je ne vais pas revenir dans ce tutoriel sur ADFS, le SSO et Zabbix, vous trouverez sur le site différents tutoriels
On va commencer par configurer Zabbix pour activer l’authentification SAML dans Zabbix.
Depuis l’interface Web de Zabbix, dans le menu de gauche déroule Utilisateurs, cliquer ensuite sur Authentification puis aller sur Paramètres SAML.
Commencer par activer l’authentification SAML en cochant la case Activer l’authentification SAML 1. On va maintenant configurer les champs obligatoires pour le bon fonctionnement :
- 2 ID d’entité de l’IdP : https://<url-adfs>/adfs/services/trust
- 3 URL du service SSO : https://l<url-adfs>/adfs/ls
- 4 Attribut du nom d’utilisateur : l’attribut qui va permette de faire la liaison entre l’utilisateur dans Zabbix et dans l’Active Directory, j’ai choisi l’UPN : http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
- 5 ID d’entité du SP : indiquer ici l’url d’accès à Zabbix qui doit obligatoirement être en HTTPS.
Cliquer ensuite sur le bouton Actualiser 6 pour enregistrer les modifications.
On va maintenant passer à la configuration sur le serveur ADFS, mais avant pour nous faciliter la tâche, voici le fichier XML à importer dans ADFS pour configurer l’Approbation de partie de confiance.
Télécharger le fichier XML et remplacer dans le fichier zabbix-url
par l’url de votre zabbix.
Une fois cela fait, copier le fichier sur votre serveur ADFS, puis ouvrir la console d’administration AD FS.
Aller sur le dossier Approbation de partie de confiance 1 et cliquer sur Ajouter une approbation de confiance 2.
Au lancement de l’assistant, sélectionner Prise en des recharges des revendications 1 puis cliquer sur le bouton Démarrer 2.
Maintenant on va utiliser le fichier XML, choisir Importer les données concernant la partie de confiance à partir d’un fichier 1, sélectionner le fichier 2 et cliquer sur Suivant 3.
Nommer la partie de confiance 1 et cliquer sur le bouton Suivant 2.
En fonction de la stratégie souhaité, configurer une stratégie d’accès 1 et cliquer sur Suivant 2.
Dans ce tutoriel, j’ai laissé tout le monde, car l’autoprovisioning n’est pas configuré, de ce fait si l’utilisateur n’est pas créé avant dans Zabbix, il n’aura pas d’accès.
Un résumé de l’approbation s’affiche, cliquer sur Suivant 1.
Laisser cocher Configurer une stratégie d’émission de revendication pour cette application 1 et cliquer sur Fermer 2.
Une nouvelle fenêtre s’ouvre en arrière plan pour gérer la stratégie de revendication, cliquer sur le bouton Ajouter une règle 1.
Un nouvelle assistant se lance pour ajouter un règle de revendication, choisir le modèle Envoyer des attributs LDAP en tant que revendication 1 et cliquer sur Suivant 2.
Nommer la règle 1 puis sélectionner Active Directory 2 comme magasin d’attributs.
Mapper les revendications suivantes 1 :
- User-Principal-Name -> UPN
- Employee-ID -> ID de nom
Puis cliquer sur Terminer 2 pour ajouter la règle.
La règle est ajoutée 1, cliquer ensuite sur Appliquer 2 et OK 3.
La partie de confiance est ajoutée dans la console.
Avant de pouvoir vous connectez en utilisant SAML avec ADFS, il faut que le nom d’utilisateur dans Zabbix correspondent à l’UPN dans l’Active Directory :
Une fois ce prérequis configuré, depuis un navigateur aller sur Zabbix. Maintenant, sous le formulaire d’authentification, il y a un lien Authentification avec Single Sign-On (SAML) 1, cliquer dessus.
Il y a deux possibilités, si vous vous êtes déjà authentifié sur le portail ADFS avec un autre application, vous êtes normalement redirigé vers Zabbix directement, sinon vous arrivez sur la page d’authentification ADFS. Entrer votre identifiant,1, mot de passe 2 et cliquer sur le bouton Connexion 3.
Si tout fonctionne correctement, vous êtes redirigé vers Zabbix.
Dépannage
Si vous utilisez Docker, il peut être nécessaire d’ajouter dans cette ligne dans la partie du serveur Web :
zabbix-web-nginx-mysql:
....
environment:
ZBX_SSO_SETTINGS: "{'baseurl': 'https://zabix-url', 'use_proxy_headers': true, 'strict': false}"
Toujours si vous utilisez Docker, il faut ajouter le certificat du service ADFS dans le dossier suivant zbx_env/etc/zabbix/web/certs
sous le nom idp.crt
.
Vous savez maintenant comment configurer le SSO avec Zabbix et ADFS.