我正在实现一个支持刷新令牌的OAuth2服务器,但是,有些事情我无法完全理解。
当用户通过refresh_token
grant_type
请求新的访问令牌并且他/她请求的范围(5 个范围中的 3 个(小于原始访问令牌的范围时。刷新令牌应具有原始范围,还是应刷新令牌具有请求的新范围?
-
如果刷新令牌请求了新作用域,这是否意味着,如果他们继续请求较小的作用域,它们最终将超出作用域?
-
刷新令牌是否应保留原始范围?这意味着返回的访问令牌对于刷新令牌中存储的内容具有不同的范围,并且下一个获取新访问令牌的请求可能会导致比当前访问令牌更多的范围。
有人可以在这个问题上启发我吗?
我已经阅读了 RFC 文档,其中有一点指出
如果颁发了新的刷新令牌,则刷新令牌范围必须为 与客户端在 请求。
对于刷新令牌授予:
- 基本行为是在响应中仅接收新的访问令牌
- 然后多次重复使用原始刷新令牌。
某些授权服务器支持刷新令牌轮换,并且还可能:
- 颁发新的"滚动"刷新令牌
- 这绑定到原始范围和会话时间
至少这是理论上的,尽管您需要测试特定的授权服务器。来自Microsoft,AWS和其他公司的供应商支持差异很大。