更改accountEnabled throws 403 Authorization_RequestDenied

问题描述 投票:0回答:4

我正在使用具有已定义权限Application.ReadWrite.AllUser.ReadWrite.All的客户端应用程序(客户端凭据授权)(两者都包含在承载令牌中)将userEnabled更改为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中的错误吗?

azure azure-active-directory microsoft-graph
4个回答
0
投票

在我这边,它的工作原理。以下是我的流程:

  1. 使用客户端凭证获取持票人令牌:enter image description here

要解析持有者令牌:

enter image description here 2.使用此承载令牌调用ms图api:

enter image description here

  1. 检查azure门户中的已禁用用户:

enter image description here


0
投票

这似乎是不合理的,但实际上我可以在我身边重现你的问题,我想你想要更新的用户在你的租户中有一个目录角色。如果是这样,只需删除他的目录角色,那么它将正常工作。 (应该有一些延迟,你可能需要等待几分钟)。


0
投票

否必须授予在Azure天花板上访问此API的权限。

确保您已在调用API的门户上设置了所需的权限访问权限。用户也不能在门户中具有任何目录角色。

  1. 如果您是AAD的管理员,则可以通过单击“授予权限”按钮为组织中的用户授予权限。
  2. 然后,您可以使用您的代码(客户端凭据流来获取令牌)和查询用户信息。如果您检查azure广告发布的访问令牌中的声明,您可以在角色声明中找到Directory.Read.All权限

在给定的参考中同一个线程在那里回答你可以参考here

注意对于Client Credentials代码示例,您可以检查here

如果您仍有任何疑问,请随时在评论中提问。谢谢。


0
投票

谢谢大家,我找到了根本原因 - 你无法在Admin角色中禁用用户。我不走运,选择了几个用户,所有用户都处于Admin角色。 https://docs.microsoft.com/en-us/graph/permissions-reference#remarks-2

© www.soinside.com 2019 - 2024. All rights reserved.