Microsoft graph api 尝试在ASP.NET MVC中使用users/id/assignlicense时,Microsoft Graph Api返回禁止响应

Microsoft graph api 尝试在ASP.NET MVC中使用users/id/assignlicense时,Microsoft Graph Api返回禁止响应,microsoft-graph-api,Microsoft Graph Api,所以,基本上我有一个多租户应用程序,它可以对Graph API进行大量调用。问题在于调用将许可证分配给用户-POST/users/{id | userPrincipalName}/assignLicense 在Azure应用程序注册门户中的权限部分,我已授予Azure AD和Graph API下的所有委派权限。 然后,我通过如下链接使用管理员同意流为组织中的所有用户对此应用程序进行了全局管理员同意:- 管理员同意已成功,这意味着此目录中的所有用户都已获得授权 现在,当我通过全局管理员登录到我

所以,基本上我有一个多租户应用程序,它可以对Graph API进行大量调用。问题在于调用将许可证分配给用户-POST/users/{id | userPrincipalName}/assignLicense

在Azure应用程序注册门户中的权限部分,我已授予Azure AD和Graph API下的所有委派权限。

然后,我通过如下链接使用管理员同意流为组织中的所有用户对此应用程序进行了全局管理员同意:-

管理员同意已成功,这意味着此目录中的所有用户都已获得授权

现在,当我通过全局管理员登录到我的多租户应用程序时,调用assignLicense endpoint是成功的,这意味着我的代码运行良好

然而,当一个非全局管理员登录到应用程序时,他也可以登录(由于上面给出的同意),但是当我调用graph api来分配许可证时,我得到了403禁止的错误

我无法理解我应该做些什么来消除这个错误

这似乎是一个有效的权限问题。从

对于委派权限,您的应用程序的有效权限将 是授权权限的最低特权交叉点 应用程序已被授予(通过同意)和当前用户的权限 已登录用户。您的应用程序的权限不能超过 已登录用户。在组织中,已登录用户的权限 用户可以由策略或一个或多个应用程序的成员资格确定 管理员角色。有关管理员角色的详细信息, 看

例如,假设您的应用程序已被授予User.ReadWrite.All权限 授权权限。此权限名义上授予您的应用 读取和更新网络中每个用户的配置文件的权限 组织。如果登录用户是全局管理员,则 应用程序将能够更新该应用程序中每个用户的配置文件 组织。但是,如果登录用户不在 管理员角色,您的应用程序将只能更新配置文件 已登录用户的。它将无法更新的配置文件 组织中的其他用户,因为该用户 代表的权限不具有这些特权