Flux OAuth2 - le serveur valide-t-il avec le serveur Auth?

10

J'ai beaucoup lu sur OAuth2 en essayant de m'en sortir, mais je suis toujours confus à propos de quelque chose.

Je comprends que le client autorise le fournisseur OAuth (Google par exemple) et autorise le serveur de ressources à accéder aux données de profil de l'utilisateur. Ensuite, le client peut envoyer le jeton d'accès au serveur de ressources et récupérer la ressource.

Mais ce qui ne semble pas être couvert dans la documentation est ce qui se passe lorsque l'application cliente demande au serveur de ressources une ressource et lui transmet le jeton d'accès. Tout ce que j'ai lu jusqu'à présent indique que le serveur de ressources répond simplement avec la ressource demandée.

Mais cela semble être un énorme trou, le serveur de ressources doit sûrement valider le jeton d'accès, sinon je pourrais simuler n'importe quelle ancienne demande et transmettre un ancien jeton, volé, faux ou généré de manière aléatoire et il l'accepterait simplement.

Quelqu'un peut-il m'indiquer une explication simple à suivre de OAuth2 parce que jusqu'à présent, celles que j'ai lues sont incomplètes.

drekka
la source

Réponses:

8

Je l'ai trouvé. Enterré dans la spécification. Ils disent que le serveur de ressources doit valider le jeton d'accès avec le serveur d'authentification, mais qu'il est en dehors de la portée du document. Dommage, j'aurais pensé que la validation des jetons était une partie importante.

drekka
la source
1
À propos des parties importantes , il pourrait être utile de lire ce billet de blog pour avoir un aperçu des priorités d'OAuth2.
Lars Viklund
1
Merci pour cela, une lecture intéressante. Mes exigences sont assez simples en ce sens que je veux permettre à une application iOS de s'authentifier avec google, twitter, facebook, etc., transmettre une forme d'autorisation à mon serveur et faire valider mon serveur et permettre l'accès aux ressources. Le problème s'est révélé plus complexe que je ne le pensais en raison de la complexité de comprendre comment cela fonctionne et de ce que je dois faire où.
drekka
Plus précisément, Annexe A: "Pour valider la signature sur la demande, la ressource protégée pourrait être en mesure de soumettre l'identifiant de jeton au point de terminaison d'introspection du serveur d'autorisation pour obtenir les informations clés nécessaires pour ce jeton. Les détails de cette utilisation sont en dehors la portée de cette spécification et sera défini dans une extension [...] ".
JulienD
2

La validation des jetons est généralement gérée de 1 à 2 façons.

1) Le jeton est signé cryptographiquement à l'aide de clés pré-partagées. Cela présente des lacunes évidentes pour une utilisation dans des systèmes distribués et proliférants.

2) Le serveur d'autorisation (AS) fournit un point de terminaison pour la validation des jetons ou l'introspection. Cette méthode a été normalisée dans IETF RFC 7662 en octobre 2015, voir: https://tools.ietf.org/html/rfc7662

Cette question / réponse sur le débordement de pile comprend des exemples de Google et Github: /programming/12296017/how-to-validate-an-oauth-2-0-access-token-for-a-resource-server

Howie Ross
la source
0

vous lisez les spécifications pour savoir comment valider le jeton:

https://tools.ietf.org/html/rfc7662

j'espère que cela vous aide - merci de le marquer s'il répond à votre requête / problème

Chirag
la source
4
Bienvenue dans le génie logiciel. Dans sa forme actuelle, cette réponse ne répond pas à nos critères de qualité . Nous nous attendons à ce que les réponses soient autonomes - les lecteurs ne doivent suivre les liens externes que pour acquérir une compréhension plus approfondie ou pour confirmer les sources et le contenu pertinent doit être cité ici.
Thomas Owens