【问题标题】:RBAC - scopes or custom claimRBAC - 范围或自定义声明
【发布时间】:2020-01-05 01:56:17
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    这里的区别在于令牌的范围用户的权限。一些 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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2019-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-14
        • 2016-10-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多