Microsoft Graph - получить ошибку MemberOf с токеном приложения - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь получить доступ к Microsoft Graph API для запроса списка групп, к которым принадлежит пользователь, используя указанную ниже конечную точку

https://graph.microsoft.com/v1.0/users/ {userID} / memberOf

Но с тех пор, как в последние два дня мои запросы терпят неудачу, ответ ниже:

{   error: {
    code: 'Authorization_RequestDenied',
    message: 'Insufficient privileges to complete the operation.',
    innerError: {
      'request-id': '7d8a5602-19ca-4cc7-a84d-60cc0c9c09d5',
      date: '2020-04-28T11:44:24'
    }   } }

У меня уже есть разрешение и концентрация, предоставленные от имени администратора, предоставленные мной права доступа включают

Directory.Read.All
Directory.ReadWrite.All
Group.Read.All

Как указано в документации Microsoft здесь: https://docs.microsoft.com/en-us/graph/api/user-list-memberof?view=graph-rest-1.0&tabs=http

enter image description here

Запрос API отправляется с авторизацией заголовок токена доступа (из службы), следуя этой документации https://docs.microsoft.com/en-us/graph/auth-v2-service

Декодированный токен JWT, передаваемый в заголовке авторизации:

{
  "aud": "https://graph.microsoft.com",
  "iss": "https://sts.windows.net/TENANTID_REMOVED_FOR_SECURITY/",
  "iat": 1588150105,
  "nbf": 1588150105,
  "exp": 1588154005,
  "aio": "42dgYOCaN0c46++enU1fZx+98Lc3DQA=",
  "app_displayname": "dspIT",
  "appid": "MYAPPID_REMOVED_FOR_SECURITY",
  "appidacr": "1",
  "idp": "https://sts.windows.net/TENANTID_REMOVED_FOR_SECURITY/",
  "oid": "fc709ea2-887e-4794-9417-ac578ab825e8",
  "rh": "0.ATEAfGSULqtSkUqIuFyy2LRFJyPSTnvDYjVDlpuh_cMocSgxAAA.",
  "roles": [
    "User.ReadWrite.All",
    "RoleManagement.Read.Directory",
    "Group.Read.All",
    "Directory.ReadWrite.All",
    "Group.Create",
    "Group.ReadWrite.All",
    "User.Invite.All",
    "Directory.Read.All",
    "User.Read.All",
    "GroupMember.Read.All",
    "User.Export.All",
    "PrivilegedAccess.Read.AzureADGroup",
    "User.ManageIdentities.All",
    "RoleManagement.ReadWrite.Directory",
    "GroupMember.ReadWrite.All",
    "Group.Selected",
    "PrivilegedAccess.ReadWrite.AzureADGroup"
  ],
  "sub": "fc709ea2-887e-4794-9417-ac578ab825e8",
  "tid": "TENANTID_REMOVED_FOR_SECURITY",
  "uti": "wvHXdAZomUefp2RpSGBPAA",
  "ver": "1.0",
  "xms_tcdt": 1519129156
}

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 29 апреля 2020

На основании вашего декодированного токена JWT я провел быстрый тест и нашел причину.

Похоже, есть разрешение приложения Group.Selected, которое влияет на вызов этой конечной точки API /memberOf.

Что-то не так с этим разрешением, и это затронуло какую-то другую конечную точку. Я отвечал на аналогичный пост раньше здесь .

Так что, если это не нужно, просто удалите его из приложения Azure AD. Тогда эта ошибка исчезнет.

Если это разрешение необходимо, боюсь, вам нужно создать новое приложение Azure AD, чтобы добавить в него разрешение на использование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...