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

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). 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

Note: GitHub has discontinued password authentication to the API starting on November 13, 2020 for all GitHub.com accounts, including those on a GitHub Free, GitHub Pro, GitHub Team, or GitHub Enterprise Cloud plan. You must now authenticate to the GitHub API with an API token, such as an OAuth access token, GitHub App installation access token, or personal access token, depending on what you need to do with the token. For more information, see "Troubleshooting."

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

When you have two-factor authentication enabled, Basic Authentication for most endpoints in the REST API requires that you use a personal access token.

You can generate a new personal access token using GitHub developer settings. Para obter mais informações, consulte "Criar um token de acesso pessoal para a linha de comando". Then you would use these tokens to authenticate using OAuth token with the GitHub API.

Esse documento ajudou você?

Privacy policy

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.