À propos de l’authentification
De nombreux points de terminaison de l’API REST nécessitent une authentification ou retournent des informations supplémentaires si vous êtes authentifié. De plus, vous pouvez effectuer plus de requêtes par heure lorsque vous êtes authentifié.
Vous pouvez authentifier votre requête en envoyant un jeton dans l’en-tête Authorization
de votre requête. Dans l’exemple suivant, remplacez YOUR-TOKEN
par une référence à votre jeton :
curl --request GET \
--url "https://api.github.com/octocat" \
--header "Authorization: Bearer YOUR-TOKEN" \
--header "X-GitHub-Api-Version: 2022-11-28"
Remarque : Dans la plupart des cas, vous pouvez utiliser Authorization: Bearer
ou Authorization: token
pour passer un jeton. Toutefois, si vous passez un jeton web JSON (JWT), vous devez utiliser Authorization: Bearer
.
Si vous essayez d’utiliser un point de terminaison de l’API REST sans jeton ou avec un jeton disposant d’autorisations insuffisantes, vous recevez une réponse 404 Not Found
ou 403 Forbidden
.
Authentification avec un personal access token
Si vous souhaitez utiliser l’API REST GitHub à des fins personnelles, vous pouvez créer un personal access token. Si possible, GitHub recommande d’utiliser un fine-grained personal access token au lieu d’un personal access token (classic). Pour plus d’informations sur la création d’un personal access token, consultez « Gestion de vos jetons d’accès personnels ».
Si vous utilisez un personal access token (classic) pour accéder à une organisation qui applique une authentification unique SAML, vous devez autoriser votre jeton après sa création. Les Fine-grained personal access token sont autorisés lors de leur création, avant que l’accès à l’organisation ne soit accordé. Pour plus d’informations, consultez « Autorisation d’un jeton d’accès personnel à utiliser avec l’authentification unique SAML ».
Si vous n’autorisez pas votre personal access token (classic) pour l’authentification unique SAML avant d’essayer de l’utiliser pour accéder à une organisation qui applique l’authentification unique SAML, vous pouvez recevoir une erreur 404 Not Found
ou 403 Forbidden
. Si vous recevez une erreur 403 Forbidden
, vous pouvez suivre l’URL dans l’en-tête X-GitHub-SSO
pour autoriser votre jeton. L’URL expire au bout d’une heure. Si vous avez demandé des données susceptibles de provenir de plusieurs organisations, l’API ne retourne pas les résultats des organisations qui exigent une authentification unique SAML. L’en-tête X-GitHub-SSO
indique l’ID des organisations qui exigent une autorisation d’authentification unique SAML de votre personal access token (classic). Par exemple : X-GitHub-SSO: partial-results; organizations=21955855,20582480
.
Authentification avec un jeton généré par une application
Si vous voulez utiliser l’API pour une organisation ou au nom d’un autre utilisateur, GitHub vous recommande d’utiliser une GitHub App. Pour plus d’informations, consultez « À propos de l’authentification avec une application GitHub ».
Vous pouvez également créer un jeton OAuth avec une OAuth App pour accéder à l’API REST. Toutefois, GitHub vous recommande d’utiliser plutôt une GitHub App. Les GitHub App permettent de contrôler davantage l’accès et l’autorisation dont dispose l’application.
Les jetons d’accès créés par les applications sont automatiquement autorisés pour l’authentification unique SAML.
Utilisation de l’authentification de base
Pour y accéder, certains points de terminaison de l’API REST pour les GitHub App et les OAuth App vous obligent à utiliser une authentification de base. Vous utiliserez l’ID client de l’application comme nom d’utilisateur et le secret client de l’application comme mot de passe.
Par exemple :
curl --request POST \
--url "https://api.github.com/authorizations" \
--user ":" \
--header "X-GitHub-Api-Version: 2022-11-28"
Vous pouvez trouver l’ID client et générer un secret client dans la page des paramètres de votre application. Pour les GitHub App appartenant à l’utilisateur, la page des paramètres est https://github.com/settings/apps/APP-SLUG
. Pour les GitHub App appartenant à l’organisation, la page des paramètres est https://github.com/organizations/ORGANIZATION/settings/apps/APP-SLUG
. Remplacez APP-SLUG
par le nom sluggifié de votre application et ORGANIZATION
par le nom sluggifié de votre organisation. Par exemple : https://github.com/organizations/octo-org/settings/apps/octo-app
.
Authentification dans un workflow GitHub Actions
Si vous voulez utiliser l’API dans un workflow GitHub Actions, GitHub vous recommande d’être authentifié avec le jeton GITHUB_TOKEN
intégré au lieu de créer un jeton. Vous pouvez accorder des autorisations au GITHUB_TOKEN
avec la clé permissions
. Pour plus d’informations, consultez « Authentification par jeton automatique ».
Authentification avec un nom d’utilisateur et un mot de passe
L’authentification avec un nom d’utilisateur et un mot de passe n’est pas prise en charge. Si vous essayez de vous authentifier avec un nom d’utilisateur et un mot de passe, vous recevez une erreur 4xx.