Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Управление доступом на основе ролей Azure (Azure RBAC) — это система авторизации, используемая для управления доступом к ресурсам в Azure. Чтобы определить, к каким ресурсам пользователи, группы, служебные главные субъекты или управляемые удостоверения имеют доступ, необходимо перечислить их назначения ролей. В этой статье описывается, как перечислить назначения ролей с помощью REST API.
Примечание.
Если ваша организация передала функции управления поставщику услуг, который использует службу Azure Lighthouse, то назначения ролей, предоставленные этим поставщиком услуг, здесь отображаться не будут. Аналогичным образом пользователи в организации поставщика услуг не будут видеть назначения ролей для пользователей в организации клиента, независимо от ролей, которые им назначены.
Примечание.
Сведения о просмотре или удалении персональных данных см. в разделе "Общие запросы субъекта данных" для GDPR, запросов субъекта данных Azure для GDPR или запросов субъектов данных Windows для GDPR в зависимости от конкретной области и потребностей. Дополнительные сведения о GDPR см. в разделе, посвященном GDPR, в Центре управления безопасностью Майкрософт и на портале Service Trust Portal.
Предварительные условия
Необходимо использовать следующую версию:
-
2015-07-01или позже. -
2022-04-01или более поздняя версия, чтобы включить условия
Дополнительные сведения см. в версиях API Azure RBAC REST APIs.
Список назначений ролей
Чтобы составить список прав доступа при использовании Azure RBAC, вам нужно составить список назначений ролей. Чтобы вывести список назначений ролей, используйте один из API получения или перечисления назначений ролей. Чтобы уточнить результаты, укажите область и дополнительный фильтр.
Можете начать со следующего запроса:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter={filter}Внутри URI замените {scope} областью, для которой требуется вывести список назначений ролей.
Область Тип providers/Microsoft.Management/managementGroups/{groupId1}Группа управления subscriptions/{subscriptionId1}Подписка subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1Группа ресурсов subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1Ресурс В предыдущем примере microsoft.web — это поставщик ресурсов, который ссылается на экземпляр Службы приложений. Аналогичным образом можно использовать любые другие поставщики ресурсов и указать область. Дополнительные сведения см. в статье Поставщики и типы ресурсов Azure и Операции поставщиков ресурсов Azure.
Замените {filter} условием, по которому требуется отфильтровать список назначений ролей.
Фильтр Описание $filter=atScope()Перечисляет назначения ролей только для указанной области, не включая назначения ролей во внутренних областях. $filter=assignedTo('{objectId}')Список назначений ролей для определённого пользователя или служебного принципала.
Если пользователь является членом группы, которая имеет назначение роли, такое назначение роли также появится в списке. Этот фильтр является транзитивным для групп, т. е. если пользователь является членом группы, а эта группа является членом другой группы с назначением роли, это назначение роли будет также включено в список.
Этот фильтр принимает только идентификатор объекта для пользователя или представителя службы. Невозможно передать идентификатор объекта для группы.$filter=atScope()+and+assignedTo('{objectId}')Перечисляет назначения ролей для указанного пользователя или служебного субъекта на указанном уровне. $filter=principalId+eq+'{objectId}'Список назначений ролей для указанного пользователя, группы или служебной роли.
Следующий запрос позволяет сформировать список, включающий все назначения ролей для указанного пользователя в области подписки:
GET https://management.azure.com/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=atScope()+and+assignedTo('{objectId1}')
Ниже приведен пример выходных данных:
{
"value": [
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{objectId1}",
"principalType": "User",
"scope": "/subscriptions/{subscriptionId1}",
"condition": null,
"conditionVersion": null,
"createdOn": "2022-01-15T21:08:45.4904312Z",
"updatedOn": "2022-01-15T21:08:45.4904312Z",
"createdBy": "{createdByObjectId1}",
"updatedBy": "{updatedByObjectId1}",
"delegatedManagedIdentityResourceId": null,
"description": null
},
"id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId1}",
"type": "Microsoft.Authorization/roleAssignments",
"name": "{roleAssignmentId1}"
}
]
}