OAuth 2 token d'accès vs OpenID Connect id token

bien que j'ai déjà travaillé avec OAuth 2 auparavant, je suis un débutant pour ouvrir ID Connect.

en lisant les tutoriels et les documentations, je suis tombé sur les deux access_token et id_token access_token est la chaîne de caractères aléatoire unique générée selon OAuth 2 et id_token est JSON Web Jeton qui contient des informations comme l'id de l'utilisateur, l'algorithme, l'émetteur et diverses autres informations qui peuvent être utilisées pour la valider. Je ont également vu les fournisseurs D'API qui fournissent à la fois access_token et id_token et autant que je sache, il est pour la compatibilité en arrière.

Ma question est que est-il possible d'utiliser à la fois l'access_token et la id_token pour l'accès aux ressources protégées<!--4 ? Ou est le id_token juste pour fins de vérification et de access_token est utilisé pour accéder à des ressources protégées ?

20
demandé sur ajaybc 2013-10-10 14:52:41

2 réponses

à l'origine, OAuth et OpenId sont conçus pour des buts différents: OpenId pour l'authentification et OAuth pour l'autorisation. OpenId Connect est une unification des deux et sert pour les deux, mais ne change pas leurs fonctionnalités originales. En gardant cela à l'esprit, vous devriez être capable de trouver par vous-même. ; -)

l'id_token est utilisé pour identifier l'utilisateur authentifié, par exemple pour SSO. L'access_token doit être utilisé pour prouver les droits d'accès aux ressources protégées, par exemple pour l'userinfo endpoint dans OpenId Connect.

32
répondu Zólyomi István 2013-10-18 07:20:34

access_token est utile pour appeler certains API dans Auth0 (e.g. /userinfo) ou une API que vous définissez dans Auth0.

id_token est un JWT et représente l'utilisateur connecté. Il est souvent utilisé par votre application.

est-il possible d'utiliser à la fois l'access_token et la id_token pour l'accès aux ressources protégées ?

Pas complètement, tout d'abord, vous devez utiliser id_token pour vous connecter,

la seconde, vous get a accessstoken,

finalement, utilisez accessToken pour accéder aux données.

2
répondu tenki 2018-07-22 07:46:40