Как получить доступ к другим клиентам и подпискам в Azure?

#java #azure

#java #azure

Вопрос:

мы пытаемся написать какое-либо приложение для получения показателей из службы мониторинга Azure для сбора данных и отправки их в Prometheus.

Один клиент со многими подразделами в порядке. Мы используем регистрацию приложения и соответствующее корпоративное приложение (оно же service principal).

С идентификаторами регистрации приложения (usbscription_id, tenant_id, client_id и client_secret) приложение java регистрируется в Azure и собирает эти данные.

Но давайте представим, что мы могли бы получить доступ к арендаторам и подписке наших клиентов таким образом. Как это можно сделать подробно?

С уважением, Хольгер

Ответ №1:

Это будет тот же подход, что и для вашего собственного арендатора. Клиент вашего клиента должен иметь регистрацию приложения AAD (участника службы) с требуемыми наименьшими привилегиями в целевой подписке (например, для чтения мониторинга в данном случае). Затем используйте идентификатор клиента, идентификатор подписки, идентификатор клиента, секрет клиента / сертификат из вашего java-приложения для сбора данных.

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

Комментарии:

1. Привет @krishg, это законное предложение, но я не думаю, что это лучшая практика. Мы хотим использовать «нашу» подписку только один раз, а не данные доступа клиента. Должен быть другой способ продолжить. Может быть, какой-то экспорт участника службы или что-то в этом роде.

2. Да, для доступа к ресурсу подписки вам, очевидно, потребуется идентификатор соответствующего арендатора. Существует также концепция многопользовательского приложения , но это полезно для интерактивного входа пользователя. Но здесь вы больше ориентируетесь на фоновое приложение-демон, использующее поток учетных данных клиента.