如何在OAuth 2中应用粒度/内容权限?

时间:2015-01-27 22:08:23

标签: security oauth-2.0 authorization

我们知道如何通过身份令牌通过访问令牌和用户信息授予访问权限。

我们知道我们可以将角色声明添加到身份令牌中。

但是在每个内容的权限访问中,我不知道如何使用声明和令牌。

考虑用户A拥有身份1的所有者日历,并且他允许用户B阅读它。

用户B通过SPA访问REST服务的范围是: Calendar.Read Calendar.Write Calendar.List

但是在日历(id = 1)的情况下,我们只需要Calendar.Read范围。

我们如何在OAuth中处理此案例?

有任何模式吗?

此案例还有其他协议吗?

1 个答案:

答案 0 :(得分:1)

OAuth 2.0当然也适合处理该用例。您有两种选择:

  1. 为每个日历指定范围,例如Calendar.1.Read(请记住,范围 内容不是由OAuth 2.0定义的,可以是动态的)
  2. 使用一种需要的不透明承载访问令牌 授权服务器上的验证/内省并传递资源 除了访问令牌之外,该呼叫上的标识符,例如, Calendar.1 是与访问令牌关联的资源标识符和范围 是Calendar.Read