Поддержка нескольких клиентов для Microsoft Graph API

Поскольку я играю с Microsoft Graph API (https://graph.microsoft.io/), я хочу понимать поддержку мультитенантности для Graph API.

Насколько я понимаю, нам нужно сначала создать и зарегистрировать наше приложение (http://dev.office.com/app-registration) в O365 Azure AD, прежде чем мы сможем использовать его для доступа к графическому API.

Это согласуется с более ранней моделью, где приложения создавались непосредственно в базовой AD. Я считаю, что описанный выше шаг создания приложения делает то же самое.

Хотя это позволяет приложению получить доступ к API-интерфейсу графа для клиента, в котором мы зарегистрировали приложение, приложение не может получить доступ к другим данным клиента. Как мы это делаем?

У приложений AD раньше был поток предоставления доступа, в котором приложение использовалось для представления диалогового окна пользователю в другом клиенте для авторизации приложения. Сохраняется ли этот поток?

Любые указания в этом отношении были бы полезны.


person Chandermani    schedule 15.08.2016    source источник


Ответы (3)


В качестве альтернативы, если вы используете Портал регистрации приложений, связанный непосредственно с Microsoft Graph, вам не нужно будет ничего делать дополнительно, чтобы ваше приложение работало с несколькими клиентами. Для этого потребуется переключить вашу стратегию аутентификации на конечные точки аутентификации v2.0 (также известная как конвергентная аутентификация). Это также дает вам некоторые преимущества, такие как динамические области и возможность поддерживать корпоративную и потребительскую аутентификацию и графические API-интерфейсы с одним и тем же потоком аутентификации.

В зависимости от выбранной вами платформы существует несколько примеров в Microsoft Graph Учетная запись GitHub, которая поможет вам, если вам это нужно. Многие образцы уже были переведены на этот новый поток аутентификации, а над другими также ведется работа.

Дополнительно

Если у вас есть вопросы о параметрах сегмента {tenant} для конечной точки аутентификации v2.0, вы можете прочитать о них здесь.

  • common => Позволяет пользователям с личными учетными записями Microsoft и рабочими / учебными учетными записями из Azure Active Directory входить в приложение.
  • организации => Разрешает вход в приложение только пользователям с рабочими / учебными учетными записями из Azure Active Directory.
  • потребители => Позволяет только пользователям с личными учетными записями Microsoft (MSA) входить в приложение.
  • {руководство арендатора | name} => Разрешает вход в приложение только пользователям с рабочими / учебными учетными записями из определенного клиента Azure Active Directory. Можно использовать либо понятное доменное имя клиента Azure AD, либо идентификатор guid клиента.
person Robert Anderson - Microsoft    schedule 15.08.2016
comment
Мне кажется хорошим примером приложения MVC с использованием Graph API github.com/ OfficeDev / PnP / tree / master / Samples /, но это одиночный клиент, когда образец является мультитенантным, он больше не использует Graph API, а библиотеки sharepoint. Кто-нибудь знает какой-либо образец кода, который использует Multi Tenant и использует Graph API, например проект MicrosoftGraph.Office365.Generic? - person visual; 21.10.2016

Чтобы включить приложение для нескольких клиентов, нам необходимо войти на портал Azure и включить его, как показано на рисунке ниже: введите описание изображения здесь

person Fei Xue - MSFT    schedule 15.08.2016

Самое главное, используйте common в качестве идентификатора клиента при работе с мультитенантными приложениями. Посмотрите, как это делается, ниже:

https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=<YOUR_AAD_CLIENT_ID_HERE>&redirect_uri=<YOUR_REDIRECT_URI_HERE>'

Об этом нет четкого упоминания, потому что их документация хуже. Компании размером с Microsoft нет оправданий.

person msaad    schedule 16.08.2016