À 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.
-
Dans le coin supérieur droit de n’importe quelle page sur GitHub, cliquez sur votre photo de profil.
-
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 :
- Cliquez sur Vos organisations.
- À droite de l’organisation, cliquez sur Paramètres.
-
Dans la barre latérale gauche, cliquez sur Paramètres de développeur.
-
Dans la barre latérale à gauche, cliquez sur GitHub Apps .
-
À droite de GitHub App que vous souhaitez modifier, cliquez sur Modifier.
-
Dans la barre latérale des paramètres GitHub Apps, cliquez sur Fonctionnalités facultatives.
-
À 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
-
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. Type Description client_id
string
Obligatoire. 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_secret
string
Obligatoire. 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_type
string
Obligatoire. La valeur doit être « refresh_token ». refresh_token
string
Obligatoire. Le jeton d’actualisation que vous avez reçu lorsque vous avez généré un jeton d’accès utilisateur. -
GitHub envoie une réponse qui comprend les paramètres suivants :
Paramètre de réponse Type Description access_token
string
Jeton d’accès utilisateur. Le jeton commence par ghu_
.expires_in
integer
Nombre 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 toujours28800
(8 heures).refresh_token
string
Le 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_in
integer
Nombre 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 toujours15897600
(6 mois).scope
string
É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_type
string
Type de jeton. La valeur est toujours bearer
.