# OAuth SSO

***

### Comment configurer Oauth SSO avec Apple ?

Pour utiliser SSO avec Apple depuis GLPI, vous pouvez suivre cette [procédure](https://app.gitbook.com/s/JFKLcURHvFBybgf5dths/plugin-glpi-network/oauthsso#apple). Un accès à la console développeur Apple est requis. Vous devrez également télécharger le plugin Oauth SSO disponible sur le marketplace.

***

### Comment configurer Oauth SSO avec Entra ?

Pour utiliser SSO avec Entra depuis GLPI, vous pouvez suivre cette [procédure](https://app.gitbook.com/s/JFKLcURHvFBybgf5dths/plugin-glpi-network/oauthsso#entra). Un accès au Tenant Microsoft 365 est requis. Vous devrez également télécharger le plugin Oauth SSO disponible sur le marketplace.

***

### Comment configurer Oauth SSO avec OKTA ?

Pour utiliser SSO avec OKTA depuis GLPI, vous pouvez suivre cette [procédure](https://app.gitbook.com/s/JFKLcURHvFBybgf5dths/plugin-glpi-network/oauthsso#okta). Vous aurez besoin d'un accès administrateur à OKTA. Vous devrez également télécharger le plugin Oauth SSO disponible sur le marketplace.

***

### Comment configurer OAuth SSO avec Google ?

Pour utiliser SSO avec Google depuis GLPI, vous pouvez suivre cette [procédure](https://app.gitbook.com/s/JFKLcURHvFBybgf5dths/plugin-glpi-network/oauthsso#google). Vous aurez besoin d'un accès administrateur à votre Tenant Google. Vous devrez également télécharger le plugin OAuth SSO disponible sur le marketplace.

***

### Comment configurer Oauth SSO avec Keycloak ?

Pour utiliser SSO avec Keycloak depuis GLPI, vous pouvez suivre cette [procédure](https://app.gitbook.com/s/JFKLcURHvFBybgf5dths/plugin-glpi-network/oauthsso#okta). Vous aurez besoin d'un accès administrateur à Keycloak. Vous devrez également télécharger le plugin Oauth SSO disponible sur le marketplace.

***

### Pourquoi Oauth SSO ne fonctionne-t-il plus ?

Il y a plusieurs raisons possibles à ce problème :

* le secret a expiré,
* le mot de passe du compte obtenant l'autorisation SSO a expiré,
* vous avez demandé un changement d'URL et l'application côté fournisseur n'a pas été modifiée.

Pour vérifier ce qui cause le problème, vous pouvez activer le mode debug, qui vous orientera dans la bonne direction. Vous pouvez suivre cette [procédure](https://app.gitbook.com/s/qmRzI15ndDbFHGd5BnM4/authentication/activate_sso) pour vous aider avec la Configuration.

***

### Puis-je fusionner mes utilisateurs AD et SSO ?

Oui, sous certaines conditions. Il est possible dans **`administration`** > **`authentification`** > **`Autres méthodes d'authentification`** de définir l'option **`supprimer le domaine des connexions comme login@domaine`** à **`Oui`**. Cette action comporte un risque selon la façon dont votre application SSO est configurée côté fournisseur.

{% hint style="danger" %}
**Si vous autorisez l'accès SSO à des tenants externes**, il est possible qu'un vol d'identité puisse se produire. Par exemple, je me connecte avec <john.doe@mondomaine.com>. Généralement, vous ne pouvez pas avoir 2 connexions identiques sur le même tenant. Si vous avez un homonyme dans l'entreprise, les connexions seront différentes. En revanche, si un homonyme extérieur au tenant, comme <john.doe@gmail.com>, se connecte, il pourra usurper votre identité. Cette option doit donc être limitée aux applications SSO qui utilisent un seul tenant.
{% endhint %}

***

### Quels fournisseurs puis-je utiliser avec SSO ?

Voici la liste des fournisseurs actuellement disponibles :

* <img src="https://3914205414-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVU1qbB9Oe25HAYDAQ4tR%2Fuploads%2FRsTYzGW9NZ8IQooGJz6M%2FAmazon.svg?alt=media&#x26;token=a02adae1-02e4-4254-bf1e-f12df4ca6a17" alt="Alt text" data-size="line"> **Amazon**,
* <img src="https://3914205414-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVU1qbB9Oe25HAYDAQ4tR%2Fuploads%2Fash8n4dW8b8q6TvrBuj0%2FEntra.webp?alt=media&#x26;token=2b2ebfa1-af96-4d9f-ae56-2110143008fa" alt="Alt text" data-size="line"> **Microsoft Entra**,
* <img src="https://3914205414-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVU1qbB9Oe25HAYDAQ4tR%2Fuploads%2FwhGvC72uTgwzDzzGUyH6%2FFacebook.svg?alt=media&#x26;token=2f7de673-0eea-49ec-b7ba-a4586d8f087d" alt="Alt text" data-size="line"> **Facebook**,
* <img src="https://3914205414-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVU1qbB9Oe25HAYDAQ4tR%2Fuploads%2FlB47I9tnQPY0QLB1epJm%2FGithub.svg?alt=media&#x26;token=5e0ccf9c-ba1f-4e8f-8b8c-bfed0689d8d9" alt="Alt text" data-size="line"> **Github**,
* <img src="https://3914205414-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVU1qbB9Oe25HAYDAQ4tR%2Fuploads%2FpcBdr4xiYqVvsG0ysnnb%2FGitlab.svg?alt=media&#x26;token=612fd229-7d67-48ac-b52b-7fca4b90aad0" alt="Alt text" data-size="line"> **Gitlab**,
* ![Alt text](https://3914205414-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVU1qbB9Oe25HAYDAQ4tR%2Fuploads%2FDcox0ERkqtVmrwIzIcY1%2FGoogle.svg?alt=media\&token=0f7a2b6e-e188-48f7-8311-4dfc9f735890) **Google**,
* <img src="https://3914205414-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVU1qbB9Oe25HAYDAQ4tR%2Fuploads%2Fmb8phRGtp2wWyBk30tPZ%2FKeycloak.svg?alt=media&#x26;token=69a49e1a-0531-4d24-9669-aef1bec60ccc" alt="Alt text" data-size="line"> **Keycloak**,
* <img src="https://3914205414-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVU1qbB9Oe25HAYDAQ4tR%2Fuploads%2FiRpt58SArqCGQMj1M5Et%2FOKTA.svg?alt=media&#x26;token=a34e97e0-bf01-43de-9ac0-75f6eada054b" alt="Alt text" data-size="line"> **OKTA**
* <img src="https://3914205414-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVU1qbB9Oe25HAYDAQ4tR%2Fuploads%2FBhqRPn9PzqXs2qX3KvBs%2FApple_logo_black.svg?alt=media&#x26;token=5174c09d-81c6-4253-aad5-11832e8996e5" alt="" data-size="line"> **Apple**
* <img src="https://3914205414-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVU1qbB9Oe25HAYDAQ4tR%2Fuploads%2FhA8PXYQOeKVtV2x8ZIcu%2Fopenid-logo.png?alt=media&#x26;token=86bc705f-f23e-4474-b926-bc1cd79d0866" alt="" data-size="line"> **OpenID connect**

***

### Puis-je afficher l'authentification SSO uniquement sur la page d'accueil ?

Oui. Depuis votre application SSO, cliquez sur **`configuration`** en haut de l'écran. Puis cliquez sur **`masquer le formulaire de connexion standard`**. Il sera toujours possible de se connecter avec un compte interne en cliquant sur **`connexion standard`**.

***

### Pourquoi reçois-je un message me disant que mon mot de passe est vide ?

Cela peut arriver quand vous utilisez la V2 du plugin Oauth SSO. La configuration des **`claims`** et des **`permissions API`** est nécessaire pour que le plugin fonctionne correctement. Vous pouvez suivre cet [article](https://app.gitbook.com/s/JFKLcURHvFBybgf5dths/plugin-glpi-network/oauthsso#claims) pour configurer votre application.

***

### Pourquoi reçois-je un message d'erreur me disant que je n'ai pas les droits d'accès à l'application ?

Cela arrive quand les règles d'autorisation n'ont pas été configurées. En fait, une fois l'authentification réussie, GLPI vérifie que vous avez une autorisation assignée. GLPI vérifie aussi qu'une règle a été configurée pour vous en assigner une automatiquement. Si ce n'est pas le cas, l'accès à GLPI sera refusé. Pour configurer ces règles d'autorisation, veuillez vous référer à cet [article](https://app.gitbook.com/s/0fOFvaYAGyPcoVZsr1BX/modules/administration/rules/rulesmanagement) pour vous aider à les configurer.

***

### Pourquoi certains champs d'enregistrement utilisateur sont-ils écrasés après authentification avec OAuth SSO ?

Cela peut arriver si votre source d'authentification OAuth SSO est aussi la source de provisionnement. Si l'option **`Récupérer les informations du profil utilisateur`** (disponible depuis **`Configuration`** > **`Applications Oauth SSO`**) est définie sur **`Non`**, Oauth SSO ne récupérera pas les informations des enregistrements utilisateur. Si vous souhaitez récupérer les informations utilisateur, changez cette option à **`Oui`** et assurez-vous que les champs dans **`Configuration`** > **`Authentification`** > **`Autres méthodes d'authentification`** et les claims de votre application OAuth SSO sont renseignés (plus d'informations [ici](https://app.gitbook.com/s/JFKLcURHvFBybgf5dths/plugin-glpi-network/oauthsso)).

Si, en revanche, vous avez une source de provisionnement externe comme SCIM, et que l'option **`Récupérer les informations du profil utilisateur`** est définie sur **`Oui`**, OAuth SSO écrasera les informations actuelles et les remplacera par les informations saisies dans **`Configuration`** > **`Authentification`** > **`Autres méthodes d'authentification`**. Nous recommandons donc de définir cette option sur **`Non`** si vous avez un fournisseur externe (plus d'informations [ici](https://app.gitbook.com/s/JFKLcURHvFBybgf5dths/plugin-glpi-network/oauthsso)).

***

### SSO permet-il le provisionnement ?

Non, SSO n'est qu'un moyen de connexion et ne provisionne pas les utilisateurs en amont. Pour cela, vous devez utiliser le [plugin SCIM](https://app.gitbook.com/s/JFKLcURHvFBybgf5dths/plugin-glpi-network/scim)

***

### Comment appliquer des règles à une connexion SSO ?

Pour appliquer des règles à une connexion SSO, vous devez choisir un des critères suivants :

* **`Le type d'authentification est Authentifications externes`**

ou

* **`L'email contient @mondomaine.com`**
