Программно получить всех владельцев из подписки Azure - PullRequest
0 голосов
/ 29 сентября 2018

Я хочу получить всех владельцев подписки Azure программным способом.Я не хочу делать это с помощью Powershell.

И я узнал, что мы можем добиться этого, используя REST API Azure Management, но не смог найти точную ссылку на API для получения списка владельцев из подписки Azure.

Может кто-нибудь, пожалуйста, помогите мне в этом.

1 Ответ

0 голосов
/ 29 сентября 2018

API REST

Вы сможете получить эту информацию с помощью API REST для Microsoft.Authorization / roleAssignments.

GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01&$filter={filter}

В вашем случае, поскольку вы ищете владельцев наУровень подписки: область действия будет {область действия} будет подписка / {subscriptionId}

Кроме того,

  • После получения ответа он будет содержать идентификаторы определений ролей.точных имен.Для всех встроенных ролей вы можете узнать, какая это роль заранее, посетив эту документацию Microsoft .Например, идентификатор для Роль владельца - это "8e3af657-a8ff-443c-a75c-2fe8c4bcb635"

  • Чтобы найти идентификаторы для всех возможных определений ролей в рамках ответа, выможно использовать Определения ролей - Список REST API

Полезная документация

Прочтите эту документацию Microsoft, в которой подробно рассказывается, какВывести список, предоставить доступ или удалить доступ с помощью RBAC и REST API: Управление доступом с использованием RBAC и REST API

ОБНОВЛЕНИЕ (Примеры и API также для доступа к классическим администраторам)

Я запустил несколько образцов, используя мою пробную подписку.Вот запросы и ответы.

  1. Чтобы найти всех пользователей, которым явно назначена роль «Владелец» на уровне подписки

    Запрос:

    GET https://management.azure.com/subscriptions/{my subscription GUID}/providers/Microsoft.Authorization/roleAssignments?api-version=2018-01-01-preview 
    

    Ответ:

ВНИМАНИЕ! Идентификатор определения роли в ответе: «8e3af657-a8ff-443c-a75c-2fe8c4bcb635».Это соответствует встроенной роли владельца.

    {"value":[{"properties":{"roleDefinitionId":"/subscriptions/{my Subscription GUID}/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"{some user GUID}","principalType":"User","scope":"/subscriptions/{my Subscription GUID}","createdOn":"2018-10-03T05:12:52.7213301Z","updatedOn":"2018-10-03T05:12:52.7213301Z","createdBy":"GUID","updatedBy":"GUID"},"id":"/subscriptions/{my Subscription GUID}/providers/Microsoft.Authorization/roleAssignments/83eee76b-4a0d-4f61-8c62-409501e95457","type":"Microsoft.Authorization/roleAssignments","name":"83eee76b-4a0d-4f61-8c62-409501e95457"}]}

Чтобы найти всех пользователей, которые являются Владельцами в силу того, что они являются Классическими Администраторами (Это относится к учетным записям, которые подписались на подписку, но им не была явно назначена роль Владельца при использовании портала Azure RBAC)

Запрос: обратите внимание на classicAdministrators в конце URL-адреса и версия API устарела 2015-06-01

GET https://management.azure.com/subscriptions/6f070baf-bbba-47a5-bbe4-a0450017cdf5/providers/Microsoft.Authorization/classicAdministrators?api-version=2015-06-01

Ответ: роль уведомления - ServiceAdministrator; AccountAdministrator;

{"value":[{"properties":{"emailAddress":"xxxx@xxxx.com","role":"ServiceAdministrator;AccountAdministrator"},"id":"/subscriptions/{mysubscriptionguid}/providers/Microsoft.Authorization/classicAdministrators/00030000B1F89CF0","type":"Microsoft.Authorization/classicAdministrators","name":"00030000B1F89CF0"}]}
...