2016-11-23 11 views
2

Я провел некоторое время с Azure AD OAuth 2.0.Получите токен доступа как для Microsoft Graph, так и для отдельных конечных точек API сервиса (API REST API) и т.д.)

Токен доступа, полученный с областью действия https://outlook.office.com/mail.read throws 401 Unauthorized при использовании с Microsoft Graph.

Аналогично, токен доступа, полученный с областью https://graph.microsoft.com/mail.read, выдает 401 Unauthorized при использовании с конечными точками API REST API.

Кроме того, я получаю сообщение об ошибке, если упоминаю обоим областям при авторизации пользователя.

Возможно ли иметь токены доступа, которые обеспечивают доступ к конечным точкам API-интерфейса Microsoft Graph и Outlook REST?

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

Я буду использовать Microsoft Graph, так как он поддерживает все, что мне нужно в настоящее время, и Microsoft recommends it над конечными точками API обслуживания.

Я беспокоюсь о будущем. Точки доступа OAuth, которые я получу в настоящее время, будут иметь область https://graph.microsoft.com/mail.read. В будущем может случиться так, что новая функция, которую я хочу построить, не поддерживается Microsoft Graph, но поддерживается поддержкой конечных точек API REST API. В такое время я бы хотел использовать конечные точки API REST API.

Должен ли я поддерживать два набора токена доступа OAuth для каждого пользователя? Также просить каждого пользователя переутверждать не является хорошей идеей.

ответ

6

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

E.g. Если вы запросили Mail.Read (короткое имя для https://graph.microsoft.com/mail.read), вы можете вернуться к конечной точке выдачи маркера с refresh_token с помощью scope="https://outlook.office.com/mail.read" и получить accesss_token для этой конечной точки.

+0

Спасибо. Это замечательные новости! – Varun