我正在编写一个后端应用程序,通过调用Microsoft Graph来更新Azure AD中的用户。该应用程序已授予权限Directory.ReadWrite.All
和User.ReadWrite.all
。
当我发送补丁请求以更新特定用户的businessPhones
时,如果businessPhones参数是空集合,即204
,则会返回成功的响应代码{"businessPhones":[]}
。
如果参数不为空,例如{"businessPhones":["+86 (321) 456789"]}
,返回响应代码403
,并显示消息"没有足够的权限来完成操作"。
我试图为另一个用户进行修补,没有空的和非空的businessPhones参数的问题。
我发现此SO question但Directory.AccessAsUser.All
是委托权限,不适用于我的申请。
任何帮助都将不胜感激。
答案 0 :(得分:0)
感谢您报告此约翰尼。我们去调查一下。通常,通过委派权限,授权基于已授予应用和已登录用户具有的权限(基于用户角色)的权限的交集。这在此处描述:https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference#delegated-permissions-application-permissions-and-effective-permissions。
登录用户的角色是什么?如果他们是全局管理员,他们应该能够更改任何其他用户的信息。如果他们是受限管理员(如用户帐户管理员),他们只能更改常规用户的用户个人资料信息(否则这将是一个特权提升。普通用户只能更改自己的photo
和{{ 1}}数字。
基于评论更新:如果应用使用的是应用权限,则应用可以更新大多数属性。但是,你看到的行为很奇怪。我们需要调查 - 我将回到主题。这可能是一个错误。
更新8/26 :这确实是一个错误。该修复程序现已部署。
希望这有帮助,