2 votes

Objet du jeton d'identification

Lorsqu'un RP reçoit des jetons (jeton d'identification/d'accès/d'actualisation) d'un PO et qu'il valide le jeton d'identification, doit-il stocker le jeton d'identification dans la session du propriétaire de la ressource ?

Si oui, à quelle fin le jeton d'identification est-il utilisé ?

Je pense que le jeton d'accès et de rafraîchissement devrait être stocké pour la raison suivante, par exemple :

  • Jeton d'accès : Utilisé pour obtenir des informations sur l'utilisateur à partir du point de terminaison Userinfo.
  • Jeton de rafraîchissement : Permet d'obtenir un nouveau jeton d'accès après l'expiration du jeton d'accès. expiré.

3voto

John Hanley Points 11212

La réponse dépend du fournisseur d'identité (Google, Auth0, IBM, Twitter, etc.).

Dans OAuth 2.0, deux jetons sont renvoyés : le jeton d'accès et, éventuellement, le jeton de rafraîchissement.

Le jeton d'accès est utilisé pour autoriser l'accès. Cela peut vous permettre ou non d'accéder aux informations d'identité à partir d'un point de terminaison userinfo. Le jeton d'identité contient ces informations. Un jeton d'accès peut être soit un jeton opaque, ce qui signifie qu'il ne contient aucune information que vous puissiez décoder, soit un JWT signé. La quantité et le type d'informations sont propres au fournisseur d'identité. Les jetons d'accès ont une durée de vie courte et expirent, généralement au bout de 3600 secondes. Il n'est pas nécessaire de stocker le jeton d'accès, sauf pour la mise en cache locale, car le jeton n'a plus aucune valeur après l'expiration.

Le jeton d'actualisation est utilisé pour créer de nouveaux jetons d'accès. Associé à l'identifiant et au secret du client OAuth 2.0, vous pouvez créer des jetons d'accès jusqu'à ce que le jeton d'actualisation expire ou soit invalidé.

OIDC (OpenID Connect) ajoute l'identité à OAuth 2.0. OIDC fournit un jeton d'identité qui fournit des informations sur l'utilisateur demandées par les champs d'application d'OAuth et approuvées par l'utilisateur qui possède l'identité. La plupart des fournisseurs d'identité implémentent OIDC avec leur implémentation d'OAuth. Les jetons d'identité expirent également et peuvent être révoqués.

Dans Google Cloud, vous pouvez utiliser le jeton d'identité pour fournir un accès basé sur l'identité. Vous attribuez l'identité (adresse électronique) avec des rôles au service (une instance de Compute Engine ou un objet de stockage dans le nuage). Si l'en-tête HTTP "Authorization : Bearer " est présent, valide et correspond à l'adresse électronique, l'accès au service est accordé en fonction des rôles attribués à l'identité.

Le stockage des jetons OAuth dans la session web est une mauvaise pratique de sécurité, à moins qu'ils ne soient cryptés de manière unique pour chaque session. Une meilleure pratique consiste à stocker les jetons OAuth dans une base de données et à les rechercher en cas de besoin à l'aide d'un identifiant opaque stocké dans la session web.

Tous les fournisseurs d'identité ne prennent pas en charge les jetons de rafraîchissement pour tous les types de subventions OAuth. Il s'agit d'un accès "hors ligne" qui peut être refusé, ce qui signifie qu'une fois le jeton d'accès expiré, l'utilisateur devra à nouveau autoriser votre application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X