1

Я пишу приложение для Outlook, front-end Угловой, базовый веб-API. Я успешно получать доступ лексему с помощью Адал в переднем конце, sessionStorage является:Outlook API: получение доступа к токену из интерфейсного интерфейса, как я могу использовать его в веб-интерфейсе API для получения сообщений Outlook.

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" 

Теперь я шлю доступ-маркер внутреннего интерфейса, и я хочу получать сообщения от внешнего вида API, но как может я делаю это. Искали прогноз REST API, и протестированы с использованием Почтальон, но не работает. (401 ошибка)

Get https://outlook.office.com/api/v2.0/me/messages 
Authorization: Bearer access-token 
Accept: application/json 

Любые предложения о том, как это сделать? Спасибо заранее.

ответ

0

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

Вот более подробная информация о потоке: Найдите раздел под названием Delegated User Identity with OAuth 2.0 On-Behalf-Of Draft Specification

Вот пример кода интеграции этого потока: https://github.com/Azure-Samples/active-directory-dotnet-webapi-onbehalfof

Просто к сведению, в данном конкретном случае, что ошибка 401 означает что у вас нет правильных разрешений для вызова и доступа к API, который вы хотите. Можете ли вы убедиться, что выбрали правильные разрешения для ресурса, к которому вы хотите получить доступ, для клиента, к которому вы обращаетесь?

Надеюсь, это то, что вы ищете!