【问题标题】:AccessDenied: Either scp or roles claim need to be present in the token for multi-tenat ApplicationAccessDenied:多租户应用程序的令牌中需要存在 scp 或角色声明
【发布时间】:2021-05-08 22:49:25
【问题描述】:

我们在 Azure AD 中有一个多租户注册的应用程序,我们称之为租户 A,我们正在尝试通过图形 API 在没有用户的情况下访问资源。 使用以下详细信息,如果我们尝试使用资源,例如在主租户(租户 A)上创建文件或文件夹,我们将成功获得令牌。 但是,如果我们为另一个租户运行相同的代码,例如租户 B(它是租户 A 的租户之一),我们会收到错误消息:“AccessDenied:令牌中需要存在 scp 或角色声明。” 事实上,令牌中没有定义任何角色。

我想知道我在这里做错了什么?我是否也需要为租户 B 设置权限/角色?

网址:https://login.microsoftonline.com//oauth2/v2.0/token 范围:https://graph.microsoft.com/.default grant_type:client_credentials 客户 ID: client_secret:

"{ “错误”: { "code": "拒绝访问", "message": "令牌中需要有 scp 或角色声明。", “内部错误”:{ “日期”:“2021-02-04T14:28:13”, “请求 ID”:“ca4565f7-aa56-4b00-9f46-09884ad39ff6”, “客户端请求 ID”:“ca456ufo-ab5m-4b99-9f46-09pp4ad39ff6” } } }" Tennat A 的范围:

【问题讨论】:

  • 您能否发布一个答案以便存档此问题?

标签: azure azure-active-directory microsoft-graph-api


【解决方案1】:

您已经找到解决方案,将其作为答案发布以结束线程:

管理员必须确认同意,这是整个问题,之后 确认管理员的同意,所有工作都按预期进行。

正如你想象的那样,当你在租户 B 中使用多租户应用程序时,它仍然需要获得租户 B 的管理员的同意才能获得所有权限。

【讨论】:

    【解决方案2】:

    我找到了解决方案: 租户 B 的管理员必须确认同意,在管理员确认同意后,所有工作都按预期进行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-13
      • 2017-03-02
      • 2019-09-13
      • 2014-02-10
      相关资源
      最近更新 更多