Permissions Microsoft Graph Update用户相关权限不起作用

Permissions Microsoft Graph Update用户相关权限不起作用,permissions,azure-active-directory,microsoft-graph-api,Permissions,Azure Active Directory,Microsoft Graph Api,我正在尝试进行更新用户呼叫。我已为我的应用程序提供委派的User.ReadWrite权限,并且我已获得一个令牌作为要更新的用户。以下是我正在进行修补程序调用的URL: https://graph.microsoft.com/v1.0/users/user@domain.com 无论我尝试编辑什么属性,我都会得到以下响应: { "error": { "code": "Authorization_RequestDenied&

我正在尝试进行更新用户呼叫。我已为我的应用程序提供委派的User.ReadWrite权限,并且我已获得一个令牌作为要更新的用户。以下是我正在进行修补程序调用的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"
}

这可能与我的权限无关,而是由于我的租户中的某些设置造成的吗?

请尝试将分配给已登录的用户或服务主体。

我尝试重现您的问题:

如果您只有委派的User.ReadWrite权限是不够的,您需要授予应用程序User.ReadWrite.All委派权限。(不要忘记授予此权限的管理员同意

PS:您需要知道,当您尝试更新不同的属性时,您可能需要更高的权限。例如,当您需要更新passwordProfile属性时,您需要以下权限:Directory.AccessAsUser.All。请参阅:。

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

以下是我目前发现并解决的问题

我使用的应用程序具有以下许可

我注意到我试图更新的用户有一些本应用程序没有的“管理角色”

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

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

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

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

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

  • 如果此用户具有多个角色,则必须将此应用程序添加到每个角色,或直接将应用程序分配给“全局管理员”

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

    添加此权限没有任何区别。通过OAuth2.0检索的令牌与不具有管理角色的帐户关联。我们正在寻找用户能够更新自己的密码,而不是任何其他人的。因此,如果需要管理员角色,恐怕更新用户功能对我们来说是个失败。@RedXXVI不幸的是,用户不能更改自己的密码,只有管理员才能更改自己或用户的密码。这是唯一的办法!这是使更新用户API调用起作用的唯一方法吗?是否让登录用户担任管理角色?是否无法允许没有管理角色的用户通过此调用更新其记录上的属性?