O que exatamente é OAuth (Autorização Aberta)?
O OAuth permite notificar um provedor de recursos (por exemplo, o Facebook) que o proprietário do recurso (por exemplo, você) concede permissão a terceiros (por exemplo, um Aplicativo do Facebook) para acessar suas informações (por exemplo, a lista de seus amigos).
Se você o ler claramente, eu entenderia sua confusão. Então, vamos dar um exemplo concreto: ingressar em outra rede social!
Digamos que você já tenha uma conta no GMail. Você decide se juntar ao LinkedIn. Adicionar todos os seus muitos e muitos amigos manualmente é cansativo e propenso a erros. Você pode ficar farto até a metade ou inserir erros de digitação no endereço de e-mail para convite. Portanto, você pode ficar tentado a não criar uma conta, afinal.
Diante dessa situação, o LinkedIn tem a Good Idea (TM) para escrever um programa que adiciona sua lista de amigos automaticamente, porque os computadores são muito mais eficientes e eficazes em tarefas cansativas e propensas a erros. Como ingressar na rede agora é tão fácil, não há como você recusar tal oferta, não é?
Sem uma API para trocar essa lista de contatos, você teria que fornecer ao LinkedIn o nome de usuário e a senha da sua conta do GMail, dando-lhes muito poder .
É aqui que entra o OAuth. Se o seu GMail suporta o protocolo OAuth, o LinkedIn pode solicitar que você os autorize a acessar sua lista de contatos do GMail.
OAuth permite:
- Diferentes níveis de acesso: leitura e gravação VS somente leitura. Isso permite conceder acesso à sua lista de usuários ou um acesso bidirecional para sincronizar automaticamente seus novos amigos do LinkedIn com seus contatos do GMail.
- Granularidade de acesso: você pode optar por conceder acesso apenas às suas informações de contato (nome de usuário, email, data de nascimento etc.) ou a toda a sua lista de amigos, calendário e outros.
- Ele permite gerenciar o acesso a partir do aplicativo do provedor de recursos. Se o aplicativo de terceiros não fornecer mecanismo para cancelar o acesso, você ficaria preso ao acesso a suas informações. Com o OAuth, existe a possibilidade de revogar o acesso a qualquer momento.
Será que isso se tornará de fato (padrão?) No futuro próximo?
Bem, embora o OAuth seja um avanço significativo, ele não resolve problemas se as pessoas não o usarem corretamente. Por exemplo, se um provedor de recursos fornecer apenas um nível de acesso de leitura / gravação a todos os seus recursos de uma só vez e não fornecer mecanismo para gerenciar o acesso, não há sentido em fazê-lo. Em outras palavras, o OAuth é uma estrutura para fornecer funcionalidade de autorização e não apenas autenticação.
Na prática, ele se encaixa muito bem no modelo de rede social. É especialmente popular para as redes sociais que desejam permitir "plugins" de terceiros. Essa é uma área em que o acesso aos recursos é inerentemente necessário e também não é confiável (por exemplo, você tem pouco ou nenhum controle de qualidade sobre esses aplicativos).
Eu não vi tantos outros usos na natureza. Quero dizer, não conheço uma empresa de consultoria financeira on-line que acessará seus registros bancários automaticamente, embora tecnicamente possa ser usada dessa maneira.