是否可以“缩小” OAuth中的范围?范围缩小应由客户发起。
含义:使用“刷新令牌”请求一个新的访问令牌,但是新令牌的作用域比“原始”令牌的作用域小吗?
用例:我正在开发一个客户端应用程序,该应用程序通过OAuth与另一方( A )对用户进行身份验证。现在,我想授予另一方( B )访问某些范围的权限,但比我要少。
答案 0 :(得分:0)
不幸的是,没有标准的方法可以做您想要的事情,但是即使有,您也经常无法获得新的访问令牌而不破坏旧的访问令牌。
访问令牌是每个客户端的。过期后,您可以使用刷新令牌来获取新的访问令牌,但是许多系统的实现方式是,刷新令牌只能使用一次,并且原始访问令牌立即(或迅速)过期。
如果您控制服务器,则绝对有可能将其实现为新的自定义授予类型,实际上是OAuth2的扩展。
答案 1 :(得分:0)
根据https://tools.ietf.org/html/rfc6749#section-6,只要您请求的范围是原始范围的子集,并且刷新令牌仍然有效,就应该能够在刷新请求上添加范围字段。
请注意,精简范围仅适用于访问令牌,因此,如果您将长期刷新的令牌泄漏给第三方,则他们可以获取它拥有的所有范围。