#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}