permissions - 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"
}
这可能与我的权限无关,而是我的租户中的某些设置的结果吗?
解决方案
我正在使用“client_credential”授权类型来获取访问令牌而不是登录用户,并且在今天更新用户帐户时,我还遇到了“权限不足,无法完成操作”。
这是我现在发现并解决的问题,
我使用的应用程序已同意以下权限。
而且我注意到我尝试更新的用户具有此应用程序没有的一些“管理角色”。
然后我转到“Azure ActiveDirectory”>“角色和管理员”,找到角色并单击它。然后单击“添加分配”,并选择您用于流程的应用程序。
成功分配角色后,您将看到应用程序已添加到此角色中,类型为“ServicePrincipal”。
之后,等待大约 2 分钟,我可以重做 PATCH 调用并更新用户。
==================================================== =====
即使这解决了我的问题,但我不知道这是否是正确的方法。因为遵循此解决方案,将存在一个问题:
- 如果此用户有多个角色,那么您必须将此应用程序添加到每个角色或直接将应用程序分配给“全局管理员”。
我没有一个好的/优雅的解决方案。如果您知道任何事情或您有其他解决方案,请告诉我。
推荐阅读
- android - 我在安装flutter时遇到问题,我真的需要解决它
- arrays - Vue 的数据项数组仅在硬编码时在过滤器中工作,而不是在包含为(n echo'ed PHP)数组时
- c - 结构初始化和分配与临时创建和分配——它们是否相同?
- c# - 使用 C# 将字符串转换为单词数组
- reporting-services - 一个报表条件页眉上的两个 Tablix 控件
- ibm-cloud - UCD:使用 REST API 获取失败的组件?
- c - 凯撒密码 C 程序不打印
- python - 如何避免自动丢弃
在 Pandas 中聚合数据框时的行? - android - Android - 如何获得另一个视图后面的视图?
- java - 我该怎么做 x+x^3+x^5+x^7+x^9?