Получение сведений о виртуальной машине от нескольких арендаторов - PullRequest
1 голос
/ 16 мая 2019

мы разрабатываем приложение, в которое любой клиент может войти, используя активный каталог Azure.Нам нужен какой-то способ прочитать информацию об арендаторе пользователя и затем извлечь все виртуальные машины, связанные с его подпиской.

1 Ответ

0 голосов
/ 17 мая 2019

возможно, вы можете зарегистрировать свое приложение как мультитенантное приложение, чтобы пользователи во внешнем Azure AD могли войти в ваше приложение. Для получения подробной информации о мультитенантном приложении, пожалуйста, обратитесь к этому документ

Для получения информации о ВМ в пользовательской подписке Azure вам необходимо внедрить процесс, позволяющий вашему пользователю (с ролью владельца подписки Azure) предоставлять как минимум разрешение на чтение виртуальных машин для подписки пользователей на ваше мультитенантное приложение, чтобы Ваше приложение может получить необходимую информацию о виртуальной машине пользователя.

Я объясню детали процессов обработки отверстий по вашему требованию:

Step1:

Вы можете просто обратиться к этому документу , чтобы развернуть многосайтовое приложение. Если пользователи из другого Azure AD (мы называем это B-арендатором здесь) хотят использовать ваше мультитенантное приложение, администратор Арендатор B должен зарегистрироваться в вашем приложении (этот процесс вы можете увидеть подробнее здесь )

Шаг2:

Как только администратор AD завершит процесс регистрации, ваше мультитенантное приложение появится в «Корпоративных приложениях» B-арендатора. Вы можете найти его, используя свой мультитенантный идентификатор приложения: enter image description here Этот шаг просто для проверки, если ваше приложение успешно проживал арендатора клиента.

Step3

Этот шаг предоставит связанные с виртуальной машиной разрешения определенной подписки Azure клиента B для вашего мультитенантного приложения. Вы должны позволить администратору подписки Azure (у которого есть роль владельца) предоставить это разрешение: Перейти к подписке Blade: enter image description here

Добавьте роль «Вкладчик виртуальной машины» (это встроенная роль, у нее есть все разрешения на управление ВМ, кроме разрешения на чтение) в ваше мультитенантное приложение, вы можете найти свое приложение, используя его идентификатор приложения: enter image description here Выберите его и нажмите «Сохранить», этот шаг завершен.

Шаг 4

Попытка получить информацию о виртуальной машине из определенной подписки Azure B-клиента. На этом этапе я буду использовать REST API для получения необходимой вам информации о виртуальной машине. Получить токен доступа от арендатора B:

Request URL:
POST https://login.microsoftonline.com/<-B tenant name->/oauth2/token

Request header:
Content-Type: application/x-www-form-urlencoded

Request Body: 
client_id=<-your multi teant app id->&
client_secret=<-client secret of your multi tenant app->&
grant_type=client_credentials&
resource=https://management.azure.com/

Вы можете получить access_token, чтобы получить необходимую информацию о виртуальной машине через API REST ниже:

Request URL:
GET https://management.azure.com/subscriptions/<-your users' subscription ID->/resourceGroups/<-the resource group you want to query ->/providers/Microsoft.Compute/virtualMachines?api-version=2018-06-01

Request Header : 
Authorization: Bearer <-access token->

Я проверил на моей стороне, и это работает для меня: enter image description here

Надеюсь, это поможет!

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