Изменение учетной записиEnabled бросает 403 Authorization_RequestDenied - PullRequest
0 голосов
/ 10 апреля 2019

Я использую клиентское приложение (предоставление учетных данных клиента) с определенными разрешениями 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?

Ответы [ 4 ]

0 голосов
/ 10 апреля 2019

Спасибо, ребята, мне удалось найти основную причину - вы не можете отключить пользователя в роли администратора.Мне не повезло, и я выбрал несколько пользователей, и все они были в роли администратора.https://docs.microsoft.com/en-us/graph/permissions-reference#remarks-2

0 голосов
/ 10 апреля 2019

Нет Необходимо предоставить разрешение на доступ к этому API на портале Azure.

Убедитесь, что вы установили необходимые права доступа на портале вашего вызывающего API. Также пользователь не должен иметь никакой роли каталога на портале.

  1. Если вы являетесь администратором в своем AAD, вы можете дать разрешение на пользователи в организации, нажав кнопку Предоставить разрешение.

  2. Тогда вы можете использовать свой код (поток учетных данных клиента, чтобы получить токен) и запрашивать информацию у пользователей. Если вы проверите претензии в токен доступа, выданный Azure, вы можете найти Directory.Read.All разрешение на роль претендует

В данной ссылке ответила та же тема. Вы можете сослаться здесь .

Примечание Для примера кода Client Credentials вы можете проверить здесь

Если у вас все еще есть вопросы, не стесняйтесь спрашивать в комментариях. Спасибо.

0 голосов
/ 10 апреля 2019

Это кажется неразумным, но на самом деле я могу воспроизвести вашу проблему на моей стороне, я полагаю, что пользователь, которого вы хотите обновить, имеет роль каталога в вашем клиенте.Если это так, просто удалите его роль каталога, то он будет работать нормально.(Должна быть некоторая задержка, возможно, вам придется подождать несколько минут).

0 голосов
/ 10 апреля 2019

С моей стороны это работает. Ниже мой процесс:

  1. Используйте учетные данные клиента для получения токена на предъявителя: enter image description here

Для разбора токена на предъявителя:

enter image description here 2. Используйте этот токен на предъявителя для вызова ms graph api:

enter image description here

  1. Проверка отключенного пользователя на портале Azure:

enter image description here

...