Eu tenho lido muito sobre o OAuth2 tentando entender, mas ainda estou confuso sobre alguma coisa.
Entendo que o cliente autoriza com o provedor OAuth (Google, por exemplo) e permite que o Resource Server tenha acesso aos dados do perfil do usuário. Em seguida, o cliente pode enviar o token de acesso ao servidor de recursos e devolver o recurso.
Mas o que parece não ser coberto em nenhuma documentação é o que acontece quando o aplicativo cliente solicita um recurso ao servidor de recursos e passa o token de acesso. Tudo o que li até agora afirma que o servidor de recursos apenas responde com o recurso solicitado.
Mas isso parece um grande buraco, certamente o servidor de recursos deve validar o token de acesso, caso contrário, eu poderia simplesmente falsificar qualquer solicitação antiga e passar um token antigo, roubado, falso ou gerado aleatoriamente, e ele apenas aceitaria.
Alguém pode me indicar uma explicação simples de seguir do OAuth2 porque, até agora, as que li parecem incompletas.
A validação de token é geralmente tratada de 1 de 2 maneiras.
1) O token é assinado criptograficamente usando chaves pré-compartilhadas. Isso tem falhas óbvias para uso em sistemas distribuídos e em proliferação.
2) O Authorization Server (AS) fornece um ponto de extremidade para validação de token ou introspecção. Este método foi padronizado na IETF RFC 7662 em outubro de 2015, consulte: https://tools.ietf.org/html/rfc7662
Esta pergunta / resposta de estouro de pilha inclui exemplos do Google e do Github: /programming/12296017/how-to-validate-an-oauth-2-0-access-token-for-a-resource-server
fonte
você lê as especificações para saber como validar o token:
https://tools.ietf.org/html/rfc7662
espero que isso ajude - pls marque-a como resposta se responder sua pergunta / problema
fonte