我正在使用具有已定义权限Application.ReadWrite.All
和User.ReadWrite.All
(都包含在Bearer令牌中)的客户端应用程序(客户端凭据授予),将用户的accountEnabled更改为false,例如:
{
"accountEnabled": false,
"city": "C234",
"country": "AFG",
"displayName": "Steve Rogers",
"givenName": "Steve",
"jobTitle": "Azure",
"mailNickname": "steve",
"postalCode": "Z345",
"streetAddress": "S123",
"surname": "Rogers",
"userPrincipalName": "steve@***.onmicrosoft.com",
"id": "aec...278",
"mobilePhone": null
}
但是所有请求都以403结尾
{
"error": {
"code": "Authorization_RequestDenied",
"message": "Insufficient privileges to complete the operation.",
"innerError": {
"request-id": "e7a...e42",
"date": "2019-04-10T08:21:12"
}
}
}
文档不包含任何限制或其他权限要求。这是Graph API中的错误吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
否必须强制授予在Azure门户上访问此API的权限。
确保已在调用API的门户上设置了必需的权限访问权限。此外,用户在门户网站中不得具有任何目录角色。
如果您是AAD中的管理员,则可以授予以下权限: 单位中的用户通过单击“授予权限”按钮。
然后,您可以使用代码(客户端凭据流来获取
令牌)并查询用户信息。如果您检查索赔
由天蓝色广告发布的访问令牌,您可以找到Directory.Read.All
角色声明权限
在给定的引用中,相同的线程在此处回答,您可以引用here。
注意对于
Client Credentials
代码示例,您可以检查here
如果您还有任何疑问,请随时在评论中提问。谢谢。
答案 2 :(得分:0)
这似乎是不合理的,但实际上我可以重现您的问题,我想您要更新的用户在您的租户中具有目录角色。如果是这样,只需删除他的目录角色,即可正常工作。 (应该有一些延迟,您可能需要等待几分钟)。
答案 3 :(得分:0)
谢谢大家,我能够找到根本原因-您无法以管理员身份禁用用户。我很不幸,选择了几位用户,所有这些用户均为管理员角色。 https://docs.microsoft.com/en-us/graph/permissions-reference#remarks-2