Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

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.

Neste artigo

Did this doc help you?

Embora a API forneça vários métodos para autenticação, é altamente recomendável usar OAuth para aplicativos de produção. Os outros métodos fornecidos destinam-se a ser usados para scripts ou testes (ou seja, casos em que o OAuth completo seria exagerado). Os aplicativos de terceiros que dependem de GitHub para autenticação não devem pedir ou coletar credenciais de GitHub. Em vez disso, eles devem usar o Fluxo web do OAuth.

Autenticação básica

A API é compatível com a Autenticação Básica conforme definido em RFC2617 com algumas ligeiras 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 de GitHub responde com 404 Not Found. Isso pode causar problemas para bibliotecas de HTTP que assumem uma resposta 401 Unauthorized. A solução é criar manualmente o cabeçalho de Autorização .

Por meio do OAuth e de tokens de acesso pessoal

Recomendamos que você use tokens do OAuth para efetuar a autenticação na API do GitHub. Os tokens OAuth incluem tokens de acesso pessoal e habilitem o usuário a revogar o acesso a qualquer momento.

$ 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 token de acesso do OAuth.

Por meio do nome de usuário e senha

Aviso de Depreciação: GitHub irá descontinuar a autenticação de senha com a API. Você deve agora autenticar na API GitHub com um token de API, como um token de acesso OAuth, token de acesso de instalação do GitHub APP ou token de acesso pessoal, dependendo do que você precisar fazer com o token. A autenticação da senha para a API, será removida em 13 de Novembro, 2020. Para mais informações, incluindo brownouts agendados, veja a postagem blog post.

Para usar a Autenticação Básica com a API do GitHub, basta enviar o nome de usuário e senha associados à conta.

Por exemplo, se você estiver acessando a API via cURL, o comando a seguir faria a sua autenticação se substituísse <username> pelo seu nome de usuário de GitHub. (cURL solicitará que você insira a senha.)

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

Se você tem a autenticação de dois fatores ativada, certifique-se de entender como funciona com a autenticação de dois fatores.

Autenticar com o SSO do SAML

Observação: Integrações e aplicativos do OAuth que geram tokens em nome de terceiros são autorizados automaticamente.

Se você estiver usando a API para acessar uma organização que força o SSO do SAML para autenticação, você deverá criar um token de acesso pessoal (PAT) e autorizar o token para essa organização. Visite a URL especificada no X-GitHub-SSO para autorizar o token para a organização.

$ curl -v -H "Authorization: token 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 poderiam vir de várias organizações (por exemplo, solicitando uma lista de problemas criados pelo usuário), o cabeçalho X-GitHub-SSO indica quais organizações exigem que você autorize seu token de acesso pessoal:

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

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

O valor das organizações é uma lista de ID de organizações separada por vírgula para organizações para as quais exige-se a autorização do seu token de acesso pessoal.

Trabalhar com autenticação de dois fatores

Aviso de Depreciação: GitHub irá descontinuar a autenticação de senha com a API. Você deve agora autenticar na API GitHub com um token de API, como um token de acesso OAuth, token de acesso de instalação do GitHub APP ou token de acesso pessoal, dependendo do que você precisar fazer com o token. A autenticação da senha para a API, será removida em 13 de Novembro, 2020. Para mais informações, incluindo brownouts agendados, veja a postagem blog post.

Quando você tem a autenticação de dois fatores habilitada, a Autenticação básica para a maioria dos pontos de extremidade na API REST exige que você use um token de acesso pessoal ou token do OAuth em vez de seu nome de usuário e senha.

Você pode gerar um novo token de acesso pessoal com GitHub configurações de desenvolvedor ou usar o ponto de extremidade "Criar um uma nova autorização" na API de Autorização do OAuth para gerar um novo token do OAuth. Para obter mais informações, consulte "Criar um token de acesso pessoal para a linha de comando". Em seguida, você usaria esses tokens para efetuar a autenticação usando o token do OAuth com a API do GitHub. A única vez que você precisa efetuar a autenticação com seu nome de usuário e senha é quando você cria seu token do OAuth ou usa a API de Autorização do OAuth.

Usar a API de Autorização do OAuth com autenticação de dois fatores

Ao fazer chamadas para a API de Autorizações do OAuth, Autenticação básica exigirá que você use uma senha única (OTP) e seu nome de usuário e senha em vez de tokens. Ao tentar efetuar a autenticação com a API de Autorizações do OAuth, o servidor irá responder com 401 Unauthorized e um desses cabeçalhos para informar que você precisa de um código de autenticação de dois fatores:

X-GitHub-OTP: required; SMS or X-GitHub-OTP: required; app.

Este cabeçalho informa como a sua conta recebe seus códigos de autenticação de dois fatores. Dependendo de como você configurou a sua conta, você receberá seus códigos de OTP por SMS ou usará um aplicativo como o Google Authenticator ou o 1Password. Para obter mais informações, consulte "Configurar a autenticação de dois fatores". Passe o OTP no cabeçalho:

$ curl --request POST \
  --url https://api.github.com/authorizations \
  --header 'authorization: Basic PASSWORD' \
  --header 'content-type: application/json' \
  --header 'x-github-otp: OTP' \
  --data '{"scopes": ["public_repo"], "note": "test"}'

Did this doc help you?