Какую конечную точку OAuth следует использовать для запроса информации о пользователях из Graph API - PullRequest
0 голосов
/ 10 мая 2018

Я пишу надстройку Word.Надстройка будет платной надстройкой, которую может приобрести организация (арендатор Office 365) или частное лицо.

Лицензирование

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

  1. Если отдельный покупатель: ищет идентификатор или электронную почту, связанную с учетной записью Microsoft пользователя
  2. Если организационная структурапользователь: посмотрите идентификатор арендатора и номер ссылки лицензий

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

Аутентификация

Пока SSO не выйдет из предварительного просмотра, я планирую использовать Authenticator из office-js-helpers, чтобы получить информацию о пользователе, который выполнил вход в мою надстройку.

В вспомогательных документах перечислены следующие возможные стратегии OAuth:

var authenticator = new OfficeHelpers.Authenticator();

// register Microsoft (Azure AD 2.0 Converged auth) endpoint using
authenticator.endpoints.registerMicrosoftAuth('client id here');

// register Azure AD 1.0 endpoint using
authenticator.endpoints.registerAzureADAuth('client id here', 'tenant here');

// register Google endpoint using
authenticator.endpoints.registerGoogleAuth('client id here');

// register Facebook endpoint using
authenticator.endpoints.registerFacebookAuth('client id here');

// register any 3rd-Party OAuth Implicit Provider using
authenticator.endpoints.add('Name of provider', { /* Endpoint Configuration */ })

Graph API

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

Вопрос

Мой вопрос заключается в том, какая стратегия OAuth ответит токеном Graph API, который будет возвращать информацию для:

  1. Отдельных пользователей с учетной записью Microsoft
  2. Организационные пользователи, связанные с идентификатором арендатора

?

Есть ли разница между

Microsoft (Azure AD 2.0 Converged auth) endpoint

и

Azure AD 1.0 endpoint

1 Ответ

0 голосов
/ 10 мая 2018

Да, есть довольно много различий. На высоком уровне это:

конечная точка v1:

  • Поддерживает только учетные записи AAD. Он не поддерживает типы учетных записей MSA / Outlook.com / Live.
  • Использует «Ресурсы» вместо «Области»
  • Требуется предварительно определить области разрешений, которые вы хотите при регистрации
  • Поддерживается почти всеми API Microsoft REST (не только Microsoft Graph)

конечная точка v2:

  • Поддерживает учетные записи AAD и MSA
  • Использует "Области" вместо "Ресурсы"
  • Области разрешений могут быть динамически запрошены во время предопределения или (обратите внимание, что для приложений-служб / демонов, использующих учетные данные клиента, их необходимо предварительно определить).
  • Сегодня поддерживается меньшим набором API-интерфейсов (хотя, честно говоря, большинство API-интерфейсов со временем направляются в Graph).

Примечание. Это список сверхвысокого уровня, пропускающий много деталей, но он охватывает большинство основных отличий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...