用户可以在oauth 2.0中一次拥有两个有效令牌,用于授权代码授予类型吗?

时间:2017-04-19 13:29:25

标签: security oauth oauth-2.0 google-oauth

*我有一个与oauth令牌相关的简单问题,所以我的要求是用户可以有多个范围说A和B并且他已经为它生成了令牌但后来他需要范围A和B两者并且他之前的令牌有效,那么在那种情况下

  1. 我们应该更新现有令牌的范围吗?
  2. 我们应该为新范围生成新令牌吗?
  3. 或者应该为单个用户生成多个令牌?

2 个答案:

答案 0 :(得分:3)

如果要更新现有令牌的范围,并且授权服务器为其提供了一种机制,请执行此操作。事实上,某个授权服务器实现提供Web API来更新现有访问令牌的范围(/auth/token/update API,/auth/client/authorization/update API)。

访问令牌是否可修改取决于每个授权服务器实现。例如,如果访问令牌实现的类型是“自包含”(例如像JWT),则访问令牌不可修改。另一方面,如果类型是“random string”(在这种情况下,实际数据存储在授权服务器后面的DB中),则访问令牌可以是可修改的。有关详细信息,请参阅Full-Scratch Implementor of OAuth and OpenID Connect Talks About Findings中的“7.1。访问令牌表示”

某些授权服务器实现为用户和客户端应用程序的一个组合发出多个访问令牌,而其他实现仅为该组合发出一个访问令牌。某个授权服务器实现提供了一个配置标志,使您可以选择以下任一行为。另请参阅this answer

enter image description here

您应采取哪种方法取决于您的使用案例。寻找最适合您用例的授权服务器实现。

答案 1 :(得分:2)

OAuth2访问令牌无法修改,因此您应该获得具有不同范围集的新访问令牌。为应用程序而不是用户生成访问令牌,但是,可以存在由单个用户授权的多个访问令牌 - 用户授权应用程序代表他执行某些操作(范围)。