Fluxo OAuth2 - o servidor valida com o servidor de autenticação?


10

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.

Respostas:


8

Encontrei. Enterrado nas especificações. Eles dizem que o servidor de recursos deve validar o token de acesso com o servidor de autenticação, mas que está fora do escopo do documento. Pena, eu teria pensado que a validação de token era uma parte importante.


11
Sobre partes importantes , pode valer a pena ler esta postagem no blog para obter informações sobre as prioridades do OAuth2.
Lars Viklund

11
Obrigado por isso, uma leitura interessante. Meus requisitos são bastante simples, pois desejo permitir que um aplicativo iOS se autentique no google, twitter, facebook, etc, passe alguma forma de autorização ao meu servidor e faça com que meu servidor valide e permita o acesso a recursos. O problema se mostrou mais complexo do que eu previa devido às complexidades de entender como isso funciona e o que devo fazer onde.
Drekka

Mais precisamente, o Apêndice A: "Para validar a assinatura na solicitação, o recurso protegido pode enviar o identificador de token ao terminal de introspecção do servidor de autorização para obter as informações importantes necessárias para esse token. Os detalhes desse uso estão fora o escopo desta especificação e será definido em uma extensão [...] ".
precisa saber é

2

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


0

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


4
Bem-vindo à engenharia de software. Na sua forma atual, esta resposta não atende às nossas diretrizes de qualidade . Esperamos que as respostas sejam independentes - os leitores devem seguir links externos apenas para obter uma compreensão mais profunda ou confirmar fontes e o conteúdo relevante deve ser citado aqui.
Thomas Owens
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.