Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Outros métodos de autenticação

Você pode usar a autenticação básica para testes em um ambiente que não é de produção.

Embora a API forneça vários métodos para autenticação, é altamente recomendável usar o OAuth para aplicativos de produção. Os outros métodos fornecidos são para uso em scripts ou testes (ou seja, casos em que o OAuth completo seria exagerado). Os aplicativos de terceiros que dependem de GitHub Enterprise Cloud para autenticação não devem pedir nem coletar credenciais do GitHub Enterprise Cloud. Em vez disso, eles devem usar o fluxo da Web do OAuth.

Autenticação Básica

A API dá suporte à Autenticação Básica, conforme definido em na RFC2617, com algumas pequenas diferenças. A diferença principal é que o RFC exige que as solicitações não autenticadas sejam respondidas com respostas 401 Unauthorized. Em muitos lugares, isso divulgaria a existência de dados de usuário. Em vez disso, a API GitHub responde com 404 Not Found. Isso pode causar problemas para bibliotecas HTTP que pressupõem uma resposta 401 Unauthorized. A solução é criar manualmente o cabeçalho Authorization.

Via personal access token

Recomendamos que você use fine-grained personal access tokens para autenticar na API do GitHub.

$ curl -u USERNAME:TOKEN https://api.github.com/user

Esta abordagem é útil se suas ferramentas são compatíveis apenas com a Autenticação Básica, mas você quer aproveitar os recursos de segurança do personal access token.

Por meio do nome de usuário e senha

Observação: o GitHub descontinuou a autenticação de senha para a API a partir de 13 de novembro de 2020 em todas as contas do GitHub.com, incluindo aquelas em um plano GitHub Free, GitHub Pro, GitHub Team ou GitHub Enterprise Cloud. Agora você deve efetuar a autenticação na GitHub API com um token da API, como um token de acesso do OAuth, token de acesso à instalação do aplicativo GitHub ou tpersonal access token, dependendo do que você precisa fazer com o token. Para saber mais, veja a "Solução de problemas".

Autenticar com o SSO do SAML

Observação: integrações e aplicativos OAuth que geram tokens em nome de outras pessoas são automaticamente autorizados.

Observação: Na maioria dos casos, você pode usar Authorization: Bearer ou Authorization: token a fim de passar um token. No entanto, se estiver passando um JWT (token Web JSON), você deverá usar Authorization: Bearer.

Se você estiver usando a API para acessar uma organização que impõe o SSO do SAML para autenticação, será necessário criar um personal access token e autorizar o token para essa organização. Acesse a URL especificada em X-GitHub-SSO para autorizar o token para a organização.

A URL gerada é válida por uma hora e expira após esse período. Após uma hora, você precisará gerar outra URL.

$ curl -v -H "Authorization: Bearer TOKEN" https://api.github.com/repos/octodocs-test/test

> X-GitHub-SSO: required; url=https://github.com/orgs/octodocs-test/sso?authorization_request=AZSCKtL4U8yX1H3sCQIVnVgmjmon5fWxks5YrqhJgah0b2tlbl9pZM4EuMz4
{
  "message": "Resource protected by organization SAML enforcement. You must grant your personal token access to this organization.",
  "documentation_url": "https://docs.github.com"
}

Ao solicitar dados que podem vir de várias organizações (por exemplo, solicitando uma lista de problemas criados pelo usuário), o cabeçalho X-GitHub-SSO indicará quais organizações exigem que você autorize seu personal access token:

$ curl -v -H "Authorization: Bearer TOKEN" https://api.github.com/user/issues

> X-GitHub-SSO: partial-results; organizations=21955855,20582480

O valor organizations é uma lista separada por vírgulas de IDs da organização para organizações que exigem autorização do personal access token.

Trabalhar com autenticação de dois fatores

Se você tem a autenticação de dois fatores habilitada, a Autenticação Básica para a maioria dos pontos de extremidade na API REST requer que você use um personal access token.

Você pode gerar um novo personal access token usando configurações de desenvolvedor do GitHub Enterprise Cloud. Para obter mais informações, confira "Como criar um personal access token para a linha de comando". Em seguida, você usaria esses tokens para autenticar usando o token OAuth com a API do GitHub.