Zabbix : configuration du SSO avec un serveur ADFS

Windows Server 2012R2Windows Server 2016Windows Server 2019

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.

<?xml version="1.0" encoding="utf-8"?>
<EntityDescriptor entityID="https://zabbix-url" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
    <SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
        <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://zabbix-url/index_sso.php?acs" index="0" />
        <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://zabbix-url/index_sso.php?sls" />
        <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
    </SPSSODescriptor>
   <Organization>
      <OrganizationName xml:lang="en">Your Organization Name</OrganizationName>
      <OrganizationDisplayName xml:lang="en">Zabbix Network Monitor</OrganizationDisplayName>
      <OrganizationURL xml:lang="en">https://zabbix-url/</OrganizationURL>
   </Organization>
   <ContactPerson contactType="administrative">
      <GivenName>System Administrator</GivenName>
      <EmailAddress>[email protected]</EmailAddress>
   </ContactPerson>
   <ContactPerson contactType="support">
      <GivenName>Tech Support</GivenName>
      <EmailAddress>[email protected]</EmailAddress>
   </ContactPerson>
</EntityDescriptor>

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.

Romain Drouche
Romain Drouche
Architecte SystĂšme | MCSE: Core Infrastructure
Expert en infrastructures IT avec plus de 15 ans d’expĂ©rience sur le terrain. Actuellement Chef de projet SystĂšmes et RĂ©seaux et RĂ©fĂ©rent SSI (SĂ©curitĂ© des SystĂšmes d’Information), je mets mon expertise au service de la fiabilitĂ© et de la sĂ©curitĂ© des environnements technologiques.

Laisser un commentaire