Не удается получить доступ к API сообщений списка графиков Microsoft - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь получить информацию о почтовом ящике моего пользователя с помощью API Список сообщений (https://docs.microsoft.com/en-us/graph/api/user-list-messages?view=graph-rest-1.0&tabs=http).

Я следую инструкциям, описанным в https://docs.microsoft.com/en-us/graph/auth-v2-service.

Я зарегистрировал свое приложение, настроил «Разрешения приложений» на возможность использования Список сообщений , получил согласие администратора с использованием

 // Line breaks are for legibility only.
 GET https://login.microsoftonline.com/{MY_TENANT_NAME}/adminconsent
 ?client_id=MY_APP_CLIENT_ID
 &state=12345
 &redirect_uri=https://localhost/myapp/permissions

И, предоставив свои учетные данные, я смог получить admin_consent = True URL. И тогда я мог бы получить токен доступа, используя

// Line breaks are for legibility only.

POST https://login.microsoftonline.com/{MY_TENANT_NAME}/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=MY_APP_CLIENT_ID
&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default
&client_secret=MY_APP_SECRET_KEY
&grant_type=client_credentials

У меня есть действительный токен доступа. Я вижу, как мои пользователи звонят https://graph.microsoft.com/v1.0/users.

Однако, когда я звоню https://graph.microsoft.com/v1.0/users/ {MY_USER_ID} / messages, я получаю сообщение об ошибке.

{
  "error": {
    "code": "OrganizationFromTenantGuidNotFound",
    "message": "The tenant for tenant guid '2a862810-93dc-4096-a6b0-dda413670497' does not exist.",
    "innerError": {
      "request-id": "ba60c495-742b-4655-be74-fe8802427756",
      "date": "2020-04-11T19:20:32"
    }
  }
}

Интересно, что когда я использую https://developer.microsoft.com/en-us/graph/graph-explorer, я могу получить электронную почту моего пользователя. Я проверил запросы, но это не похоже на разницу. Единственное отличие, которое я увидел, при исследовании AAD -> Приложения предприятия -> Разрешения, я могу видеть разрешения пользователя в приложении Graph Explorer, но не в моем приложении.

Ответы [ 3 ]

0 голосов
/ 12 апреля 2020

Используете ли вы правильный идентификатор приложения, так как в вашем рекламном приложении есть три типа идентификаторов: идентификатор приложения, идентификатор объекта и идентификатор каталога. Здесь вы должны использовать идентификатор приложения.

Вы также можете проверить AppID в вашем токене доступа

0 голосов
/ 14 апреля 2020

Сколько активных сред каталогов в этом клиенте? Вы уверены, что создаете приложение Azure AD в правильном клиенте?

Я полагаю, что вы, возможно, используете неправильный идентификатор клиента. Идентификатор пользователя существует в этом клиенте, а почтовый ящик - нет.

В aad.portal. azure .com / # blade / Microsoft_AAD_IAM /… есть свойство идентификатора клиента, которое следует использовать в oauth. url - login.microsoftonline.com/$ndomtenantId}

Проверьте, правильно ли вы используете.

0 голосов
/ 12 апреля 2020

Странно, что он жалуется на ваш tenantID. Однако в разделе Зарегистрированные приложения AAD

https://portal.azure.com/#blade / Microsoft_AAD_IAM / ActiveDirectoryMenuBlade / RegisteredApps

проверьте, установлено ли разрешение Mail.Read *.

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