Índice:
Muitos carros de luxo vêm com uma chave de manobrista. É uma chave especial que você fornece ao atendente de estacionamento e, diferentemente da chave normal, permitirá que o carro seja conduzido a uma curta distância enquanto bloqueia o acesso ao porta-malas e ao telefone celular a bordo. Independentemente das restrições impostas pela chave do manobrista, a ideia é muito inteligente. Você concede a alguém acesso limitado ao seu carro com uma chave especial, enquanto usa outra chave para desbloquear todo o resto. - O guia oficial do OAuth 1.0
Foi assim que as diretrizes de especificação baseadas na comunidade explicaram o OAuth em 2007. E embora o OAuth 2.0 seja um protocolo completamente novo, a mesma descrição ainda se aplica - o OAuth continua sendo uma maneira de os usuários concederem acesso de terceiros (e acesso limitado) a seus recursos sem compartilhar suas senhas.
Se você estiver na Internet regularmente, é provável que tenha encontrado um site que usa o OAuth. Afinal, os maiores sites do mundo, como Facebook, Google, MySpace, Twitter, Photobcuket, Yahoo, Evernote e Vimeo, usam esse padrão de autenticação. Continue lendo para saber mais sobre esse padrão e por que a próxima geração, OAuth 2.0, ainda está sendo usada em uma base relativamente experimental.
O que é o OAuth 2.0?
Primeiro, você precisa saber o que o OAuth, como protocolo, faz: Permite a autorização da interface de programação de aplicativos entre dois aplicativos da Web ou de desktop. Como resultado, os sites podem compartilhar recursos protegidos com outros sites e serviços.
Por exemplo, se você jogar Scramble com os amigos no seu iPad, poderá inserir suas credenciais do Facebook, permitindo que o jogo procure na sua lista de amigos para ver quais deles estão jogando - e convide outras pessoas para participar. Ou você pode se conectar com amigos no Google+ com base em quem está seguindo você no Twitter. Esse tipo de aplicativo é útil para os usuários, mas envolve o acesso a um site ou programa às informações sobre você em outro site.
O OAuth 2.0 funciona como a primeira encarnação do OAuth, mas é um padrão totalmente novo. Isso significa que ele não é compatível com o OAuth 1.0. A versão 2.0 limpou muitos dos problemas com o OAuth original e fez melhorias.
Embora basicamente retenha a arquitetura da primeira versão, o 2.0 melhorou:
- Autenticação e assinaturas. O OAuth 2.0 tornou mais fácil para alguém do lado do cliente implementar o protocolo.
- Experiência do usuário e formas alternativas de emitir tokens
- Desempenho, especialmente em sites e serviços maiores
Os benefícios do uso do OAuth 2.0
Um dos melhores motivos para usar o OAuth é que ele facilita muito o compartilhamento. Já estamos acostumados a enviar fotos para o Instagram e publicá-las automaticamente no Twitter e no Facebook. Na verdade, é esse tipo de facilidade de uso e cruzamento que continua a tornar as mídias sociais tão atraentes.
Mas isso não é tudo. Para usuários finais, o OAuth significa que você não precisa criar outro perfil. Por exemplo, se você quiser deixar um comentário em um artigo, poderá usar suas credenciais do Facebook ou Twitter para fazê-lo, em vez de precisar se inscrever em uma conta em um determinado site. Isso é ótimo para sites nos quais você normalmente não está ativo ou nos quais não pode confiar. Também pode beneficiar os sites, garantindo que os usuários tenham uma identidade no Facebook, tornando menos provável o spam de comentários.
OAuth também significa menos senhas para lembrar. É uma prática recomendada ter senhas diferentes para diferentes serviços do site. Portanto, em vez de memorizar outra senha, você só precisa usar sua senha do Facebook para acessar o serviço., a propósito, não verá sua senha.
Você também pode limitar quais recursos são acessados por meio do seu OAuth. Por exemplo, ao jogar um jogo no Facebook, você pode especificar se deseja que o jogo seja publicado em seu mural em seu nome ou não.
Para o desenvolvedor, o OAuth 2.0 fornece um código já desenvolvido para autenticações, exibição de interação social e exibição de perfil de usuário. Isso significa menos erros para os desenvolvedores e um risco menor, porque a API já foi depurada, testada e comprovada. Por fim, você também se beneficia de ter menos dados armazenados em seus próprios servidores.
Como surgiu o OAuth 2.0
É bastante óbvio que o OAuth é uma resposta à demanda por computação segura e facilidade de uso para diferentes serviços da Web. O OAuth 2.0, por outro lado, surgiu da necessidade de tornar o OAuth menos complexo. Mas toda a idéia para os dois realmente veio do OpenID.
O OpenID é um serviço que permite aos usuários fazer login em vários serviços usando credenciais de login de outro site. Como o OpenID era muito limitado, um grupo de pessoas trabalhando em diferentes protocolos de autorização para seus próprios sites se reuniu. As primeiras implementações do OAuth foram feitas em 2007 e a primeira revisão ocorreu dois anos depois.
O OAuth 2.0 entrou em cena em 2010. Seu objetivo era focar na simplicidade cliente-desenvolvedor e ser mais facilmente escalável, além de melhorar a experiência do usuário.
Desafios adiante?
Embora o Google, Klout e outros grandes nomes estejam implementando o OAuth 2.0, ainda pode haver um caminho difícil para seguir com esse protocolo. Existem críticas da comunidade OAuth 2.0, incluindo preocupações sobre a segurança do protocolo (muitos acreditam que é menos seguro que o OAuth 1.0).
De acordo com Hammer, se usado por um programador competente e versado em segurança na Web, o OAuth 2.0 funciona. Infelizmente, apenas uma pequena minoria de desenvolvedores se encaixa nesse projeto.
Além disso, os códigos do OAuth 2.0 não são reutilizáveis. Por exemplo, os protocolos OAuth 2.0 usados pelo Facebook não seriam facilmente utilizáveis por outro site. Além do mais, o novo protocolo é realmente muito mais complexo que o original.
Mas o verdadeiro incentivo para muitas pessoas é que o OAuth 2.0 não parece oferecer nenhuma vantagem ou melhoria real em relação à 1.0. Hammer escreve que, se você estiver implementando com sucesso a 1.0, não há razão para atualizar para a 2.0.
O OAuth 2.0, no entanto, ainda está muito vivo. Se abordar as críticas e questões levantadas, ainda poderá encontrar um lugar como um protocolo muito poderoso. No momento da redação deste artigo, no entanto, a versão 1.0 ainda é considerada a versão oficial, estável e testada do OAuth. No entanto, para desenvolvedores que pretendem trabalhar com grandes nomes do mundo on-line, implementar esse protocolo com segurança pode se tornar uma habilidade essencial definida em um futuro não muito distante.