[comment]: # ({236cb9a8-e09cf279})
# 13 Configuration SAML avec Okta

Cette section fournit des recommandations pour configurer [Okta](https://okta.com) afin d'activer l'authentification SAML 2.0 et le provisionnement des utilisateurs pour Zabbix.

[comment]: # ({/236cb9a8-e09cf279})

[comment]: # ({9295c91d-c8df5f13})
#### Configuration Okta

1\. Allez sur <https://developer.okta.com/signup/> et inscrivez-vous/connectez-vous à votre compte.

2\. Dans l'interface web Okta, accédez à *Applications → Applications*.

3\. Cliquez sur *Create App Integration*.

![](../../../../assets/en/manual/appendix/install/okta_app_create.png){width="600"}

Sélectionnez "SAML 2.0" comme méthode de connexion, puis cliquez sur *Next*.

4\. Dans les paramètres généraux, renseignez le nom de l'application, puis cliquez sur *Next*.

5\. Dans la configuration SAML, saisissez les valeurs fournies ci-dessous, puis
cliquez sur *Next*.

![](../../../../assets/en/manual/appendix/install/okta_app_conf.png){width="600"}

-   Dans **General**, ajoutez :
    -   *Single sign-on URL* :
        `http://<your-zabbix-url>/zabbix/index_sso.php?acs`<br>
        Notez l'utilisation de "http" et non de "https", afin que le paramètre `acs` ne soit pas supprimé dans la requête. La case *Use this for Recipient URL and Destination URL* doit également être cochée.
    -   *Audience URI (SP Entity ID)* : `zabbix`<br>
        Notez que cette valeur sera utilisée dans l'assertion SAML comme 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 caractères dans ce champ.
    -   *Default RelayState* :<br>
        Laissez ce champ vide ; si une redirection personnalisée est nécessaire, elle peut être ajoutée dans Zabbix dans les paramètres *Users → Users*.
    -   Renseignez les autres champs selon vos préférences.

-   Dans **Attribute Statements/Group Attribute Statements**, ajoutez :

![](../../../../assets/en/manual/appendix/install/okta_app_conf2.png){width="600"}

Ces déclarations d'attributs sont insérées dans les assertions SAML partagées avec Zabbix.

Les noms d'attributs utilisés ici sont des exemples arbitraires. Vous pouvez utiliser d'autres noms d'attributs, toutefois ils doivent correspondre à la valeur du champ respectif dans les paramètres SAML de Zabbix.

Si vous souhaitez configurer la connexion SAML à Zabbix *sans* provisionnement JIT des utilisateurs, alors seul l'attribut email est requis.

::: noteclassic
 Si vous prévoyez d'utiliser une connexion chiffrée, générez les certificats de chiffrement privés et publics, puis téléversez le certificat public vers Okta. Le formulaire de téléversement du certificat apparaît lorsque *Assertion Encryption* est défini sur "Encrypted" (cliquez sur *Show Advanced Settings* pour trouver ce paramètre).
:::

6\. Dans l'onglet suivant, sélectionnez "I'm a software vendor. I'd like to
integrate my app with Okta" puis appuyez sur "Finish".

7\. Accédez à l'onglet "Assignments" de l'application nouvellement créée
et cliquez sur le bouton *Assign*, puis sélectionnez *Assign to People* dans la liste déroulante.

![](../../../../assets/en/manual/appendix/install/okta_app_assign.png)

8\. Dans la fenêtre contextuelle qui apparaît, attribuez l'application aux personnes qui utiliseront
SAML 2.0 pour s'authentifier auprès de Zabbix, puis cliquez sur *Save and go back*.

9\. Accédez à l'onglet "Sign On" et cliquez sur le bouton *View Setup
Instructions*.

Les **instructions** de configuration s'ouvriront dans un nouvel onglet ; laissez cet onglet ouvert pendant la configuration de Zabbix.

[comment]: # ({/9295c91d-c8df5f13})

[comment]: # ({940784da-bdad4ea8})
#### Configuration de Zabbix

1\. Dans Zabbix, allez dans les [paramètres SAML](/manual/web_interface/frontend_sections/users/authentication/saml#setting-up-zabbix) 
et renseignez les options de configuration en vous basant sur les instructions de configuration d'Okta :

![](../../../../assets/en/manual/appendix/install/okta_zabbix_saml.png){width="600"}

|Champ Zabbix|Champ de configuration dans Okta|Valeur d'exemple|
|----|----|--|
|*ID d'entité du IdP*|Issuer du fournisseur d'identité| |
|*URL du service SSO*|URL de connexion unique du fournisseur d'identité| |
|*Attribut du nom d'utilisateur*|Nom de l'attribut|`usrEmail`|
|*ID d'entité du SP*|URI d'audience|`zabbix`|
|*Attribut du nom du groupe*|Nom de l'attribut|`groups`|
|*Attribut du prénom de l'utilisateur*|Nom de l'attribut|`user_name`|
|*Attribut du nom de famille de l'utilisateur*|Nom de l'attribut|`user_lastname`|

Il est également nécessaire de configurer le mappage des groupes d'utilisateurs et des médias.

2\. Téléchargez le certificat fourni dans les instructions de configuration SAML d'Okta
dans le dossier *ui/conf/certs* sous le nom idp.crt. 

Attribuez-lui les permissions 644 en exécutant :

    chmod 644 idp.crt

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

4\. Appuyez sur le bouton "Update" pour enregistrer ces paramètres.

[comment]: # ({/940784da-bdad4ea8})

[comment]: # ({87d78e73-ff17ddca})
#### Provisionnement SCIM

1\. Pour activer le provisionnement SCIM, allez dans "General" -> "App Settings" de l'application dans Okta.

Cochez la case *Enable SCIM provisioning*. Un nouvel onglet *Provisioning* apparaît alors.

2\. Allez dans l'onglet "Provisioning" pour configurer une connexion SCIM :

-   Dans *SCIM connector base URL*, indiquez le chemin vers l'interface Zabbix et ajoutez-y `api_scim.php`, c'est-à-dire :<br>
    `https://<your-zabbix-url>/zabbix/api_scim.php`
-   *Unique identifier field for users* : `email`
-   *Authentication mode* : `HTTP header`
-   Dans *Authorization*, saisissez un jeton API valide avec les droits Super admin

![](../../../../assets/en/manual/appendix/install/okta_scim_conn.png){width="600"}

::: noteimportant
Si vous rencontrez des problèmes d'authentification, consultez [Authorization header forwarding](/manual/installation/known_issues#authorization-header-forwarding).
:::

3\. Cliquez sur *Test Connector Configuration* pour tester la connexion. Si tout est correct, un message de réussite s'affichera.

4\. Dans "Provisioning" -> "To App", assurez-vous de cocher les cases suivantes :

-    Create Users
-    Update User Attributes
-    Deactivate Users

Cela garantira que ces types de requêtes seront envoyés à Zabbix.

5\. Assurez-vous que tous les attributs définis dans SAML sont définis dans SCIM. Vous pouvez accéder à l'éditeur de profil de votre application dans "Provisioning" -> "To App", en cliquant sur *Go to Profile Editor*.

Cliquez sur *Add Attribute*. Renseignez les valeurs de *Display name*, *Variable name* et *External name* avec le nom de l'attribut SAML, par exemple `user_name`.

![](../../../../assets/en/manual/appendix/install/okta_add_attr.png)

*External namespace* doit être identique au schéma utilisateur : `urn:ietf:params:scim:schemas:core:2.0:User`

6\. Allez dans "Provisioning" -> "To App" -> "Attribute Mappings" de votre application. Cliquez sur *Show Unmapped Attributes* en bas de page. Les attributs nouvellement ajoutés apparaissent.

7\. Mappez chaque attribut ajouté.

![](../../../../assets/en/manual/appendix/install/okta_map_attr.png)

8\. Ajoutez des utilisateurs dans l'onglet "Assignments". Les utilisateurs doivent d'abord être ajoutés dans *Directory* -> *People*. Toutes ces affectations seront envoyées sous forme de requêtes à Zabbix.

9\. Ajoutez des groupes dans l'onglet "Push Groups". Le modèle de correspondance des groupes d'utilisateurs dans les paramètres SAML de Zabbix doit correspondre à un groupe spécifié ici. S'il n'y a pas de correspondance, l'utilisateur ne peut pas être créé dans Zabbix.

Les informations sur les membres du groupe sont envoyées à chaque modification.

[comment]: # ({/87d78e73-ff17ddca})
