OAuth 1.0 versus OAuth 2.0

May 01 2023
Introdução ao OAuth Vamos considerar o OAuth como a chave de estacionamento de um carro. Ao contrário de uma chave normal que permite ao titular acesso ilimitado, um manobrista usa essa chave de manobrista apenas para dar uma volta temporária no carro sem ter acesso ao porta-luvas ou porta-malas.

Introdução ao OAuth

Vamos considerar o OAuth como a chave de manobrista de um carro. Ao contrário de uma chave normal que permite ao titular acesso ilimitado, um manobrista usa essa chave de manobrista apenas para dar uma volta temporária no carro sem ter acesso ao porta-luvas ou porta-malas. OAuth permite que as informações da conta de um usuário final sejam usadas por serviços de terceiros como Amazon, Facebook, Google, Instagram, LinkedIn, Netflix, Paypal, Microsoft, Twitter etc. compartilhe suas credenciais em aplicativos como sites de notícias, plataformas de blogs, videogames online, etc.

Por exemplo, ao fazer login em outro aplicativo no Facebook, um usuário pode clicar no botão de login do Facebook. Em seguida, o Facebook os autentica automaticamente e o site concede acesso a eles com permissão do Facebook. OAuth também é usado para autenticação de e-mail, como o Gmail, em que um serviço da Web obtém acesso a recursos protegidos em outro dispositivo, permitindo que o usuário acesse dois serviços diferentes com um único login.

Versão OAuth:

OAuth 2.0 é uma estrutura totalmente reescrita do OAuth 1.0, e a versão 1.0 é considerada um protocolo que usa terminologia e termos diferentes. A principal diferença na função é como ambas as versões categorizam as tarefas e a experiência do usuário final.

OAuth 1.0 tem um consumidor, provedor de serviços e usuário e não separa explicitamente as funções do servidor de recursos e do servidor de autorização.

Por outro lado, o OAuth 2.0 possui um cliente, servidor de autorização, servidor de recursos e proprietário do recurso. É por isso que essas versões não têm compatibilidade com versões anteriores. OAuth 2.0 oferece fluxos de autorização específicos para aplicativos da Web, aplicativos de desktop, telefones celulares, dispositivos inteligentes e aplicativos não baseados em navegador, como serviços baseados em API.

OAuth 1.0

⇒ o usuário A deseja que o App 1 acesse os dados no App 2

⇒ App 1 envia solicitação para conectar com App 2 iniciada pelo usuário A

⇒ App 2 aceita a solicitação do App 1

⇒ App 2 envia um token temporário para App 1

⇒ O aplicativo 1 redireciona o usuário A para login ou URLs pré-formatados também podem ser usados

⇒ Após o usuário A autenticar com sucesso no App 1, o App 1 solicita a aprovação do usuário A para conceder permissão ao App 2 para acessar os recursos do App 2

⇒ Ao conceder a aprovação, o App 1 é informado

⇒ App 1 solicita App 2 para um novo token de acesso usando token temporário

⇒ App 2 aprova a solicitação e envia um novo token de acesso

⇒ O App 1 agora pode acessar os dados do App 2 usando o novo token de acesso

Fluxo OAuth 1.0

OAuth 2.0

⇒ o usuário A deseja que o App 1 acesse os dados no App 2

⇒ App 1 solicita acesso ao App 2 do servidor de autorização

⇒ o usuário A autentica no servidor de autorização com esta credencial recebida na etapa acima e retorna a concessão de autorização ao App 1 para acessar os dados no App 2

⇒ Agora, o App 1 solicita token de acesso do servidor de autorização usando a concessão de autorização que o usuário A deu na etapa 3 acima

⇒ O servidor de autorização valida a solicitação e envia um token de acesso ao App 1

⇒ App 1 agora pode acessar dados no App 1 com token de acesso

Fluxo OAuth 2.0

Por que OAuth 2.0?

  • Melhor suporte para aplicativos sem navegador
  • A separação dos papéis
  • O token de acesso de curta duração e o token de atualização
  • Complexidade reduzida na assinatura de solicitações