【发布时间】:2018-01-09 10:57:55
【问题描述】:
将资源级权限编码为 JWT access_token 的规范方法是什么?或者换句话说,您如何最好地编码对他人资源的访问?
是这样的吗:
{
scopes: {
me: ['user', 'repo'], // My user
repo123: ['repo'], // Someone else's repo
org541: ['admin', 'repo'], // My org
org206: ['repo:read'] // Someone else's org
}
}
或者像这样,带有命名空间标签(在本例中为<resource>|<scope>:
{
scopes: ['me|user', 'me|repo', 'repo123|repo', 'org541|admin'... etc]
}
还是别的什么?
这同样适用于“角色”或“会员资格”或类似标签(我意识到我已经混合了上面的示例) - 核心问题仍然是如何(最好)区分这些标签 per资源在单个 JWT access_token?
【问题讨论】:
-
我是否理解正确,您有一些带有访问控制列表 (ACL) 的对象。您想创建一个 JWT 来反映这些 ACL 在令牌发行时的状态吗?你为什么要这样做?
-
@JánHalaša 是的,大致正确。其目的是封装用户的权限,不仅包括该用户拥有的资源,还包括他们已被授予访问权限的资源(例如,我邀请您编辑我的存储库)。
标签: oauth-2.0 token jwt access-token