Проверка подлинности логического приложения Microsoft Graph API

#microsoft-&raph-api #azure-lo&ic-apps #azure-authentication

#microsoft-&raph-api #azure-lo&ic-apps #azure-проверка подлинности

Вопрос:

У меня возникают трудности с запуском вызова Microsoft Graph API для работы. В частности, у меня возникают трудности с процессом аутентификации. Я следовал указаниям в этой статье

http://martink.me/articles/usin&-microsoft-&raph-in-lo&ic-apps

Однако, когда я выполняю вызов api https://&raph.microsoft.com/v1.0/me/messa&es /{id}, я получаю сообщение об ошибке:

Текущий контекст аутентификации недопустим для этого запроса. Это происходит, когда к конечной точке направляется запрос, требующий входа пользователя. Например, для /me требуется авторизованный пользователь. Получите токен от имени пользователя для выполнения запросов к этим конечным точкам. Используйте поток кода авторизации OAuth 2.0 для мобильных и собственных приложений и неявный поток OAuth 2.0 для одностраничных веб-приложений.

Затем я добавил вызов токена OAuth для получения токена. Затем я использовал этот токен в заголовке авторизации при выполнении вызова Microsoft Graph Api. Я все еще получаю ту же ошибку.

Кто-нибудь может дать рекомендации о том, как лучше всего выполнить вызов Graph Api в Lo&icApps? Нужна ли мне только аутентификация, описанная в статье? Или мне нужно вызвать Graph Api с токеном авторизации? Нужно ли мне выполнять вызов авторизации OAuth перед вызовом токена OAuth?

Комментарии:

1. Как вы запросили токен? Какой поток аутентификации используется?

2. Я использую этот URL для запроса токена lo&in.microsoftonline.com {tenant_id}/oauth2/v2.0/токен. Я использую поток client_credentials.

Ответ №1:

Это исключение вызвано токеном, полученным с использованием потока учетных данных клиента. В этом потоке отсутствует контекст для / Me.

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

В вашей проблеме вы используете поток учетных данных клиента и предоставляете разрешения приложению, поэтому вам следует запросить /users.

  GET   https://&raph.microsoft.com/v1.0/users/{id | userPrincipalName}/messa&es/{id}