Недостаточно прав при попытке добавить расширение схемы для пользователя - PullRequest
3 голосов
/ 10 июня 2019

Я пытаюсь добавить пользовательские свойства к объекту пользователя, используя graph.microsoft.com.Для этого я выбрал расширения схемы, но запрос POST к https://graph.microsoft.com/v1.0/schemaExtensions возвращает Authorization_RequestDenied.

Сначала я проверил разрешения через CLI Azure (id - это идентификатор моего приложения):

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

Для Microsoft Graph существует много разрешений, но, насколько я понимаю,Мне нужны только User.ReadWrite.All и Directory.AccessAsUser.All, которые там есть.

Затем я использовал Insomnia (для проверки работоспособности без проблем с кодированием) и вызывал POST https://graph.microsoft.com/v1.0/schemaExtensions с телом JSON:

{
  "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 Ответ

2 голосов
/ 11 июня 2019

Похоже, у вашего токена доступа нет разрешения Directory.AccessAsUser.All. Вы можете декодировать его с помощью https://jwt.io/ и проверить, существует ли это разрешение в 'scp'.

enter image description here

Я проверил его на моей стороне, и он работает. Вот мои основные шаги.

1.add Directory.AccessAsUser.Все разрешения для вашего приложения и нажмите кнопку предоставления разрешения администратора .

enter image description here

2. получить токен доступа, используя поток предоставления кода авторизации . Вы не можете использовать поток предоставления клиентских полномочий здесь, поскольку вы должны войти в систему с пользователем.

...