De acordo com a Wikipedia, OAuth 2 é um framework de autorização e possui basicamente quatro componentes básicos:
● Resource Owner: uma entidade capaz de conceder acesso à um recurso protegido (pode ser o usuário final).
● Resource Server: o servidor que hospeda os recursos protegidos. O acesso a ele é feito através de tokens.
● Client: uma aplicação requisitando recursos protegidos, através da autorização do dono.
● Authorization Server: servidor que emite tokens de acesso ao cliente, depois de sua autenticação e obtenção de autorização.
Só que o OAuth 2 é bem mais complexo que isso, tem vários fluxos, e outros conceitos que trabalham junto com ele, como OpenID, JWT.
Felizmente, existe uma ótima fonte de informação sobre o assunto, é esse livro:
Com eu já escrevi alguns livros eu sei como é complicado encaixar um assunto técnico junto com a parte prática e esse livro o autor Adolfo Eloy faz isso muito bem, com uma aplicação simples integrando com outra e evoluindo para o OAuth 2.
Além disso, o livro está cheio de documentação dos fluxos, com essa aqui, que é o fluxo de Authorization Code (o mais usado):
Sim, super recomendo o livro!
Outra recomendação é assistir ao vídeo de Nate Barbettini sobre OAuth 2 e OpenID Connect, um vídeo de uma hora explicando de maneira bem simples e detalhada.
A última dica é usar o meu mapa mental para ajudar a visão geral do OAuth 2:
Fernando Boaglio, para a comunidade