RBAC-范围或自定义声明

时间:2019-09-01 22:45:10

标签: oauth-2.0 auth0 okta rbac openid-connect

在OIDC规范(https://openid.net/specs/openid-connect-core-1_0.html#ScopeClaims的5.4节中,它说:“与访问令牌相关的范围决定了当用于访问受OAuth 2.0保护的端点时哪些资源将可用。”

在我读到这篇文章时,这似乎很简单,如果您拥有API应该尊重的任何权限,就可以将它们放在访问令牌的“范围”声明内。

但是,Auth0和Okta都将用户权限放入自定义声明中。在Auth0s情况下,它将用户权限放在“权限”声明中,在Oktas情况下,他们将用户权限放在访问令牌的“组”声明中。

由于这两个身份提供者都将权限作为自定义声明,这让我觉得我在阅读规范时错了。是否有人有想法或可以澄清何时将权限放入自定义声明中而不是将权限放入范围声明中?

2 个答案:

答案 0 :(得分:0)

这里的区别是令牌的范围与用户的权限。一些auth0用户会在自定义声明中向用户添加权限,以执行诸如门内容之类的操作。令牌中的作用域明确描述了令牌可以访问的内容。

此文档显示了具有范围的访问令牌的示例: https://auth0.com/docs/api-auth/why-use-access-tokens-to-secure-apis#compare-the-tokens

以下是通过自定义声明(此示例中为id令牌)向令牌添加权限的示例: https://community.auth0.com/t/how-do-i-add-user-permissions-to-id-token/28611

答案 1 :(得分:0)

范围通常是高级权限,例如“读/写”或可以使用令牌的API。声明是您的API识别+授权请求所需要的。并非所有声明都包含在访问令牌中。我在这里写的文章可能会帮助您理解您的选择:https://authguidance.com/2017/10/03/api-tokens-claims

相关问题