OAuth
OAuth é um mecanismo de autenticação onde tokens são amarrados em funcionalidades ou clientes.
Em outras palavras, você pode especificar quais recursos de um serviço você quer permitir a um token do OAuth que esteja ligado a ele, e você pode emitir vários tokens e amarrá-los a específicos clientes: celular, laptop, smart watch ou a um dispositivo da Internet das Coisas como uma torradeira.
E o mais importante é que você pode revogar tokens sem impactar outros tokens.
A principal desvantagem do OAuth tokens é que ele introduz um nível de complexidade que você pode não estar acostumado se você apenas utiliza o HTTP Basic.
Os requests do HTTP Basic geralmente apenas requerem adicionar um extra header para o HTTP request, ou um flag extra para o cliente como faz a ferramenta cURL.
OAuth resolve os problemas apenas vinculando tokens aos escopos (configurando funcionalidades dentro de um web service) e emitindo vários tokens que forem preciso para múltiplos clientes.
Escopos: ações especificadas vinculadas a autenticação de tokens
Quando você gera um token OAuth, você especifica o direito de acesso que você configurou.
Apesar de nossos exemplos criar um token utilizando o HTTP Basic, uma vez que você tenha o token, você não precisa mais utilizar o HTTP Basic nos próximos requests.
Se esse token é devidamente emitido, o token do OAuth irá ter permissões para ler e escrever no repositório público do usuário.
Vamos fazer um comando no cURL usando o HTTP Basic para iniciar o processo do token request.
Digite o comando curl -u blackzig -d “{\”scopes\”:[\”public_repo\”], \”note\”: \”Nova Autorizacao\”}” https://api.github.com/authorizations
Em note, não coloque nenhuma acentuação que vai dar erro.
Enter host password for user ‘blackzig’:
{
“id”: 372271144,
“url”: “https://api.github.com/authorizations/372271144”,
“app”: {
“name”: “Nova Autorizacao”,
“url”: “https://developer.github.com/v3/oauth_authorizations/”,
“client_id”: “00000000000000000000”
},
“token”: “5f46d18e03b1baac156bc465e5c09499d8cf1227”,
…
}
A resposta JSON gerada, tem um token que você pode extrair e usar para aplicação que precisa acessar a API do GitHub.
Para usar esse token, você especifica o token dentro do header de autorização: curl -H “Authorization: token abcdef87654321” …
Escopos esclarecem como um serviço ou aplicação irá usar os dados dentro do GitHub API.
Isto facilita a auditoria de como você está usando a informação se for um token que está ligado ao seu uso pessoal.
Mas, o mais importante, isto fornece uma claridade e proteção para aplicações de terceiro que desejam acessar suas informações: você pode assegurar a limitação da aplicação e os dados que serão acessados e você pode revogar o acesso facilmente.
Deixe um comentário