{"meta":{"title":"Différences entre les applications GitHub et les applications OAuth","intro":"En règle générale, GitHub Apps sont préférés à OAuth apps car ils utilisent des autorisations granulaires, offrent davantage de contrôle sur les référentiels auxquels l’application peut accéder et utilisent des jetons à courte durée de vie.","product":"Applications","breadcrumbs":[{"href":"/fr/apps","title":"Applications"},{"href":"/fr/apps/oauth-apps","title":"Applications OAuth"},{"href":"/fr/apps/oauth-apps/building-oauth-apps","title":"Génération d’applications OAuth"},{"href":"/fr/apps/oauth-apps/building-oauth-apps/differences-between-github-apps-and-oauth-apps","title":"Applications GitHub & "}],"documentType":"article"},"body":"# Différences entre les applications GitHub et les applications OAuth\n\nEn règle générale, GitHub Apps sont préférés à OAuth apps car ils utilisent des autorisations granulaires, offrent davantage de contrôle sur les référentiels auxquels l’application peut accéder et utilisent des jetons à courte durée de vie.\n\n## À propos de GitHub Apps et de OAuth apps\n\nEn général, GitHub Apps sont préférés à OAuth apps.\nGitHub Apps utilisez des autorisations affinées, donnez à l’utilisateur plus de contrôle sur les dépôts auxquels l’application peut accéder et utiliser des jetons de courte durée. Ces propriétés contribuent à durcir la sécurité de votre application, car elles limitent les dommages potentiels en cas de divulgation des informations d’identification de votre application.\n\nSimilaire à OAuth apps, GitHub Apps peut toujours utiliser OAuth 2.0 et générer un type de jeton OAuth (appelé jeton d’accès utilisateur) et effectuer des actions pour le compte d’un utilisateur. Toutefois, GitHub Apps peut également agir indépendamment d’un utilisateur. Cela est utile pour les automatisations qui ne nécessitent pas d’entrée utilisateur. L’application pourra continuer de fonctionner même si la personne ayant initialement installé l’application sur une organisation quitte cette organisation.\n\nGitHub Apps ont des webhooks intégrés et centralisés.\nGitHub Apps peut recevoir des événements webhook pour tous les dépôts et organisations auxquels l’application peut accéder. À l’inverse, OAuth apps doit configurer des webhooks individuellement pour chaque dépôt et chaque organisation.\n\nLa limite de taux pour GitHub Apps lors de l’utilisation d’un jeton d’accès d’installation varie en fonction du nombre de référentiels et du nombre d’utilisateurs de l’organisation. À l’inverse, OAuth apps ont des limites de débit plus faibles et ne passent pas à l’échelle.\n\nIl y a un cas où un OAuth app est préféré à un GitHub App. Si votre application doit accéder à des ressources de niveau entreprise, telles que l’objet enterprise proprement dit, vous devez utiliser un OAuth app, car un GitHub App ne peut pas encore se voir accorder des autorisations sur une entreprise.\nGitHub Apps peut toujours accéder aux ressources de l’organisation et du référentiel appartenant à l’entreprise.\n\nPour plus d’informations sur GitHub Apps, consultez [À propos de la création d’applications GitHub](/fr/apps/creating-github-apps/about-creating-github-apps/about-creating-github-apps).\n\nPour plus d’informations sur la migration d’un existant OAuth app vers un GitHub App, consultez [Migration d’applications OAuth vers des applications GitHub](/fr/apps/creating-github-apps/about-creating-github-apps/migrating-oauth-apps-to-github-apps).\n\n## Qui peut installer GitHub Apps et autoriser OAuth apps?\n\nVous pouvez installer GitHub Apps dans votre compte personnel ou vos organisations. Si vous disposez d’autorisations d’administrateur dans un référentiel, vous pouvez installer GitHub Apps sur des comptes d’organisation. Si une application GitHub est installée dans un référentiel et nécessite des autorisations d’organisation, le propriétaire de l’organisation doit approuver l’application.\n\nPar défaut, seuls les propriétaires d’organisation peuvent gérer les paramètres des applications GitHub dans une organisation. Pour permettre à d’autres utilisateurs de modifier les paramètres de développeur des applications GitHub appartenant à l’organisation, un propriétaire peut leur accorder des autorisations de gestionnaire d’applications GitHub. Les gestionnaires d’applications GitHub ne peuvent pas gérer les applications tierces. Pour plus d’informations sur l’ajout et la suppression de gestionnaires d’applications GitHub dans votre organisation, consultez [Rôles dans une organisation](/fr/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#github-app-managers).\n\nEn revanche, les utilisateurs autorisent OAuth apps, ce qui donne à l’application la possibilité d’agir en tant qu’utilisateur authentifié. Par exemple, vous pouvez autoriser un OAuth app qui recherche toutes les notifications de l’utilisateur authentifié. Vous pouvez toujours retirer les autorisations d’un OAuth app.\n\nLes propriétaires de l’organisation peuvent choisir s’il faut autoriser les collaborateurs externes à demander l’accès pour non approuvé OAuth apps et GitHub Apps. Pour plus d’informations, consultez « [Limitation des demandes et installations d’accès aux applications OAuth et GitHub](/fr/organizations/managing-programmatic-access-to-your-organization/limiting-oauth-app-and-github-app-access-requests-and-installations) ».\n\n> \\[!WARNING]\n> La révocation de toutes les autorisations d'une OAuth app supprime toutes les clés SSH que l'application a générées au nom de l'utilisateur, y compris les [clés de déploiement](/fr/authentication/connecting-to-github-with-ssh/managing-deploy-keys#deploy-keys).\n\n| Applications GitHub                                                                                                                                                                                                                                                                                                                                    | OAuth apps                                                                                                                                                                                                                              |\n| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Vous devez être propriétaire de l’organisation ou disposer d’autorisations d’administrateur dans un référentiel pour installer une application GitHub sur une organisation. Si une application GitHub est installée dans un référentiel et nécessite des autorisations d’organisation, le propriétaire de l’organisation doit approuver l’application. | Vous pouvez autoriser un OAuth app à accéder aux ressources.                                                                                                                                                                            |\n| Vous pouvez installer une application GitHub sur votre dépôt personnel.                                                                                                                                                                                                                                                                                | Vous pouvez autoriser un OAuth app à accéder aux ressources.                                                                                                                                                                            |\n| Vous devez être propriétaire de l’organisation, propriétaire de référentiel personnel ou disposer d’autorisations d’administrateur dans un référentiel pour désinstaller une application GitHub et supprimer son accès.                                                                                                                                | Vous pouvez supprimer un jeton d’accès OAuth pour supprimer l’accès.                                                                                                                                                                    |\n| Vous devez être propriétaire de l’organisation ou disposer d’autorisations d’administrateur dans un référentiel pour demander une installation d’application GitHub.                                                                                                                                                                                   | Si une stratégie des applications de l’organisation est active, tout membre de l’organisation peut demander l’installation d’une OAuth app dans l’organisation. Un propriétaire de l’organisation doit approuver ou rejeter la demande. |\n\n## À quoi les applications GitHub et OAuth apps peuvent-elles accéder ?\n\nLes propriétaires de compte peuvent utiliser un GitHub App sur un compte sans accorder l’accès à un autre. Par exemple, vous pouvez installer un service de construction tiers sur l’organisation de votre employeur, mais décider de ne pas accorder à ce service de construction l’accès aux dépôts dans votre compte personnel. Une application GitHub reste installée si la personne qui l’a configurée quitte l’organisation.\n\nUn \\_autorisé\\_OAuth app a accès à toutes les ressources accessibles de l’utilisateur ou du propriétaire de l’organisation.\n\n| Applications GitHub                                                                                                                                                                                                                                    | OAuth apps                                                                                                                                                                                                                                                                                                                                    |\n| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| L'installation d'une application GitHub accorde l'accès de l'application aux dépôts choisis d'un utilisateur ou d'un compte d'organisation.                                                                                                            | L’autorisation de l’application OAuth app permet à l’application d’accéder aux ressources de l’utilisateur auxquelles il a accès. Par exemple, les dépôts auxquels elles peuvent accéder.                                                                                                                                                     |\n| Le jeton d’installation d’une application GitHub perd l’accès aux ressources si un administrateur supprime les dépôts de l’installation.                                                                                                               | Un jeton d’accès OAuth perd l’accès aux ressources quand l’utilisateur perd l’accès, par exemple, quand il perd l’accès en écriture à un dépôt.                                                                                                                                                                                               |\n| Les jetons d’accès d’installation sont limités aux dépôts spécifiés avec les autorisations choisies par le créateur de l’application.                                                                                                                  | Un jeton d’accès OAuth est limité par le biais d’étendues.                                                                                                                                                                                                                                                                                    |\n| Les applications GitHub peuvent demander un accès séparé aux problèmes et aux pull requests sans accéder au contenu réel du dépôt.                                                                                                                     |                                                                                                                                                                                                                                                                                                                                               |\n| OAuth apps doit demander la portée `repo` pour accéder aux issues, aux pull requests ou à tout ce qui appartient au dépôt.                                                                                                                             |                                                                                                                                                                                                                                                                                                                                               |\n| GitHub Applications ne sont pas soumises aux stratégies d'application de l'organisation. Une application GitHub n’a accès qu’aux répertoires auxquels un propriétaire de l’organisation a accordé l’accès.                                             | Si une stratégie d’installation d’applications de l’organisation est active, seul un propriétaire de l’organisation peut autoriser l’installation d’un OAuth app. S’il est installé, le OAuth app obtient l’accès à tout ce qui est visible pour le jeton dont dispose le propriétaire de l’organisation au sein de l’organisation approuvée. |\n| Une application GitHub reçoit un événement de webhook lorsqu’une installation est modifiée ou supprimée. Cela indique au créateur de l’application quand celle-ci a reçu plus ou moins d’accès aux ressources d’une organisation.                      |                                                                                                                                                                                                                                                                                                                                               |\n| OAuth apps peut perdre l’accès à une organisation ou à un référentiel à tout moment, en fonction de l’évolution des droits d’accès de l’utilisateur qui a accordé l’accès. Le OAuth app ne vous avertira pas lorsqu’il perdra l’accès à une ressource. |                                                                                                                                                                                                                                                                                                                                               |\n\n## Identification basée sur un jeton\n\n> \\[!NOTE]\n> GitHub Apps peut également utiliser un jeton basé sur l’utilisateur. Pour plus d’informations, consultez « [Authentification auprès d’une application GitHub pour le compte d’un utilisateur](/fr/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user) ».\n\n| Applications GitHub                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | OAuth apps                                                                                                                                                                         |\n| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Une application GitHub peut demander un jeton d’accès d’installation à l’aide d’une clé privée avec un format de jeton web JSON hors bande.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Une OAuth app authentification interactive est requise par un utilisateur pour recevoir un jeton d’accès utilisateur.                                                              |\n| Un jeton d’installation identifie l’application en tant que GitHub App compte de bot, tel que @jenkins\\[bot].                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Un jeton d’accès utilisateur identifie l’application comme étant l’utilisateur qui s’est connecté à l’application, par exemple @octocat.                                           |\n| Les jetons d’accès d’installation expirent après une période prédéfinie (actuellement 1 heure).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |                                                                                                                                                                                    |\n| Les jetons d’application OAuth ont une durée de vie longue par défaut. Vous pouvez également configurer votre OAuth app pour utiliser des jetons d’accès utilisateur qui expirent après huit heures et peuvent être renouvelés à l’aide d’un jeton d’actualisation. Pour plus d’informations, consultez [Autorisation des applications OAuth](/fr/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps#expiring-access-tokens).                                                                                                                                                                                                       |                                                                                                                                                                                    |\n| GitHub Apps installés sur des organisations ou des dépôts sont soumis à des limites de taux qui évoluent en fonction du nombre d’utilisateurs et de dépôts d’un compte. Pour plus d’informations, consultez « [Limites de débit pour les applications GitHub](/fr/apps/creating-github-apps/registering-a-github-app/rate-limits-for-github-apps) ».                                                                                                                                                                                                                                                                                        | Les jetons OAuth utilisent la limitation de débit de l’utilisateur de 5 000 requêtes par heure.                                                                                    |\n| Les augmentations de limite de débit peuvent être accordées au niveau GitHub Apps (affectant toutes les installations) et au niveau de l’installation individuelle.                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Les augmentations de limite de débit sont accordées pour chaque OAuth app. Chaque jeton attribué à ce OAuth app bénéficie de la limite augmentée.                                  |\n| GitHub Apps peut s’authentifier pour le compte de l’utilisateur. Le flux à autoriser est identique au flux d’autorisation OAuth app . Les jetons d’accès utilisateur peuvent expirer et être renouvelés avec un jeton d’actualisation. Pour plus d’informations, consultez « [Actualisation des jetons d’accès utilisateur](/fr/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens) » et « [Authentification auprès d’une application GitHub pour le compte d’un utilisateur](/fr/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user) ». | Le flux OAuth utilisé par OAuth apps autorise un OAuth app au nom de l’utilisateur. Il s’agit du même flux que celui utilisé pour générer un jeton d’accès GitHub App utilisateur. |\n\n## Demande de niveaux d’autorisation pour des ressources\n\nContrairement à OAuth apps, les applications GitHub bénéficient d’autorisations ciblées qui leur permettent de demander l’accès uniquement à ce dont elles ont besoin. Par exemple, une application GitHub d’intégration continue (CI) peut demander l’accès en lecture au contenu du référentiel et l’accès en écriture à l’API d’état. Une autre application GitHub ne peut pas avoir d’accès en lecture ou en écriture au code, mais elle a toujours la possibilité de gérer les problèmes, les étiquettes et les jalons.\nOAuth apps ne peut pas utiliser d’autorisations granulaires.\n\n<div class=\"ghd-tool rowheaders\">\n\n| Accès                                                         | Applications GitHub (autorisations `read` ou `write`)    | OAuth apps                                     |\n| ------------------------------------------------------------- | -------------------------------------------------------- | ---------------------------------------------- |\n| **Pour accéder aux dépôts publics**                           | Le dépôt public doit être choisi lors de l’installation. | Étendue `public_repo`.                         |\n| **Pour accéder au code/contenu du dépôt**                     | Contenu d’un dépôt                                       | Étendue `repo`.                                |\n| **Pour accéder aux problèmes, étiquettes et jalons**          | Problèmes                                                | Étendue `repo`.                                |\n| **Pour accéder aux pull requests, étiquettes et jalons**      | Demandes de tirage                                       | Étendue `repo`.                                |\n| **Pour accéder aux états de validation (pour les builds CI)** | États de validation                                      | Étendue `repo:status`.                         |\n| **Pour accéder aux déploiements et aux états de déploiement** | Déploiements                                             | Étendue `repo_deployment`.                     |\n| **Pour recevoir des événements via un webhook**               | Une application GitHub inclut un webhook par défaut.     | Étendue `write:repo_hook` ou `write:org_hook`. |\n\n</div>\n\n## Découverte d’un dépôt\n\n| Applications GitHub                                                                                                                                 | OAuth apps |\n| --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- |\n| GitHub Apps peut examiner `/installation/repositories` pour voir les référentiels auxquels l’installation peut accéder.                             |            |\n| OAuth apps peut consulter `/user/repos` pour une vue utilisateur ou `/orgs/:org/repos` pour une vue organisationnelle des référentiels accessibles. |            |\n| GitHub Apps reçoit des webhooks lorsque les référentiels sont ajoutés ou supprimés de l’installation.                                               |            |\n| OAuth apps créez des webhooks d’organisation pour les notifications lorsqu’un nouveau référentiel est créé au sein d’une organisation.              |            |\n\n## Webhooks\n\n| Applications GitHub                                                                                                                                                                             | OAuth apps                                                                                                                                                                                                                  |\n| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Par défaut, GitHub Apps disposent d’un webhook unique qui reçoit les événements auxquels ils sont configurés pour chaque dépôt auquel ils ont accès.                                            |                                                                                                                                                                                                                             |\n| OAuth apps demandez à l’étendue du webhook de créer un webhook de référentiel pour chaque dépôt dont ils ont besoin pour recevoir des événements.                                               |                                                                                                                                                                                                                             |\n| Les applications GitHub reçoivent certains événements au niveau de l'organisation avec l'autorisation d'un membre de l'organisation.                                                            |                                                                                                                                                                                                                             |\n| OAuth apps demandez la portée des webhooks d’organisation afin de créer un webhook d’organisation pour chaque organisation dont vous devez recevoir des événements au niveau de l’organisation. |                                                                                                                                                                                                                             |\n| Les webhooks sont automatiquement désactivés lorsque l’application GitHub est désinstallée.                                                                                                     | Les webhooks ne sont pas automatiquement désactivés si un jeton d’accès OAuth appest supprimé et qu’il n’existe aucun moyen de les nettoyer automatiquement. Vous devez demander aux utilisateurs de procéder manuellement. |\n\n## Accès à Git\n\n| Applications GitHub                                                                                                                                                                                                                                                                                                                                                                                                          | OAuth apps                                               |\n| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |\n| Les applications GitHub requièrent l’autorisation des contenus du référentiel et utilisent le jeton d’accès de votre installation pour s’authentifier via Git fonctionnant sur HTTP. Pour plus d’informations, consultez [Génération d’un jeton d’accès d’installation pour une application GitHub](/fr/apps/creating-github-apps/authenticating-with-a-github-app/generating-an-installation-access-token-for-a-github-app) |                                                          |\n| OAuth apps                                                                                                                                                                                                                                                                                                                                                                                                                   |                                                          |\n| `write:public_key` demandez l’étendue et [créez une clé de déploiement](/fr/rest/deployments#create-a-deploy-key) via l’API. Vous pouvez ensuite utiliser cette clé pour exécuter des commandes Git.                                                                                                                                                                                                                         |                                                          |\n| Le jeton est utilisé en tant que mot de passe HTTP.                                                                                                                                                                                                                                                                                                                                                                          | Le jeton est utilisé en tant que nom d’utilisateur HTTP. |\n\n## Les comptes machines et bots\n\nLes comptes utilisateurs machine sont des comptes personnels qui isolent les systèmes automatisés utilisant le système utilisateur de GitHub, et qui interagissent avec GitHub via des PAT ou des jetons OAuth app.\n\nLes comptes de bot sont spécifiques à GitHub Apps et sont intégrés à chaque application GitHub.\n\n| Applications GitHub                                                                                                         | OAuth apps                                                                                                               |\n| --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |\n| Les bots GitHub App ne consomment pas de GitHub Enterprise.                                                                 | Un compte d’utilisateur d’ordinateur consomme un GitHub Enterprise de licence.                                           |\n| Étant donné qu'un bot d'application GitHub n'a jamais reçu de mot de passe, un client ne peut pas se connecter directement. | Un compte d’utilisateur de machine reçoit un nom d’utilisateur et un mot de passe que le client doit gérer et sécuriser. |"}