# OAuth IMAP

| Téléchargement                                      | Sources                                    |
| --------------------------------------------------- | ------------------------------------------ |
| <https://github.com/pluginsGLPI/oauthimap/releases> | <https://github.com/pluginsGLPI/oauthimap> |

{% hint style="info" %}
Microsoft supprime progressivement les protocoles TLS 1.0 et 1.1 pour toutes les applications Microsoft 365. Afin de maintenir votre collecteur en fonctionnement, vous devez ajouter le plugin **Oauth IMAP**, disponible sur le marketplace.
{% endhint %}

{% hint style="info" %}
Les tokens Oauth pour le collecteur, récupérés lors de l'authentification auprès d'Azure par le plugin OauthIMAP, sont des tokens "hors ligne" qui délèguent l'autorisation à une application tierce (GLPI). Ces tokens fournissent un code de renouvellement qui sera utilisé par l'application pour les renouveler automatiquement sans intervention de l'utilisateur. Vous ne serez donc pas invité à vous réauthentifier après la 1ère demande d'autorisation.
{% endhint %}

## Prérequis (auto-hébergé)

| Version GLPI | PHP minimum | Recommandé |
| ------------ | ----------- | ---------- |
| 10.0.x       | 8.1         | 8.2        |
| 11.0.x       | 8.2         | 8.4        |

{% hint style="info" %}
Ce plugin est disponible sans souscription [GLPI Network](https://services.glpi-network.com/#offers). Il est également disponible sur [GLPI Cloud](https://glpi-network.cloud).
{% endhint %}

## Services de messagerie pris en charge

Support OAuth IMAP :

* Gmail : <https://developers.google.com/gmail/imap/xoauth2-protocol?hl=fr>
* Entra : <https://learn.microsoft.com/fr-fr/power-platform/admin/connect-gmail-oauth2>

***

## Installer le plugin

* Rendez-vous sur le marketplace. Téléchargez **Oauth IMAP** et activez-le

<div align="left"><figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2FHe2aWltIHYYtvyHUEU6e%2Foauth-imap-plugin-install.png?alt=media&#x26;token=ed91d886-cfc2-4787-976e-a93430b89f47" alt="images/oauth-imap-1.png"><figcaption><p>Installer OAuth IMAP</p></figcaption></figure></div>

***

## Collecteur Avec Entra

* Ouvrez le [Portail Azure](https://portal.azure.com/#home) de votre tenant
* Dans la barre de recherche tapez **registration**
* puis sélectionnez **App registrations**

<div align="left"><figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2Fgit-blob-a55ae28b889aa63712c8656bfd20d809753e6d13%2Foauth-imap-2.png?alt=media" alt="images/oauth-imap-2.png"><figcaption></figcaption></figure></div>

Voici les étapes de configuration incluant les phases de configuration côté Entra.

***

### Enregistrer votre application Entra

#### Créer l'application

* Cliquez sur **New registration**
* Entrez le nom souhaité, sélectionnez le type de compte pris en charge puis entrez l'URL de redirection (présente dans la configuration du plugin depuis votre interface GLPI : [https://XXXXXXXXXXXXXX/marketplace/oauthimap/front/authorization.callback.php](https://xxxxxxxxxxxxxx/marketplace/oauthimap/front/authorization.callback.php)) en spécifiant l'option **Web**
* Puis cliquez sur **Register**.

<figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2Fgit-blob-a3abe0320642094b92b7fcb0e8a184bf966f9e81%2Foauth-imap-3.png?alt=media" alt="images/oauth-imap-3.png"><figcaption></figcaption></figure>

#### Ajouter un secret

* Dans l'onglet **Certificates and secrets**
* Cliquez sur **Client secrets**
* Puis **New client secret**

<figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2Fgit-blob-250443f57fcb775ee21561f41ebc4de995896d21%2Foauth-imap-4.png?alt=media" alt="images/oauth-imap-4.png"><figcaption></figcaption></figure>

* Entrez une description puis une date d'expiration
* Une **value** de secret est alors générée. Conservez bien cette valeur car une fois que vous aurez quitté cette page, elle ne sera plus récupérable

<div align="left"><figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2Fgit-blob-cbee62afbbe8d2f4bb21b5e48e3dfff22566787c%2Foauth-imap-5.png?alt=media" alt="images/oauth-imap-5.png"><figcaption></figcaption></figure></div>

* Revenez dans l'onglet **Overview** et **copiez** les valeurs suivantes ainsi que le secret vu précédemment

<div align="left"><figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2Fgit-blob-3f0a98a73fa08a03aa8ca4ac24358cbd97073a68%2Foauth-imap-6.png?alt=media" alt="images/oauth-imap-6.png"><figcaption></figcaption></figure></div>

#### Ajouter des autorisations API

* Dans l'onglet **API Permissions**
* Cliquez sur **your API** (Microsoft Graph dans ce cas)
* Puis sélectionnez **Delegated permission**
* Sélectionnez :
  * email
  * offline\_access
  * openid
  * profile
  * IMAP.AccessAsUser.All

<figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2Fgit-blob-947e5453686abe89034587d1d2e4ab3b49e8137e%2Foauth-imap-11.png?alt=media" alt="images/oauth-imap-11.png"><figcaption></figcaption></figure>

***

### Configuration GLPI

* Revenez maintenant sur votre interface GLPI **Setup > Application Aouth IMAP** et indiquez les informations collectées précédemment :

<figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2Fgit-blob-d79743a63afcd5748746d1d884e75b6ff543e87d%2Foauth-imap-7.png?alt=media" alt="images/oauth-imap-7.png"><figcaption></figcaption></figure>

* Cliquez sur **Add**
* Maintenant dans l'onglet **Oauth authorization**, cliquez sur **Create an authorization**

<div align="left"><figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2Fgit-blob-2ae4bcef9bc4b9fcc393eb8336da480ee70f87b1%2Foauth-imap-8.png?alt=media" alt="images/oauth-imap-8.png"><figcaption></figcaption></figure></div>

* Lorsque vous cliquerez sur **Create authorization**, vous serez redirigé vers la page de connexion des services Microsoft
* Entrez l'adresse email et le mot de passe du compte qui sera utilisé pour le collecteur
* Vous devrez également accepter les permissions nécessaires relatives au plugin.

<div align="left"><figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2Fgit-blob-91e0cb67f28b8d3b62242847f4e9aacfc37649f2%2Foauth-imap-9.png?alt=media" alt="images/oauth-imap-9.png"><figcaption></figcaption></figure></div>

<figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2Fgit-blob-67879d45e7f6b14bf5d6074b0595d675d0a8381b%2Foauth-imap-10.png?alt=media" alt="images/oauth-imap-10.png"><figcaption></figcaption></figure>

***

## Collecteur avec Google

### Création d'un projet

* Depuis votre [console Google](https://console.cloud.google.com/) (un accès administrateur est requis), allez dans votre organisation puis nouveau projet

![Création d'un nouveau projet](https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2FQWM1ZTwzreYAtJ65NleI%2Foauth-imap-google-1.png?alt=media\&token=40d98999-e983-4478-b3eb-396bd3097f35)

* Saisissez le nom de votre projet
* Cliquez sur **`Créez`**

<div align="left"><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2Fk3SsNboSQgsFDNqGr8dn%2Foauth-imap-google-2.png?alt=media&#x26;token=88d305aa-d1ed-4dcb-92a4-3b71cbaaa2c7" alt="Validation du projet"></div>

* Retournez dans votre organisation,
* Sélectionnez votre projet

![Sélection du nouveau projet](https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2FhbGGuE5AoWRC2j4urrhy%2Foauth-imap-google-3.png?alt=media\&token=d1398990-8aec-4a51-acbc-ba5cbb1ed54c)

***

### Configuration de l'accès OAuth

* Depuis le menu, cliquez sur **`APIs & Services`**.
* Puis **`Ecran de consentement OAuth`**.

<div align="left"><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2F1gRY7BnvaAzclDcOoPUW%2Foauth-imap-google-4.png?alt=media&#x26;token=340fe109-20e5-4168-9726-092bef8afb3d" alt="Voir les autorisations OAuth"></div>

#### Information d'application

* Depuis l'aperçu, cliquez sur **`Commencez`**
* Indiquez le nom de l'application ainsi que l'utilisateur du support (les utilisateurs pourront vous contacter sur des questions concernant leur consentement)

<figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2F0GEKvBPxbyVgwP1MDctk%2Foauth-imap-app-information.png?alt=media&#x26;token=0ebcd695-d638-44cf-91b4-c46932ce62bc" alt=""><figcaption><p>Information de l'application</p></figcaption></figure>

#### Audience

* Indiquez quelle type d'audience pourra utiliser cette application (ici interne car l'utilisateur qui sera à utiliser les services IMAP est un utilisateur de l'organisation)

<figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2F5Whbq01XPQD076i6hMQX%2Foauth-imap-audience.png?alt=media&#x26;token=cfd2e49d-e28f-4ead-a07b-387b77dd2840" alt=""><figcaption><p>Paramétrage de l'audience</p></figcaption></figure>

#### Information de contact

* Indiquez le nom du contact (ce contact sera informé des modifications effectuées sur l'application)

<figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2FFc547d69n3pUO7aqER4H%2Foauth-imap-contact.png?alt=media&#x26;token=ee3c8fd1-08f4-4672-a808-491ca300e4b4" alt=""><figcaption><p>Indication de l'information du contact</p></figcaption></figure>

#### Politique de données utilisateur des services Google API.

* Acceptez la Politique de données utilisateur des services Google API et cliquez sur **`Continuez`** et  **`Créer`**

<figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2FT9kUqUJXAIoGZTXHUE7y%2Foauth-imap-data-policy.png?alt=media&#x26;token=1ead7692-8d91-40f6-8db3-0a169f17b42d" alt=""><figcaption><p>Finalisation de l'application</p></figcaption></figure>

***

### Création d'un client

#### Type d'application

Il faut maintenant créer un client d'application qui fera le lien entre Google et votre instance GLPI grâce à un ID d'application et un secret client.

* Dans l'onglet **Clients,** cliquez sur **`Créer un client`**
* Sélectionnez **Application Web** dans le type d'application
* Entrez un nom pour votre application

<figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2FfLnl7Q5IIU14NJLo2RDb%2Foauth-imap-web-app.png?alt=media&#x26;token=21ab8847-a94a-4ae2-9989-9f69264c102d" alt=""><figcaption><p>Ajout de l'application Web</p></figcaption></figure>

#### URIs de redirection autorisés

L'URL de retour devra être indiquée dans cette partie. Cette URL est indiquée dans GLPI dans la section **`Configuration`** > **`OAUth IMAP`** > **`+ Ajouter`**

<figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2FhzT9vrOhU0QuIWS1XQWZ%2Foauth-imap-url-callback.png?alt=media&#x26;token=329c9565-339e-4727-9226-9cbfa7a0e150" alt=""><figcaption><p>Récupération de l'URL de callback</p></figcaption></figure>

* Indiquez cette URL dans la partie **URIs de redirection autorisés** de votre application

<div align="left"><figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2FRf6kwDSEix8MYAlM0dOg%2Foauth-imap-uris-authorisees.png?alt=media&#x26;token=0e8f270b-6356-49ae-bd7b-b0bd50c04674" alt=""><figcaption><p>Insertion de l'URL de retour</p></figcaption></figure></div>

* Cliquez sur **`Créer`** pour valider votre application

***

### Information d'application

{% hint style="warning" %}
A la prochaine étape, le **secret client** vous sera affiché. Dès que vous quitterez cet écran, il ne sera plus disponible. Pensez à le sauvegarder en lieu sûr
{% endhint %}

L'application est maintenant créée. Sur l'écran s'affiche l'ID d'application et le secret client qui seront à indiquez dans GLPI&#x20;

<div align="left"><figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2F3uquFtFgnCB3T8N4yxvt%2Foauth-imap-secret-client.png?alt=media&#x26;token=e6e19641-6094-4b99-b80f-703d20227cb2" alt=""><figcaption><p>Information application</p></figcaption></figure></div>

<figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2F4SafWyCQZO5ZfclkLyWr%2Foauth-imap-info-glpi.png?alt=media&#x26;token=08be6dde-e822-4c08-b4aa-b96a6a58e0b1" alt=""><figcaption><p>Informations renseignées dans GLPI</p></figcaption></figure>

***

### Finalisation de la configuration GLPI&#x20;

Une fois les informations de votre application répertoriées dans GLPI, et que votre application est bien active, vous pouvez cliquez sur **`+ Ajouter`**

<figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2FK8Teqf8gOOe0a20wmli7%2Foauth-imap-created.png?alt=media&#x26;token=b8710ff0-3bca-49bc-99bd-2482d776affe" alt=""><figcaption><p>Application OAuth IMAP créée</p></figcaption></figure>

#### Autorisation OAuth

L'autorisation OAuth est nécessaire pour que GLPI puisse utiliser les services IMAP de la boite mail en question.

* Depuis l'onglet **Autorisation OAuth**, cliquez sur **`+ Créer une autorisation`**
* Indiquez le compte autorisé à utiliser les services IMAP

<figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2FtdlyJtO45n0L6Sr5YLOS%2Foauth-imap-authorization-oauth.png?alt=media&#x26;token=142a80ae-ae49-472e-afd2-e3af6be7addc" alt=""><figcaption><p>Autorisation OAuth</p></figcaption></figure>

***

### Configuration du collecteur

* Depuis **`Configuration`** > **`Collecteurs`** > **`+ Ajouter`**
* Indiquez le serveur **`imap.google.com`**
* Dans **Options de connexion,** sélectionnez l'application **OAuth IMAP** créée précédemment
* Dans identifiant, sélectionnez l'utilisateur disposant de l'autorisation OAuth

<figure><img src="https://782257568-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJFKLcURHvFBybgf5dths%2Fuploads%2FSCt1KnBBVS7SM4nZ0EqT%2Foauth-imap-setup-receiver.png?alt=media&#x26;token=45453a67-4d11-4f49-b65e-d1754adbcd16" alt=""><figcaption><p>Configuration du collecteur</p></figcaption></figure>

***

## FAQ

Si vous avez des questions concernant l'utilisation du plugin, n'hésitez pas à consulter notre FAQ

<a href="https://app.gitbook.com/s/VU1qbB9Oe25HAYDAQ4tR/plugins/oauth-imap" class="button secondary">Aller à la FAQ</a>
