Skip to main content
Nous publions des mises à jour fréquentes de notre documentation, et la traduction de cette page peut encore être en cours. Pour obtenir les informations les plus actuelles, consultez la documentation anglaise.

Cette version de GitHub Enterprise a été abandonnée le 2023-03-15. Aucune publication de correctifs n’est effectuée, même pour les problèmes de sécurité critiques. Pour de meilleures performances, une sécurité améliorée et de nouvelles fonctionnalités, effectuez une mise à niveau vers la dernière version de GitHub Enterprise. Pour obtenir de l’aide sur la mise à niveau, contactez le support GitHub Enterprise.

Actualisation des jetons d’accès utilisateur

Pour appliquer une rotation régulière des jetons et réduire l’impact d’un jeton compromis, vous pouvez configurer votre GitHub App afin d’utiliser des jetons d’accès utilisateur arrivés à expiration.

À propos des jetons d’accès utilisateur arrivés à expiration

Remarque : les jetons d’accès utilisateur arrivés à expiration sont actuellement facultatifs et susceptibles d’être modifiés. Pour plus d’informations, consultez « Expiration des jetons d’accès utilisateur à serveur pour les applications GitHub ».

Pour appliquer une rotation régulière des jetons et réduire l’impact d’un jeton compromis, vous pouvez configurer votre GitHub App afin d’utiliser des jetons d’accès utilisateur arrivés à expiration. Si votre application utilise des jetons d’accès utilisateur arrivés à expiration, vous recevrez un jeton d’actualisation lorsque vous générerez un jeton d’accès utilisateur. Le jeton d’accès utilisateur expire au bout de huit heures et le jeton d’actualisation expire au bout de six mois. Pour plus d’informations, consultez « Génération d’un jeton d’accès utilisateur pour une application GitHub ».

Vous pouvez utiliser le jeton d’actualisation pour générer un nouveau jeton d’accès utilisateur et un nouveau jeton d’actualisation. Une fois que vous utilisez un jeton d’actualisation, ce jeton d’actualisation et l’ancien jeton d’accès utilisateur ne fonctionneront plus.

Si votre jeton d’actualisation expire avant de l’utiliser, vous pouvez régénérer un jeton d’accès utilisateur et un jeton d’actualisation en envoyant les utilisateurs via le flux d’applications web ou le flux d’appareils. Pour plus d’informations, consultez « Génération d’un jeton d’accès utilisateur pour une application GitHub ».

Configuration de votre application pour utiliser des jetons d’accès utilisateur arrivés à expiration

Lorsque vous créez votre application, l’expiration des jetons d’accès utilisateur est activée, sauf si vous le refusez. Pour plus d’informations, consultez « Registering a GitHub App ». Vous pouvez également configurer ce paramètre une fois votre application créée.

  1. Accédez aux paramètres de votre compte.

    • Pour une GitHub App appartenant à un compte personnel, dans le coin supérieur droit d’une page, cliquez sur votre photo de profil, puis sur Paramètres.
    • Pour une GitHub App appartenant à une organisation, dans le coin supérieur droit d’une page, cliquez sur votre photo de profil, puis sur Vos organisations. Puis, à droite de l’organisation, cliquez sur Paramètres.
  2. Dans la barre latérale gauche, cliquez sur Paramètres de développeur.

  3. Dans la barre latérale de gauche, cliquez sur GitHub App .

  4. À droite de GitHub App que vous souhaitez modifier, cliquez sur Modifier.

  5. Dans la barre latérale des paramètres GitHub Apps, cliquez sur Fonctionnalités facultatives.

  6. À côté de « Expiration du jeton utilisateur à serveur », cliquez sur Accepter ou Refuser. L’application de ce paramètre peut prendre quelques secondes.

    GitHub vous recommande de choisir cette fonctionnalité pour améliorer la sécurité.

Si vous choisissez les jetons d’accès utilisateur qui expirent une fois que vous avez déjà généré des jetons d’accès utilisateur, les jetons d’accès utilisateur générés précédemment n’expireront pas. Vous pouvez supprimer ces jetons à l’aide du point de terminaison DELETE /applications/CLIENT_ID/token. Pour plus d’informations, consultez « Autorisations OAuth ».

Actualisation d’un jeton d’accès utilisateur avec un jeton d’actualisation

  1. Effectuez une requête POST à cette URL, avec les paramètres de requête suivants : http(s)://HOSTNAME/login/oauth/access_token

    Paramètre de requête.TypeDescription
    client_idstringObligatoire. ID client de votre GitHub App. ID client est différent de l’ID de l’application. Vous pouvez trouver votre ID client dans la page Paramètres de votre application.

    Pour les applications appartenant à l’utilisateur, la page Paramètres est https://github.com/settings/apps/APP-SLUG.

    Pour les applications appartenant à l’organisation, la page Paramètres est https://github.com/organizations/ORGANIZATION/settings/apps/APP-SLUG.

    Remplacez APP-SLUG par le nom slugifié de votre application et ORGANIZATION par le nom slugifié de votre organisation. Par exemple : https://github.com/organizations/octo-org/settings/apps/octo-app.
    client_secretstringObligatoire. La clé secrète client de votre GitHub App. Vous pouvez générer une clé secrète client sur la page des paramètres de votre application.
    grant_typestringObligatoire. La valeur doit être « refresh_token ».
    refresh_tokenstringObligatoire. Le jeton d’actualisation que vous avez reçu lorsque vous avez généré un jeton d’accès utilisateur.
  2. GitHub envoie une réponse qui comprend les paramètres suivants :

    Paramètre de réponseTypeDescription
    access_tokenstringJeton d’accès utilisateur. Le jeton commence par ghu_.
    expires_inintegerNombre de secondes avant que n’expire access_token. Si vous avez désactivé l’expiration des jetons d’accès utilisateur, ce paramètre est omis. La valeur est toujours 28800 (8 heures).
    refresh_tokenstringLe jeton d’actualisation. Si vous avez désactivé l’expiration des jetons d’accès utilisateur, ce paramètre est omis. Le jeton commence par ghr_.
    refresh_token_expires_inintegerNombre de secondes avant que n’expire refresh_token. Si vous avez désactivé l’expiration des jetons d’accès utilisateur, ce paramètre est omis. La valeur est toujours 15811200 (6 mois).
    scopestringÉtendues dont dispose le jeton. Cette valeur est toujours une chaîne vide. Contrairement à un jeton OAuth traditionnel, le jeton d’accès utilisateur est limité aux autorisations de votre application et de l’utilisateur.
    token_typestringType de jeton. La valeur est toujours bearer.