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.

Para enviar seu comentário, preencha os campos abaixo:

Deixe um comentário

*

Seja o primeiro a comentar!