【发布时间】:2017-01-20 19:42:24
【问题描述】:
在我正在构建的应用程序中,我们使用 JWT 令牌作为 OAuth Bearer 令牌。
假设我们有一个名为things 的资源集合,可通过thing ID 寻址,例如。 things/1、things/44等
目前,每当有人请求范围为things 的访问令牌时,我们都会列出用户对每个things 拥有的所有权利列表:
{
"sub": "Romeo",
"scope": [ "things" ],
"things": {
"1": [ "read", "write", "delete" ],
"44": [ "read", "write"],
}
// ...
}
这很好用,但是当用户有很多 things 时,事情就会变糟。因为所有权限都编码在 JWT 令牌中,所以对于用户拥有的每个thing,令牌都会变得更大。
这是不可扩展的,我需要为此找到解决方案。我可以一次将令牌范围限定为属于单个thing,但随后管理的客户端的令牌管理就变成了地狱(我需要一个可以列出令牌并需要保留的令牌每个thing 一个令牌)。
我无法摆脱 Bearer 令牌,因为我们的某些组件由于多种原因无法与令牌发行者通信。
有解决这个问题的标准方法吗?我正在考虑使具有things 范围的令牌可互换,因此我可以将其中仅包含things 一部分的受限令牌交换为其中包含things 其他部分的其他令牌。
【问题讨论】:
-
您找到解决此问题的方法了吗?
标签: oauth-2.0 jwt bearer-token