Я создаю надстройку Outlook для Office 365. Из этой надстройки я хочу вызвать Graph API, возможно ли получить токен доступа, не запрашивая у пользователя повторный вход в приложение?
Как получить токен доступа Azure AD (для вызова Graph API) внутри надстройки Office 365 Outlook?
Ответы (3)
Теперь Microsoft сделала это возможным. Прямо сейчас он находится в предварительном просмотре и говорит, что он предназначен только для «Рабочего стола», что я не уверен, означает ли это Desktop Outlook, а не Outlook Web, или, может быть, это просто означает не Outlook через мобильные приложения.
https://dev.office.com/docs/add-ins/develop/sso-in-office-add-ins
Мне еще предстоит выяснить, как на самом деле реализовать обмен токенами, который они обсуждают, но я обновлю здесь, если найду его.
можно ли получить токен доступа, не запрашивая у пользователя повторный вход в приложение?
Нет, вы не можете.
В надстройке Outlook есть API JavaScript с именем getUserIdentityTokenAsync. а>. Вызывая этот API, вы можете получить токен Exchange Identity, но вы не можете использовать этот токен для доступа к API графа.
Чтобы получить дополнительную информацию от сервера обмена в надстройке Outlook, вы можете рассмотреть возможность создания запроса EWS в качестве альтернативного способа.
Вот образец для справки
Outlook-Add-in-JavaScript-MakeEWSRequest
Между надстройкой Office и API Graph не существует единого входа. Вы можете использовать подход из этого статья. Вы узнаете, как свести к минимуму действия пользователя во время входа в систему и кэшировать маркер обновления для получения маркера доступа в будущем.