Outlook API: получение токена доступа из внешнего интерфейса, как я могу использовать его в веб-интерфейсе API для получения сообщений Outlook
Я пишу приложение для внешнего вида, Angular, Backend Web API. Я успешно получаю токен доступа, используя adal в front-end, sessionStorage:
adal.access.token.keyxxxxx6b-xxxx-xxxx-xxxx-376xxxx9c09:"Access-token"
adal.error:""
adal.error.description:""
adal.expiration.key:"0"
adal.expiration.keyxxxxx6b-xxxx-xxxx-xxxx-376xxxx9c09:"1482073764"
adal.idtoken:"access-token"
adal.login.error:""
adal.login.request:"http://localhost:8080/"
adal.nonce.idtoken:"xxxxx6b-xxxx-xxxx-xxxx-376xxxx9c09"
adal.session.state:"86xxxxxd-xxxx-480b-xxxx-34923xxxx918"
adal.state.login:"9axxxxxx-xxxx-xxxx-xxxx-360xxxxxx94"
adal.token.keys:"xxxxx6b-xxxx-xxxx-xxxx-376xxxx9c09|"
adal.token.renew.statusxxxxx6b-xxxx-xxxx-xxxx-376xxxx9c09:"Completed"
Сейчас я отправляю токен доступа на сервер и хочу получать сообщения из Outlook API, но как я могу это сделать. Искал outlook REST api и тестировал с помощью POSTMAN, но не работал.(Ошибка 401)
Get https://outlook.office.com/api/v2.0/me/messages
Authorization: Bearer access-token
Accept: application/json
Любые предложения о том, как это сделать? Заранее спасибо.
1 ответ
Похоже, вы пытаетесь завершить поток от имени. Именно здесь интерфейсный API получает токен доступа к службе среднего уровня, который впоследствии получает токен доступа к внутреннему API. Давайте предположим, что токен от внешнего интерфейса до среднего уровня имеет пользовательский контекст. Вы можете получить токен от среднего уровня до серверной части, используя тот же пользовательский контекст, запросив новый токен доступа, используя исходный токен доступа.
Вот более подробная информация о потоке: Найдите раздел, озаглавленный " Делегированная идентификация пользователя", с черновой спецификацией OAuth 2.0.
Вот пример кода, объединяющий этот поток: https://github.com/Azure-Samples/active-directory-dotnet-webapi-onbehalfof
Просто отметим, что в данном конкретном случае ошибка 401 означает, что у вас нет правильных разрешений для вызова и доступа к нужному API. Можете ли вы убедиться, что выбрали правильные разрешения для ресурса, к которому хотите получить доступ, для клиента, к которому вы обращаетесь к нему?
Я надеюсь, что это то, что вы ищете!