olu*_*pan 7 authentication jwt openid-connect amazon-cognito auth0
我正在使用 IDP 平台(这里是 AWS Cognito,但可能是 Auth0、OKTA 或 Keycloak),我想知道为什么我不鼓励使用它ID Token作为授权令牌。
更具体地说,我不会使用将用户授权委托给第三方应用程序的资源服务器。我的 IDP 将允许我在不同的应用程序上 SSO 所有用户。这里没有授予的范围,只有每个服务将用于授予或拒绝对资源(如电子邮件、用户 ID 或角色)的访问的身份验证声明。
我知道我可以为我的应用程序提供id token,然后为我的用户创建一些会话。id token鉴于可以在每个应用程序的后端检查其签名,为什么我不应该将其本身用作无状态会话令牌?
如果我应该使用access token-id token我可以用角色替换范围吗?或者我应该如何理解非委托上下文中的范围(“用户自己使用应用程序,而不给予许可”与“用户将所有范围给予 SPA 前端,它本身就是一个应用程序”)
顺便说一句,我正在通过前端的代码 PKCE 流恢复令牌。
ID 令牌仅包含有关用户以及用户如何进行身份验证的详细信息。因此它非常适合与用户创建更持久的 cookie 会话。ID 令牌的默认生命周期也很短,例如几分钟。您通常会在建立会话后丢弃 id-token。您永远不应该将 ID 令牌传递给其他服务。
访问令牌旨在让您能够访问该令牌所针对的 API。
当用户登录时,您请求访问某些范围,并且用户选择(同意)的范围,然后包含在访问令牌中(作为范围和受众声明)。
理论上,您可以将 ID 令牌传递给 API,而不是它应该如何工作。有关更多详细信息,请参阅此和此:
| 归档时间: |
|
| 查看次数: |
2396 次 |
| 最近记录: |