This is a translation of the original English documentation page. Help us make it better.

11 Configuration SAML avec Okta

Cette section décrit comment configurer Okta pour activer l'authentification SAML 2.0 pour Zabbix.

Configuration Okta

1. Allez sur https://okta.com et enregistrez-vous ou connectez-vous à votre compte.

2. Dans l'interface Web d'Okta, accédez à * Applications → Applications * et appuyez sur le bouton "Ajouter une application" ().

3. Appuyez sur le bouton "Créer une nouvelle application" (). Dans une fenêtre contextuelle, sélectionnez Plate-forme : Web, Méthode de connexion : SAML 2.0 et appuyez sur le bouton "Créer".

4. Remplissez les champs de l'onglet Paramètres généraux (le premier onglet qui apparaît) selon vos préférences et appuyez sur "Suivant".

5. Dans l'onglet Configurer SAML, entrez les valeurs fournies ci-dessous, puis appuyez sur "Suivant".

  • Dans la section GÉNÉRAL :
    • URL d'authentification unique : https://<votre-url-zabbix>/ui/index_sso.php?acs
      La case Utiliser ceci pour l'URL du destinataire et l'URL de destination doit être cochée
    • Audience URI (SP Entity ID): zabbix
      Notez que cette valeur sera utilisée dans l'assertion SAML en tant qu'identifiant unique du fournisseur de services (si elle ne correspond pas, l'opération sera rejetée). Il est possible de spécifier une URL ou toute chaîne de données dans ce champ.
    • Default RelayState:
      Laissez ce champ vide ; si une redirection personnalisée est requise, elle peut être ajoutée dans Zabbix dans les paramètres Administration → Utilisateurs.
    • Remplissez les autres champs selon vos préférences.

Si vous envisagez d'utiliser une connexion cryptée, générez des certificats de cryptage privés et publics, puis téléchargez le certificat public sur Okta. Le formulaire de téléchargement de certificat s'affiche lorsque Cryptage d'assertion est défini sur Crypté (cliquez sur Afficher les paramètres avancés pour trouver ce paramètre).

  • Dans la section ÉNONCÉS D'ATTRIBUTS (FACULTATIF), ajoutez une déclaration d'attribut avec :
    • Nom : usrEmail
    • Format Nom : Non spécifié
    • Valeur : user.email

6. Dans l'onglet suivant, sélectionnez "Je suis un éditeur de logiciels. Je souhaite intégrer mon application à Okta" et appuyez sur "Terminer".

7. Maintenant, accédez à l'onglet Affectations et appuyez sur le bouton "Attribuer", puis sélectionnez Attribuer aux personnes dans le menu déroulant.

8. Dans une fenêtre contextuelle qui apparaît, attribuez l'application créée aux personnes qui utiliseront SAML 2.0 pour s'authentifier auprès de Zabbix, puis appuyez sur "Enregistrer et revenir en arrière".

9. Accédez à l'onglet Connexion et appuyez sur le bouton "Afficher les instructions de configuration". Les instructions de configuration seront affichées dans un nouvel onglet ; gardez cet onglet ouvert lors de la configuration de Zabbix.

Configuration de Zabbix

1. Dans Zabbix, accédez aux paramètres SAML dans la section Administration → Authentification et copier les informations des instructions de la configuration d'Okta dans les champs correspondants :

  • URL du service SSO → URL du service SSO
  • ID d'entité de l'IdP → ID d'entité IdP
  • Attribut du nom d'utilisateur → Nom d'attribut (usrEmail)
  • ID d'entité du SP → URI d'audience

2. Téléchargez le certificat fourni dans la page des instructions de configuration d'Okta dans le dossier ui/conf/certs en tant que idp.crt et définissez l'autorisation 644 par exécutant :

chmod 644 idp.crt

Notez que si vous avez mis à niveau vers Zabbix 5.0 à partir d'une version plus ancienne, vous devrait également ajouter manuellement ces lignes au fichier zabbix.conf.php (situé dans le répertoire /ui/conf/):

// Utilisé pour l'authentification SAML.
       $SSO['SP_KEY'] = 'conf/certs/sp.key' ; // Chemin vers votre clé privée.
       $SSO['SP_CERT'] = 'conf/certs/sp.crt' ; // Chemin vers votre clé publique.
       $SSO['IDP_CERT'] = 'conf/certs/idp.crt' ; // Chemin d'accès à la clé publique IdP.
       $SSO['SETTINGS'] = [] ; // Paramètres additionnels

Voir les instructions génériques Authentification SAML pour plus de détails.

3. Si Assertion Encryption a été défini sur Encrypted dans Okta, la case à cocher "Assertions" du paramètre Chiffrement doit être cochée dans Zabbix également.

4. Cliquez sur le bouton "Actualiser" pour enregistrer ces paramètres.

Pour vous connecter avec SAML, le nom d'utilisateur dans Zabbix doit correspondre à l'e-mail d'Okta. Ces paramètres peuvent être modifiés dans la section Administration → Utilisateurs de l'interface Web Zabbix.

SCIM provisioning

1. To turn on SCIM provisioning, go to "General" -> "App Settings" of the application in Okta.

Mark the Enable SCIM provisioning checkbox. As a result, a new Provisioning tab appears.

2. Go to the "Provisioning" tab to set up a SCIM connection:

  • In SCIM connector base URL specify the path to the Zabbix frontend and append api_scim.php to it, i.e.:
    https://<your-zabbix-url>/zabbix/api_scim.php
  • Unique identifier field for users: email
  • Authentication mode: HTTP header
  • In Authorization enter a valid API token with Super admin rights

If you are using Apache, you may need to change the default Apache configuration in /etc/apache2/apache2.conf by adding the following line:

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

Otherwise Apache does not send the Authorization header in request.

3. Click on Test Connector Configuration to test the connection. If all is correct a success message will be displayed.

4. In "Provisioning" -> "To App", make sure to mark the following checkboxes:

  • Create Users
  • Update User Attributes
  • Deactivate Users

This will make sure that these request types will be sent to Zabbix.

5. Make sure that all attributes defined in SAML are defined in SCIM. You can access the profile editor for your app in "Provisioning" -> "To App", by clicking on Go to Profile Editor.

Click on Add Attribute. Fill the values for Display name, Variable name, External name with the SAML attribute name, for example, user_name.

Extenal namespace should be the same as user schema: urn:ietf:params:scim:schemas:core:2.0:User

6. Go to "Provisioning" -> "To App" -> "Attribute Mappings" of your application. Click on Show Unmapped Attributes at the bottom. Newly added attributes appear.

7. Map each added attribute.

8. Add users in the "Assignments" tab. The users previously need to be added in Directory -> People. All these assignments will be sent as requests to Zabbix.

9. Add groups in the "Push Groups" tab. The user group mapping pattern in Zabbix SAML settings must match a group specified here. If there is no match, the user cannot be created in Zabbix.

Information about group members is sent every time when some change is made.