【问题标题】:Microsoft Graph Api returns forbidden response when trying to use users/id/assignlicense in ASP.NET MVC尝试在 ASP.NET MVC 中使用 users/id/assignlicense 时,Microsoft Graph Api 返回禁止响应
【发布时间】:2017-06-22 02:49:23
【问题描述】:

所以,基本上我有一个多租户应用程序,它会多次调用 Graph API。问题在于向用户分配许可证的调用 - POST /users/{id |用户主体名称}/assignLicense。

在 Azure App 注册门户中的权限部分,我已授予 Azure AD 和 Graph API 下的所有委派权限。 Permissions Assigned screenshot.

然后,我通过以下链接使用管理员同意流程为组织中的所有用户对该应用程序进行了全局管理员同意:- https://login.microsoftonline.com/common/oauth2/authorize?client_id=ffa835f3-417f-415c-b8f5-6f8833f93901&response_type=code&redirect_uri=http%3a%2f%2flocalhost%3a8910%2f&nonce=1234&resource=https://graph.microsoft.com&prompt=admin_consent

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

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

但是,当非全局管理员登录应用程序时,他也可以登录(由于上面给出的同意),但是当我调用图形 api 到 AssignLicense 时,我收到 403 Forbidden 错误。

我不明白我应该怎么做才能摆脱这个错误。

【问题讨论】:

    标签: microsoft-graph-api


    【解决方案1】:

    这似乎是一个有效权限问题。来自https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference

    对于 Delegated 权限,您应用的有效权限将 是 Delegated 权限的最小特权交集 应用程序已被授予(通过同意)和当前的权限 登录用户。您的应用程序永远不能拥有比 登录用户。在组织内,登录的权限 用户可能由政策或一个或多个成员决定 管理员角色。有关管理员角色的更多信息, 见Assigning administrator roles in Azure Active Directory

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多