gpt4 book ai didi

authentication - 为什么我不应该在 IDP 上下文中使用 IdToken 作为不记名 token ?

转载 作者:行者123 更新时间:2023-12-04 15:18:23 24 4
gpt4 key购买 nike

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

最佳答案

ID token 仅包含有关用户以及用户如何进行身份验证的详细信息。所以它非常适合与用户创建更持久的 cookie session 。和 ID-token 的默认生命周期也很短,比如几分钟。您通常会在建立 session 后丢弃 id-token。您永远不应该将 ID token 传递给其他服务。
访问 token 旨在让您访问 token 适用的 API。
当用户登录时,您要求访问某些范围和用户选择(同意)的范围,然后包含在访问 token 中(作为范围和受众声明)。
从理论上讲,您可以将 ID token 传递给 API,而不是它应该如何工作。
thisthis更多细节:

关于authentication - 为什么我不应该在 IDP 上下文中使用 IdToken 作为不记名 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63901860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com