Id 令牌与访问令牌

Posted

技术标签:

【中文标题】Id 令牌与访问令牌【英文标题】:Id tokens vs access tokens 【发布时间】:2019-11-11 01:38:40 【问题描述】:

Auth0 声称我应该始终使用访问令牌来保护 API。

如果我可以控制我的客户端应用程序和我的后端 API - 为什么验证 id 令牌作为我对我的 API 的授权是错误的?使用非对称密钥签名的 ID 令牌似乎是安全的 - 我不明白这比访问令牌更不安全。

【问题讨论】:

OP 的链接是 404 的。更新链接here 【参考方案1】:

与其说是安全,不如说是关于可用性和语义。 id_token 应该代表一个身份验证事件:它是短暂的,并且(主要)设计为仅供一次性使用,这些属性并不能使其成为 API 使用的良好令牌。

【讨论】:

我完全理解你关于语义的观点,但我不太明白为什么首先做出这些区别。 一个好的访问令牌也应该是短暂的和刷新的,不是吗? 不是一次性使用,应该更长寿;它确实可以刷新,使用id_token 更难(因为原则上这不是一个自主操作:它需要用户在场) 一个 id_token 用于想要获取用户信息的客户端。访问令牌用于资源服务器,对应于资源所有者给予客户端的授权。也就是说,每个token的目的是完全不同的

以上是关于Id 令牌与访问令牌的主要内容,如果未能解决你的问题,请参考以下文章

OAuth 客户端凭据重新颁发访问令牌与刷新令牌

如何缓存来自 cognito 的 ID 令牌,以便后续访问 API 网关?

解释 Open ID 连接中的离线令牌验证与在线令牌验证?优势、局限和权衡

ID令牌和访问令牌有啥区别,以及如何使用JWT实现它们?

我们可以使用 ID 令牌作为访问令牌吗?

验证 Azure 广告访问令牌时签名无效,但 id 令牌有效