Nessa apresentação realizada no Papo Reto da Bluesoft, falei um pouco sobre OAuth 2 e como você pode utilizar esse protocolo para utilizar recursos de outras aplicações de forma segura.

O principal objetivo do OAuth 2 é permitir que uma aplicação se autentique em outra “em nome de um usuário”, sem precisar ter acesso a senha dele.

Basicamente, a aplicação pede permissão de acesso para aquele usuário que pode ou não conceder, sem que para isso tenha que informar a senha. Mesmo que a senha seja alterada a permissão continuará válida. Além disso, a permissão dada à aplicação cliente pode ser revogada a qualquer momento.

Glendon Leitão, descreveu muito bem o Fluxo do OAuth 2:

  1. O usuário está em uma aplicação (client) e essa aplicação deseja acessar um recurso protegido do usuário em outra aplicação.
  2. O client faz uma chamada ao authorization server por meio de uma url passando 3 parâmetros (cliente id, cliente secret e redirect url) e o usuário é redirecionado para uma nova página.
  3. O usuário fornece suas credenciais e a autorização para o cliente acessar seus recursos privados.
  4. Após o cliente conceder autorização, o servidor de autenticação faz um redirect para a página passada como parâmetro (redirect url) passando de volta o parâmetro token.
  5. De posse do token, o cliente pode solicitar o acesso ao recurso protegido, enviando o token na requisição.

Para aprender mais sobre OAuth 2, veja o vídeo da palestra e acompanhe os slides: