gpt4 book ai didi

security - OAuth2 - 刷新 token 不必要的复杂性

转载 作者:行者123 更新时间:2023-12-05 00:49:58 24 4
gpt4 key购买 nike

我不明白,如果端点与 RFC6749 中多次描述的相同(授权)服务器,为什么 oauth2 中有刷新/访问 token 概念.

当资源所有者在不共享凭证的情况下授权任何第三方组件时,第一个授权步骤是 oauth2 的基本思想。使用授权 token 生成访问和刷新 token 只是另一个级别的授权间接恕我直言,但不会增加安全性。

由于授权服务器相同,因此访问 token 与授权 token 和刷新 token 一样敏感,因此我称其为不必要的复杂性。

对我来说唯一有意义的解释是,如果有人窃取了访问 token ,则客户端能够请求新的访问 token 。但是有人是怎么炼成的呢?如果是中间人,那么当客户端请求一个新 token 时,他也有刷新 token 。

我的问题是:为什么授权服务器不只是返回一个可以被客户端和资源所有者撤销的访问 token ?刷新/访问 token 策略有什么好处?

感谢您的解释。

最佳答案

刷新 token 是尝试通过服务器负载解决细粒度访问检查。当资源所有者在调用之间缓存访问 token 以便它可以在不去授权服务器的情况下授权后续调用时,就会减少服务器负载。这大大减少了 authz 服务器上的负载。但这引入了一个问题,即 token 权限的更改,特别是 token 可用于什么的减少,资源所有者永远不会看到它正在缓存访问 token 。

现在,行为良好的资源所有者会知道,在与授权服务器重新确认之前,它应该只将 token 缓存一小段时间。但是你不能指望资源所有者表现良好。因此,授权服务器对访问 token 设置了相对较短的到期时间。这会强制客户端使用刷新 token 来获取新的访问 token 。然后资源所有者将验证新的访问 token 并获得 token 的当前权限。

请务必注意,无需用户交互即可刷新访问 token 。如果重新验证对用户交互模型来说不是问题,则不需要刷新 token ,用户只需重新验证即可。但这有点糟糕。

这意味着,如果用户要从其 OAuth 帐户中删除权限,资源所有者将继续使用旧权限集运行,直到访问 token 过期。然后将获得新的访问 token ,新的权限集将生效。

关于security - OAuth2 - 刷新 token 不必要的复杂性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32655788/

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