问题描述
我正在使用IDP平台(此处为AWS Cognito,但可以是Auth0,OKTA或Keycloak),我想知道为什么不鼓励使用ID Token
作为授权令牌。
更具体地说,我将不会使用具有从用户到第三方应用程序的授权委派的资源服务器。我的IDP只允许我对不同应用程序上的所有用户进行SSO。这里没有授予权限的范围,只有每个服务将用于授予或拒绝对资源(例如电子邮件,用户ID或角色)的访问的身份验证声明。
我知道我可以向我的应用提供id token
,然后为我的用户创建一些会话。考虑到可以在每个应用程序的后端检查其签名,为什么不应该将id token
本身用作无状态会话令牌?
如果我应该在access token
上使用id token
-我可以用角色替换范围吗?或者我应该如何理解非授权上下文中的作用域(“用户自己使用应用程序,不授予许可”与“用户将所有作用域提供给本身就是应用程序的SPA前端” )
顺便说一句,我正在通过前端的代码PKCE流恢复令牌。