【问题标题】:How to get all user scopes in Azure b2c authentication?如何在 Azure b2c 身份验证中获取所有用户范围?
【发布时间】:2019-08-07 19:24:27
【问题描述】:

我试图了解是否有办法在 Azure B2C 中询问用户的所有“范围”而不是特定的?

另一个问题,如果我们请求 scope = x y z 但用户只有 x,它只返回 x 会发生什么?

例如,如果应用无法识别所有用户范围,并希望使用用户令牌访问受范围 x 保护的其他资源

【问题讨论】:

    标签: azure oauth-2.0 azure-active-directory azure-ad-b2c


    【解决方案1】:

    简短的回答 - 不。这将与 OpenID Connect 规范相冲突。如上所述 in the Authorization request scope 是必需参数。与some additional explicitly listed valuesOAuth RFC is even more vague 在授权请求中定义scope

    值得注意的一点是,无论如何,您只能在一个请求中请求属于单个资源的范围。这是对OIDC standard scopes 的补充。因此,您只能为一个 API(即"https://my.api/api/read")请求范围,但不能为多个 API("https://my.api/api/read https://my.other.api2/api/read")请求范围。

    底线 - 不,您必须明确调出您需要的所有范围,并且无法要求最终用户“让我访问您有权访问的所有内容”..

    哦,还有更多,当您在 B2C 租户中配置应用程序时,您可以在应用程序级别定义所需的范围。例如:

    现在所有登录SmartCollabClients 应用程序的用户都将被授予访问SmartCollabApi 应用程序定义和发布的3 个范围的权限。

    【讨论】:

      【解决方案2】:

      我试图了解是否有办法在 Azure B2C 中询问用户的所有“范围”而不是特定的?

      不,目前不可能。您应该明确请求的所有范围。

      另一个问题,如果我们请求 scope = x y z 但用户只有 x,它只返回 x 会发生什么?

      不,如果您请求范围 x、y、z(已与请求的 clientid 关联),B2C 将返回相同的范围,而与用户权限无关

      以下 SO 帖子将为您提供更多详细信息 What use are 'Scopes' in Azure B2C Authentication?

      【讨论】:

        猜你喜欢
        • 2018-09-25
        • 1970-01-01
        • 1970-01-01
        • 2019-06-25
        • 1970-01-01
        • 1970-01-01
        • 2020-08-26
        • 2021-07-12
        • 2016-05-06
        相关资源
        最近更新 更多