Об аутентификации
Многие конечные точки REST API требуют проверки подлинности или возвращают дополнительные сведения, если вы прошли проверку подлинности. Кроме того, вы можете делать больше запросов в час при проверке подлинности.
Вы можете проверить подлинность запроса, отправив маркер в заголовке Authorization
запроса. В следующем примере замените YOUR-TOKEN
ссылкой на маркер:
curl --request GET \
--url "https://api.github.com/octocat" \
--header "Authorization: Bearer YOUR-TOKEN" \
--header "X-GitHub-Api-Version: 2022-11-28"
Примечание. В большинстве случаев передать маркер с помощью Authorization: Bearer
или Authorization: token
. Однако при передаче веб-токена JSON (JWT) необходимо использовать Authorization: Bearer
.
При попытке использовать конечную точку REST API без маркера или с маркером, у которого недостаточно разрешений, вы получите 404 Not Found
ответ или 403 Forbidden
.
Проверка подлинности с помощью personal access token
Если вы хотите использовать REST API GitHub для личного использования, можно создать personal access token. По возможности GitHub рекомендует использовать fine-grained personal access token вместо personal access token (classic). Дополнительные сведения о создании personal access token см. в разделе Управление личными маркерами доступа.
Если вы используете personal access token (classic) для доступа к организации, которая применяет единый вход SAML для проверки подлинности, вам потребуется авторизовать маркер после создания. Fine-grained personal access tokens авторизоваться во время создания маркера, прежде чем будет предоставлен доступ к организации. Дополнительные сведения см. в разделе Авторизация личного токена доступа для использования с документами единого входа SAML.
Если вы не авторизуете personal access token (classic) для SAML SSO, прежде чем пытаться использовать его для доступа к организации, которая применяет единый вход SAML, может возникнуть 404 Not Found
ошибка или 403 Forbidden
. Если появляется сообщение об ошибке 403 Forbidden
, вы можете следовать url-адресу в заголовке X-GitHub-SSO
, чтобы авторизовать маркер. Срок действия URL-адреса истекает через час. Если вы запросили данные, которые могут поступать из нескольких организаций, API не будет возвращать результаты из организаций, которым требуется единый вход SAML. В X-GitHub-SSO
заголовке будет указан идентификатор организаций, которым требуется авторизация единого входа SAML для personal access token (classic). Например: X-GitHub-SSO: partial-results; organizations=21955855,20582480
.
Проверка подлинности с помощью маркера, созданного приложением
Если вы хотите использовать API для организации или от имени другого пользователя, GitHub рекомендует использовать GitHub App. Дополнительные сведения см. в разделе Сведения о проверке подлинности с помощью Приложение GitHub.
Вы также можете создать маркер OAuth с OAuth App для доступа к REST API. Однако GitHub рекомендует использовать вместо него GitHub App. GitHub Apps обеспечивают больший контроль над доступом и разрешениями приложения.
Маркеры доступа, созданные приложениями, автоматически авторизоваться для единого входа SAML.
Использование обычной аутентификации
Некоторые конечные точки REST API для GitHub Apps и OAuth Apps требуют использования обычной проверки подлинности для доступа к конечной точке. Вы будете использовать идентификатор клиента приложения в качестве имени пользователя и секрет клиента приложения в качестве пароля.
Пример:
curl --request POST \
--url "https://api.github.com/authorizations" \
--user ":" \
--header "X-GitHub-Api-Version: 2022-11-28"
Вы можете найти идентификатор клиента и создать секрет клиента на странице параметров приложения. Для пользователей GitHub Apps страница параметров имеет значение https://github.com/settings/apps/APP-SLUG
. Для принадлежащих организации GitHub Apps страница параметров имеет значение https://github.com/organizations/ORGANIZATION/settings/apps/APP-SLUG
. Замените APP-SLUG
на вялое имя приложения, а ORGANIZATION
— на вялое имя вашей организации. Например, https://github.com/organizations/octo-org/settings/apps/octo-app
.
Проверка подлинности в рабочем процессе GitHub Actions
Если вы хотите использовать API в рабочем процессе GitHub Actions, GitHub рекомендует выполнять проверку подлинности с помощью встроенного GITHUB_TOKEN
вместо создания маркера. Вы можете предоставить разрешения для GITHUB_TOKEN
с помощью ключа permissions
. Дополнительные сведения см. в разделе Автоматическая проверка подлинности токенов.
Проверка подлинности с помощью имени пользователя и пароля
Проверка подлинности с использованием имени пользователя и пароля не поддерживается. При попытке пройти проверку подлинности с помощью имени пользователя и пароля вы получите ошибку 4xx.