[comment]: # ({8d23af63-23bd62a5})
# 14 Configuration SAML avec OneLogin

[comment]: # ({/8d23af63-23bd62a5})

[comment]: # ({b873fa12-2fcac093})
#### Vue d’ensemble

Cette section fournit des directives pour configurer l’authentification unique et le provisionnement des utilisateurs dans Zabbix depuis [OneLogin](https://onelogin.com) à l’aide de l’authentification SAML 2.0.

[comment]: # ({/b873fa12-2fcac093})

[comment]: # ({b1fbe677-04a34e60})
#### Configuration OneLogin

[comment]: # ({/b1fbe677-04a34e60})

[comment]: # ({ac4e104b-f0ff96b7})
##### Création d'une 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 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 d'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*.

[comment]: # ({/ac4e104b-f0ff96b7})

[comment]: # ({3bcbc5e8-58a8c759})
##### Configuration de la mise en place du provisionnement SSO/SCIM

1\. Dans *Configuration* -> *Détails de l'application*, définissez le point de terminaison de connexion unique Zabbix `http://<zabbix-instance-url>/zabbix/index_sso.php?acs` comme valeur de ces champs :

-   *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é dans la requête.

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

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 avec leurs valeurs par défaut.

2\. Dans *Configuration* -> *Connexion API*, 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_email` et `user_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. Différents noms d'attributs peuvent être utilisés, mais ils doivent correspondre à la valeur du champ respectif dans les paramètres SAML de Zabbix.

Notez que pour que le provisionnement 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 de configuration de l'application.

-   *SCIM Bearer Token* : saisissez un jeton API Zabbix avec les permissions Super admin.

Cliquez sur *Enable* pour activer la connexion.

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

3\. Dans la page *Provisioning*, activez l'option Provisioning :

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

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 ex. 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 le provisionnement des utilisateurs, tels que `user_name`, `user_lastname`, `user_email` et `user_mobile` :

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

Lors de l'ajout d'un paramètre, assurez-vous de cocher à la fois les options *Include in SAML assertion* et *Include in User Provisioning*.

-   Ajoutez un paramètre 'group' qui corresponde aux rôles utilisateur dans OneLogin. Les rôles utilisateur 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 :

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

Vérifiez la liste des paramètres :

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

5\. Dans la page *Rules*, créez des mappages de rôles utilisateur vers le paramètre Groups par défaut.

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

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 comportant plusieurs rôles.

[comment]: # ({/3bcbc5e8-58a8c759})

[comment]: # ({ba0bd783-9be86dbb})
#### 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 fonction de la configuration OneLogin :

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

|Champ Zabbix|Champ de configuration dans OneLogin|Valeur d'exemple|
|----|----|--|
|*ID d'entité IdP*|URL de l'émetteur<br>(voir l'onglet SSO de votre application dans OneLogin)| |
|*URL du service SSO*|Point de terminaison SAML 2.0 (HTTP)<br>(voir l'onglet SSO de votre application dans OneLogin)| |
|*URL du service SLO*|Point de terminaison SLO (HTTP)<br>(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*|Paramètre personnalisé|`user_name`|
|*Attribut du nom de famille*|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\. Téléchargez le certificat fourni par OneLogin et placez-le dans `conf/certs` de l'installation de l'interface Zabbix, sous le nom idp.crt. 

Définissez les permissions 644 en exécutant :

    chmod 644 idp.crt

Vous pouvez accéder au téléchargement du certificat dans OneLogin via *Applications* -> *SSO* -> cliquez sur *Afficher les détails* sous le certificat actuel.

Il est possible d'utiliser un autre nom et un autre emplacement pour le certificat. Dans ce cas, veillez à ajouter la ligne suivante à `conf/zabbix.conf.php` :

```
$SSO['IDP_CERT'] = 'path/to/certname.crt';
```

[comment]: # ({/ba0bd783-9be86dbb})

[comment]: # ({91a2d08a-09c52023})
#### Provisionnement des utilisateurs SCIM

Avec le provisionnement des utilisateurs activé, il est désormais possible d’ajouter ou de mettre à jour des utilisateurs et leurs rôles dans OneLogin, puis de les faire provisionner immédiatement dans Zabbix.

Par exemple, vous pouvez créer un nouvel utilisateur :

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

Ajoutez-le à un rôle utilisateur et à l’application qui provisionnera l’utilisateur :

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

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 :

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

Si le provisionnement réussit, l’utilisateur apparaîtra dans la liste des utilisateurs Zabbix.

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

[comment]: # ({/91a2d08a-09c52023})
