我们在 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 的范围:
答案 0 :(得分:0)
您已找到解决方案,将其发布为结束线程的答案:
<块引用>管理员必须确认同意是整个问题,之后 确认管理员同意一切按预期工作。
如你所想,当你在租户B中使用多租户应用时,它的所有权限仍然需要得到租户B管理员的同意。
答案 1 :(得分:0)
我找到了解决方案: 租户 B 的 admin 必须确认同意,在 Admin 确认同意后,一切都按预期进行。