Pular para o conteúdo principal
padrão hexadecimal roxo

O que são tokens OAuth?

Os tokens OAuth autorizam o acesso de um usuário aos recursos. Em outras palavras, eles não autenticam usuários, mas são usados pelo provedor de serviços para autorizar o acesso em nome do usuário a outros recursos.

Uma transação do OAuth ocorre quando um usuário solicita permissão de outro recurso usando sua identidade de provedor de serviços. O recurso solicitará permissão do provedor de serviços, que é fornecida na forma de um token de solicitação e uma senha. Em seguida, o recurso redireciona o usuário ao provedor de serviços para autenticar a solicitação. Nesse ponto, o recurso troca o token de solicitação por um token de acesso e uma senha. Se os dois tokens compartilharem o mesmo segredo, o processo do OAuth será concluído e o usuário delegou com êxito o acesso ao recurso ao provedor de serviços.

O processo do OAuth

Passo 1

Solicitar acesso

Anne faz uma solicitação no YouTube (recurso) para publicar vídeos diretamente em seu feed do Twitter (provedor de serviços). O YouTube então pede permissão de acesso ao Twitter.

gráfico de uma mulher sentada em uma mesa

Passo 2

Solicitar troca de token e senha

O Twitter fornece ao YouTube um token de solicitação e uma senha.

gráfico de uma chave e navegadores da web

Passo 3

Autenticação

O YouTube redireciona Anne para o Twitter para fazer login. Anne fornece ao Twitter suas credenciais de login e autentica que a solicitação do YouTube foi iniciada pelo usuário.

Gráfico de uma pessoa usando um laptop

Passo 4

Troca de token de acesso

Depois que a solicitação é autenticada pelo usuário, o YouTube solicita ao Twitter que troque o token de solicitação e a senha por um token de acesso. Se as senhas associadas aos tokens corresponderem, o Twitter fornecerá o token de acesso ao YouTube e concederá acesso ao YouTube.

gráfico de uma chave e navegadores da web

Passo 5

Acesso concedido

Anne agora pode usar o YouTube com segurança para publicar vídeos diretamente em seu feed do Twitter.

gráfico de uma mulher sentada em uma mesa

O exemplo acima resume um processo geral de OAuth. OAuth também permite controle e permissões mais granulares, como o direito de revogar tokens sempre que o usuário desejar e definir diferentes níveis de acesso a provedores de serviços para diferentes recursos.

Comparação entre OAuth 1.0 e OAuth 2.0

Em 2012, o OAuth 2.0 foi introduzido como uma grande reformulação do OAuth 1.0. As alterações feitas nessa versão do OAuth foram significativas o suficiente para que as versões 2.0 e 1.0 não sejam compatíveis. OAuth 2.0 foi projetado para solucionar uma falha de segurança de fixação de sessão no fluxo de autorização do OAuth.

Embora esse problema tenha sido resolvido com o OAuth 2.0, a nova versão intencionalmente não define ou oferece suporte a criptografia, assinatura, verificação de cliente ou vinculação de canal, mas exige que os implementadores usem um protocolo de segurança diferente, como HTTPS/TLS para essa finalidade.

As diferenças entre OAuth 1.0 e 2.0 podem ser resumidas abaixo:

Gráfico de comparação: OAuth 1.0 e OAuth 2.0

Comparação entre OAuth e SAML – qual é a diferença?

SAML é uma variante de XML que descreve uma estrutura que permite que um dispositivo execute autenticação e autorização em nome de um ou mais dispositivos.

Com o surgimento de opções leves para codificação de dados, como o JSON, o OAuth ganhou adoção para dar suporte a usuários de dispositivos móveis. Embora o OAuth seja um protocolo mais recente que evoluiu a partir da necessidade de substituir o SAML, ambos os protocolos são essenciais para o logon único seguro (SSO).

Em outras palavras, o OAuth não é uma alternativa ao SAML, pois os dois protocolos podem se complementar. Por exemplo, em um ambiente SSO, o SAML pode ser responsável pela autenticação (confirmar que o usuário é autêntico e deve ter acesso) e o OAuth será responsável pela autorização (conceder acesso a recursos protegidos específicos).