Я хочу сделать очень просто: подготовить Office 365 и учетную запись Azure из своего веб-приложения. И я хочу, чтобы он был доступен не только для меня, но и для всех ИТ-отделов (в том числе из других организаций), которые регистрируются в моем приложении.
Насколько я понимаю, я должен предпринять следующие шаги:
- Зарегистрируйте приложение на
apps.dev.microsoft.com
и получите ID и секрет. - Включить области, которые меня интересуют (в моем случае
Directory.ReadWrite.All
иUser.ReadWrite.All
) - включено как из делегированных разрешений, так и из разрешений приложений Пройден ПРОЦЕСС ВХОДА
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=[My клиент] & response_type = code & redirect_uri = [Моя учетная запись] /Account/Office&response_mode=query&scope=openid%20User.Read%20offline_access%20Directory.ReadWrite.All
Подтвердите код, который я получаю обратно на свой URL-адрес возврата
POST https://login.microsoftonline.com/common/oauth2/v2.0/token?...secret and so on...
Теперь я получаю объект с токеном доступа, токеном продления и т. Д. И т. Д.
Если я использую его для привлечения пользователей, все работает:
https://graph.microsoft.com/v1.0/users
Но когда я пытаюсь выполнить другие операции, токен кажется недействительным.
Например:
- Получите подписки Azure (учетная запись является администратором нескольких подписок):
https://management.core.windows.net/subscriptions
==> НЕСАНКЦИОНИРОВАНО
Что я делаю не так? Верна ли ИДЕЯ, стоящая за этим?
Мне действительно нужно сделать это на «глобальном» уровне без ручных действий по настройке для каждой подписки или ввода некоторого «TenantID» вручную.