Flow就像这样:
问题: 不应该刷新令牌刷新资源ID吗?这是不是oauth rfc(无法找到关于这个特殊情况的任何内容)?
我们当然可以撤销oauth应用程序的所有令牌,但这需要我们所有用户再次登录我们想要避免的。
我不确定它是否与spring spring security相关,或者更确切地说是oAuth本身。 ç
答案 0 :(得分:1)
此答案假设您的资源标识符与OAuth2描述的作用域相同,而不是说明其用途似乎非常相似 - 限制访问令牌的范围。
当发出访问令牌刷新请求时,规范声明您可以包含scope
参数,但是:
第3.3节描述的访问请求的范围。 请求的范围绝不能包括资源所有者最初未授予的任何范围,如果省略则视为等于资源所有者最初授予的范围。
此外,作为响应的一部分,可以发出新的刷新令牌,但是:
授权服务器可以发出新的刷新令牌(...)如果发出新的刷新令牌,则刷新令牌范围必须与请求中客户端包含的刷新令牌的范围相同。 /强>
(重点是我的,section 6. of the specification)
这意味着,根据规范,自动向访问令牌添加新范围/资源是不合规的。但是,您不需要注销用户,您只需要请求资源所有者同意新范围。
同样,这是规范陈述的范围,它似乎与您的使用场景相匹配。但是,在某些情况下,这不会严格适用或最终没有真正的影响。如果单个组织控制授权服务器和客户端应用程序,它可以决定某个应用程序享受某些时间称为管理同意的内容,基本上资源所有者未被要求明确同意,因为这是一个受信任的应用程序。在这些情况下,您可以在不进行任何类型的用户干预的情况下增加范围/资源。