首页 > 解决方案 > Microsoft Graph 更新用户相关权限不起作用

问题描述

我正在尝试拨打更新用户电话。我已经为我的应用程序提供了委派的 User.ReadWrite 权限,并且我已经获得了一个令牌作为要更新的用户。这是我正在调用 PATCH 的 URL:

https://graph.microsoft.com/v1.0/users/user@domain.com

无论我尝试编辑什么属性,我都会收到以下回复:

{
    "error": {
        "code": "Authorization_RequestDenied",
        "message": "Insufficient privileges to complete the operation.",
        "innerError": {
            "date": "2020-11-11T11:41:26",
            "request-id": REDACTED,
            "client-request-id": REDACTED
        }
    }
}

这是我的示例正文:

{
  "officeLocation": "city-value"
}

这可能与我的权限无关,而是我的租户中的某些设置的结果吗?

标签: permissionsazure-active-directorymicrosoft-graph-api

解决方案


我正在使用“client_credential”授权类型来获取访问令牌而不是登录用户,并且在今天更新用户帐户时,我还遇到了“权限不足,无法完成操作”。

这是我现在发现并解决的问题,

我使用的应用程序已同意以下权限。

在此处输入图像描述

而且我注意到我尝试更新的用户具有此应用程序没有的一些“管理角色”。

在此处输入图像描述

然后我转到“Azure ActiveDirectory”>“角色和管理员”,找到角色并单击它。然后单击“添加分配”,并选择您用于流程的应用程序。

在此处输入图像描述

成功分配角色后,您将看到应用程序已添加到此角色中,类型为“ServicePrincipal”。

在此处输入图像描述

之后,等待大约 2 分钟,我可以重做 PATCH 调用并更新用户。

在此处输入图像描述

==================================================== =====

即使这解决了我的问题,但我不知道这是否是正确的方法。因为遵循此解决方案,将存在一个问题:

  1. 如果此用户有多个角色,那么您必须将此应用程序添加到每个角色或直接将应用程序分配给“全局管理员”。

我没有一个好的/优雅的解决方案。如果您知道任何事情或您有其他解决方案,请告诉我。


推荐阅读