Skip to main content

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 « Inscription d’une application GitHub ». Vous pouvez également configurer ce paramètre une fois votre application créée.

  1. Dans le coin supérieur droit de n’importe quelle page sur GitHub, cliquez sur votre photo de profil.

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

    • Pour une application appartenant à un compte personnel, cliquez sur Paramètres.
    • Pour une application appartenant à une organisation :
      1. Cliquez sur Vos organisations.
      2. À droite de l’organisation, cliquez sur Paramètres.
  3. Dans la barre latérale gauche, cliquez sur Paramètres de développeur.

  4. Dans la barre latérale à gauche, cliquez sur GitHub Apps .

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

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

  7. À 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 « Points de terminaison d’API REST pour les 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 : https://github.com/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.
    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 15897600 (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.