Ir para o conteúdo principal

OAuth, ou Open Authorization (autorização aberta), é um protocolo de autorização padrão aberto para delegação de acesso. É um método seguro para permitir que os usuários concedam aos provedores de serviços (ou seja, sites e aplicativos) acesso às suas informações sem fornecer suas senhas.

O OAuth fornece aos clientes acesso delegado seguro aos recursos do servidor em nome do proprietário do servidor. Fluxos de autorização específicos permitem que o cliente acesse recursos protegidos sem precisar fornecer sua senha. Em vez disso, o cliente usa tokens de acesso que podem ser aprovados pelo proprietário do recurso para conceder acesso a esse recurso.

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

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:

OAuth 1.0 vs. 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).