Logo que eu leio o nome desse protocolo penso imediatamente em Authentication. Mas na realidade o “Auth” no nome é de Authorization. Open Authorization – Hoje em Outubro de 2020 o protocolo está na na sua versão 2.0.
Esse protocolo é muito utilizado pois ele permite uma “integração” com determinados “service providers” pode exemplo, o Google, Facebook, Microsoft, Twitter e outros. Desse modo o sistema lhe autoriza com base nesses provedores.
Entrar em outro site com sua conta do Google, Twitter ou Facebook não só conveniente, é mais seguro do que criar uma nova conta ou inserir sua senha desses sites em um site de terceiros.
A senha nunca é passada de um servidor para outro servidor quando usamos o o OAuth 2.0 framework.
Isso significa que se um site for hackeado como o Canvas.com e você usava a autenticação foi através do OAuth pelo Facebook ou pelo Twitter sua senha do ainda estará segura e tudo que deve ser feito é revogar o acesso a esse aplicativo. Dessa forma, seus tokens se tornam inúteis e sua conta fica sob seu controle novamente, sem nem mesmo precisar alterar sua senha.
O padrão OAuth tem quatro funções:
Resource Owner: Uma pessoa habilmente capaz de conceder acesso a um recurso protegido. Quando o proprietário do recurso é uma pessoa, automaticamente é referida como um usuário final.
Resource Owner: O servidor que hospeda os recursos praticados, capaz de aceitar e enviar para
solicitações de recursos protegidos usando tokens de acesso.
Client Application: Um aplicativo que faz solicitações de recursos protegidos em nome do proprietário do recurso e
com o seu autorizariam. O termo “cliente” não implica nenhuma característica de implementação se o
aplicativo é executado em um servidor, desktop ou outros dispositivos).
Authorizarion Server: O servidor que emite tokens de acesso para o cliente após autenticar com sucesso o
proprietário do recurso e obtenção de autorização.
De um modo simplificado seu funcionamento é permitir que um aplicativo tenha um token de acesso (que representa a permissão de um usuário para o cliente acessar seus dados) que pode ser usado para autenticar uma solicitação para um endpoint de API.
Fontes de pesquisa:
Seja o primeiro a comentar