OAuth

Origem: Wikipédia, a enciclopédia livre.
Logotipo, desenhado por Chris Messina

OAuth (Open-Authorization) é um padrão aberto de delegação de autorização, comumente utilizado para permitir que os usuários da Internet possam fazer logon em sites de terceiros usando contas de um provedor de identidade, como Google, Facebook, Microsoft, Twitter, etc.—mas, sem expor credenciais de autenticação, como senhas.[1] Geralmente, o OAuth fornece aos clientes um "acesso seguro delegado" aos recursos do servidor em nome do proprietário do recurso. Ele especifica um processo para proprietários de recursos para autorizar o acesso de terceiros aos seus recursos de servidor sem compartilhar suas credenciais. Projetado especificamente para trabalhar com o HTTP, o OAuth permite essencialmente tokens de acesso a ser emitidos para clientes de terceiros, mediante autorização do servidor, com a aprovação do proprietário do recurso. O terceiro, em seguida, usa o token de acesso para recursos protegidos hospedados pelo servidor.[2]

O OAuth é um serviço complementar e diferente do OpenID. OAuth é também distinto do OATH que é uma arquitetura de referência para autenticação, e não uma norma para autorização. No entanto, o OAuth está diretamente relacionada com o OpenID Connect (OIDC) pois OIDC é uma camada de autenticação construída em cima do OAuth 2.0. OAuth é também distinto do XACML, que é a política de autorização padrão. OAuth pode ser usado em conjunto com XACML onde OAuth é utilizado para a transferência de propriedade de consentimento e de acesso delegação considerando que XACML é usado para definir as diretivas de autorização (por exemplo, os gestores podem visualizar os documentos em sua região).

OAuth 2.0[editar | editar código-fonte]

OAuth 2.0 não é compatível com o OAuth 1.0. OAuth 2.0 fornece fluxos de autorização específicos para aplicações web, aplicações desktop, celulares e dispositivos de sala de estar. A especificação e RFCs associados são desenvolvidos pelo IETF OAuth WG;[3] o principal framework foi publicado em outubro de 2012.

A Graph API do Facebook suporta apenas OAuth 2.0.[4] O Google oferece suporte OAuth 2.0 como o mecanismo de autenticação recomendado para todas as suas APIs.[5] A partir de 2011, a Microsoft[6] adicionou experimentalmente o suporte ao OAuth 2.0 para as suas APIs.

O OAuth 2.0 Framework[2] e o Bearer Token[7] foram publicados em outubro de 2012.

História[editar | editar código-fonte]

Começa em Novembro de 2006, quando Blaine Cook trabalhava na implementação de segurança para o Twitter. Juntamente com outros desenvolvedores, Cook percebeu que não havia um padrão aberto para a delegação de acesso à APIs. Um grupo de discussão foi criado para o planejamento de um protocolo aberto. Recebeu interesse do Google.

Em 4 de Dezembro de 2007, OAuth 1.0 foi lançado [RFC 5849].

Em Outubro de 2012, OAuth 2.0 foi publicado [RFC 6749].

Funcionamento[editar | editar código-fonte]

Dono do Recurso (Resource Owner): uma entidade capaz de conceder acesso à um recurso protegido (pode ser o usuário final).

Servidor do Recurso (Resource Server): o servidor que hospeda os recursos protegidos. O acesso a ele é feito através de tokens.

Cliente (Client): uma aplicação requisitando recursos protegidos, através da autorização do dono.

Servidor de Autorização (Authorization Server): servidor que emite tokens de acesso ao cliente, depois de sua autenticação e obtenção de autorização.

Referências[editar | editar código-fonte]

  1. Gordon, Whitson. «Understanding OAuth: What Happens When You Log Into a Site with Google, Twitter, or Facebook». Lifehacker (em inglês) 
  2. a b <dick.hardt@gmail.com>, Dick Hardt. «The OAuth 2.0 Authorization Framework». tools.ietf.org (em inglês). Consultado em 5 de outubro de 2017 
  3. «Web Authorization Protocol (oauth) - Documents». datatracker.ietf.org (em inglês). Consultado em 5 de outubro de 2017 
  4. «Login do Facebook - Documentação - Facebook for Developers». Facebook for Developers (em inglês) 
  5. «Google Identity Platform  |  Google Developers». Google Developers (em inglês). Consultado em 5 de outubro de 2017 
  6. «Windows Blog». Windows Blog (em inglês). Consultado em 5 de outubro de 2017 
  7. Dick, Hardt,; Michael, Jones,. «The OAuth 2.0 Authorization Framework: Bearer Token Usage». tools.ietf.org (em inglês). Consultado em 5 de outubro de 2017