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 Enterprise Server para autenticação não devem pedir ou coletar credenciais de GitHub Enterprise Server. 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 GitHub Enterprise Server API 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 http(s)://[hostname]/api/v3/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
Para usar Autenticação Básica com a A API de GitHub Enterprise Server simplesmente envia o nome de usuário e a senha associada � 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 Enterprise Server. (cURL solicitará que você insira a senha.)
$ curl -u username http(s)://[hostname]/api/v3/user
Se você tem a autenticação de dois fatores ativada, certifique-se de entender como funciona com a autenticação de dois fatores.
Trabalhar com autenticação de dois fatores
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 do seu nome de usuário e senha.
Você pode gerar um novo token de acesso pessoal ou com o ponto de extremidade "[Criar uma nova autorização][/rest/reference/oauth-authorizations#create-a-new-authorization]" na API de Autorizações OAuth para gerar um novo token 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 OAuth token com a API de GitHub Enterprise Server. TA única vez que você deve efetuar a autenticação com o seu nome de usuário e senha é no momento de criar o seu token OAuth ou usar a API de autorizações 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"}'