尝试将架构扩展添加到用户

时间:2019-06-10 13:56:49

标签: azure azure-active-directory microsoft-graph

我正在尝试使用graph.microsoft.com向用户对象添加自定义属性。我为此选择了模式扩展,但是对https://graph.microsoft.com/v1.0/schemaExtensions的POST请求返回Authorization_RequestDenied

首先,我通过Azure CLI(id是我的应用程序ID)检查了权限:

az ad app permission list-grants --id 229e9b3d-5a17-4a46-930a-60e8ca114027 --show-resource-name

对于Microsoft Graph,有许多权限,但是据我了解,我只需要那里的User.ReadWrite.AllDirectory.AccessAsUser.All

然后,我使用Insomnia(检查功能是否存在编码问题)并使用JSON正文调用POST https://graph.microsoft.com/v1.0/schemaExtensions

{
  "id": "extTest",
  "description": "test extension",
  "targetTypes": [
     "User"
  ],
  "properties": [
    {
      "name" : "isAvailable",
      "type" : "Boolean"
    }
  ]
}

,返回的响应是:

{
  "error": {
    "code": "Authorization_RequestDenied",
    "message": "Insufficient privileges to complete the operation.",
    "innerError": {
      "request-id": "d5c1e7b3-f1c5-44c0-917d-5e43d7483bdf",
      "date": "2019-06-10T13:44:36"
    }
  }
}

有什么我想念的吗?

1 个答案:

答案 0 :(得分:2)

您的访问令牌似乎没有Directory.AccessAsUser.All权限。您可以使用https://jwt.io/对其进行解码,并检查此权限是否在“ scp”中。

enter image description here

我已经对它进行了测试,并且可以正常工作。这是我的主要步骤。

1。向您的应用添加Directory.AccessAsUser.All权限,并点击授予管理员同意按钮

enter image description here

2。使用auth code grant flow获取访问令牌。您不能在此处使用client credential grant flow,因为必须与用户登录。