# Clients OAuth

## Présentation

GLPI 11 introduit une fonctionnalité majeure d'authentification OAuth 2.0 qui révolutionne la façon dont les applications tierces accèdent à vos données GLPI. Cette nouvelle fonctionnalité permet une intégration sécurisée et moderne avec l'écosystème de votre organisation. OAuth 2.0 est un protocole d'autorisation moderne qui permet aux applications tierces d'accéder à vos ressources GLPI sans partager vos mots de passe.

## Pourquoi l’utiliser ?

* **Sécurité renforcée** : Pas de partage de mots de passe
* **Contrôle granulaire** : Permissions spécifiques par application
* **Intégrations modernes** : Compatible avec applications mobiles et web
* **Gestion centralisée** : Révocation d'accès instantanée
* **Traçabilité** : Suivi des accès et utilisation

## Prérequis

* Profil **Administrateur** ou droits sur **OAuth Clients**
* Accès au menu **Configuration**

## Création du Client OAuth

Étape 1 : Navigation dans l'interface

* Dans le menu principal, cliquez sur **Configuration**
* Sélectionnez **OAuth Clients** dans le sous-menu
* Sur la page OAuth Clients, cliquez sur **Ajouter**

<div align="left"><figure><img src="/files/Y1YMzaGpgnTj12ftyV0n" alt="Add a new client OAuth" width="475"><figcaption><p>Ajoutez un nouveau client OAuth</p></figcaption></figure></div>

### Informations de base

* **Nom**: Nom descriptif du client
* **Commentaire**: Description du client (optionnel)

### Sélection des grants

Choisissez le type d'authentification selon votre application

<div align="left"><figure><img src="/files/73oYWrY4ZWO0p5tb7i5n" alt=""><figcaption><p>Sélectionnez le type d'authentification</p></figcaption></figure></div>

**Authorization Code:** Authentification interactive la plus sécurisée pour les applications avec utilisateurs.. L'utilisateur est redirigé vers GLPI pour s'authentifier, puis renvoyé vers l'application avec un code temporaire qui est échangé contre un token.

**Password Grant:** Authentification directe avec nom d'utilisateur et mot de passe. L'application demande directement les credentials utilisateur et les envoie à GLPI pour obtenir un token.

**Client Credentials:** Authentification machine-à-machine sans utilisateur humain. L'application s'authentifie uniquement avec ses propres identifiants (client ID/secret), aucun utilisateur spécifique impliqué.

### Définir les scopes (permissions)

<div align="left"><figure><img src="/files/2qwrNyvLC3aXohQ5RgtL" alt=""><figcaption><p>Définissez les permissions</p></figcaption></figure></div>

* **api**: Accès général à l'API GLPI
* **user**: Informations de l'utilisateur connecté
* **email**: Adresse email de l'utilisateur
* **inventory**: Soumission d'inventaires
* **status**: État du système
* **graphql**: Interface GraphQL

### **Sauvegarder**

* Cliquez sur **Ajouter** en bas du formulaire
* Le client OAuth est créé avec des identifiants uniques (ClientID et Client Secret)

<figure><img src="/files/cXvVF1ABYIGXovZLITxt" alt=""><figcaption><p>Sauvegardez votre nouveau client OAuth</p></figcaption></figure>

## Configuration du client OAuth

### URI de redirection

* Éditez votre client OAuth
* Section **"URI de redirection autorisées"**
* Ajoutez les URLs de votre application

<figure><img src="/files/jr2kvjVHxWBQvRPwYU0A" alt=""><figcaption><p>Indiquez les URLs à autoriser</p></figcaption></figure>

### Restrictions IP

* Section **"Restrictions IP"**
* Ajoutez les adresses IP autorisées

<div align="left"><figure><img src="/files/8GMyn6c3xkksYFIwSYVZ" alt=""><figcaption><p>Ajoutez les IP autorisées</p></figcaption></figure></div>

## Utiliser le Client OAuth avec l’agent

### Activer l’inventaire

* Dans le menu principal, cliquez sur **Administration**
* Sélectionnez **Inventaire** dans le sous-menu
* Cochez la case à cocher "**Enable inventory"**

<figure><img src="/files/09w9C5K1Ul4GrI9BiGzQ" alt=""><figcaption><p>Activez l'inventaire</p></figcaption></figure>

### Autorisation des agents

Une fois l’inventaire activé, le champ notamment l’option **« Authentification des agents »**.&#x20;

Dans la **liste déroulante** correspondante, sélectionnez **« OAuth – Client credentials »** afin d’utiliser un **client OAuth** comme source d’authentification.

<figure><img src="/files/Y7lM1CaAeYz781v1Jqt8" alt=""><figcaption><p>Activez l'authentification OAuth pour les agens</p></figcaption></figure>

### Création du client OAuth

Créez un **client OAuth** qui sera utilisé par l’agent.\
Dans la section **« Scopes »**, sélectionnez **`Inventory`** afin d’autoriser l’accès aux fonctionnalités d’inventaire.

{% hint style="warning" %}
**Attention :** pensez à **copier immédiatement le client secret**, car il ne sera affiché qu’une seule fois et ne pourra pas être récupéré par la suite.
{% endhint %}

Une fois le client créé, conservez précieusement les informations suivantes :

* **Client ID**
* **Client Secret**

Ces valeurs seront nécessaires pour la configuration de l’agent à l’étape suivante.

<div align="left"><figure><img src="/files/1ebWNWCa8MQ5OgYrqwKY" alt=""><figcaption><p>Ajoutez l'inventaire au scope</p></figcaption></figure></div>

### Connexion à l’agent

Pour finaliser la configuration, ajoutez les paramètres **`oauth-client-id`** et **`oauth-client-secret`** dans la configuration de l’agent.\
Ces informations permettront à l’agent de s’authentifier correctement auprès du serveur OAuth.

* **`oauth-client-id`** : copiez/collez le **Client ID** du client OAuth créé précédemment.
* **`oauth-client-secret`** : copiez/collez le **Client Secret** associé à ce même client OAuth.

Une fois ces paramètres renseignés, **enregistrez la configuration** de l’agent.\
Celui-ci utilisera alors automatiquement ces identifiants pour obtenir un **jeton d’accès (access token)** et communiquer de manière sécurisée avec le serveur.\
\ <a href="https://glpi-agent.readthedocs.io/en/1.10/man/glpi-agent.html#server-authentication" class="button secondary">Configurer mes agents GLPI</a>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.glpi-project.org/documentation/fr/modules/configuration/oauth-clients.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
