Как создать приложение для управления. azure .acom api с нуля и назначить роли клиента для доступа к подписке в azure?
Пожалуйста, предоставьте примеры, объясняющие этот сценарий
Вы можете использовать встроенное приложение для получения токена доступа для вызова Azure REST API.
Что вам нужно:
POST https://login.microsoftonline.com/{your_tenant_id_or_name}/oauth2/token Headers Content-Type:application/x-www-form-urlencoded Body grant_type=password &resource=https%3A%2F%2Fgraph.windows.net%2F &client_id=1950a258-227b-4e31-a9cf-717495945fc2 &username={your_user_name} &password={your_password}
Тогда вы получите токен доступа в ответ:
Использовать выражение $filter для получения информации о целевом пользователе, например:
$filter
GET https://graph.windows.net/{tenant_id}/users?$filter=userPrincipalName%20eq%20'jack%40hanxia.onmicrosoft.com'&api-version=1.6 Headers Authorization: Bearer {access_token_you_get_in_step_1}
Затем вы получите идентификатор объекта пользователя в ответ :
POST https://login.microsoftonline.com/{your_tenant_id_or_name}/oauth2/token Headers Content-Type:application/x-www-form-urlencoded Body resource=https%3A%2F%2Fmanagement.core.windows.net%2F &client_id=1950a258-227b-4e31-a9cf-717495945fc2 &grant_type=password &username={your_user_name} &password={your_password} &scope=openid
Тогда вы получите токен доступа в ответ.
Здесь я попытаюсь получить идентификатор роли Owner, используя выражение $filter:
Owner
GET https://management.azure.com/subscriptions/{your_subscription_id}/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName%20eq%20'Owner'&api-version=2018-01-01-preview Headers Authorization: Bearer {access_token_you_get_in_step_3}
Затем вы получите идентификатор роли в ответ:
PUT https://management.azure.com/subscriptions/{your_subscription_id}/providers/Microsoft.Authorization/roleAssignments/{a_new_guid}?api-version=2018-09-01-preview Headers Authorization: Bearer {access_token_you_get_in_step_3} Content-Type: application/json Body { "properties": { "roleDefinitionId": "/subscriptions/e5b0fcfa-e859-43f3-8d84-5e5fe29f4c68/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635", "principalId": "ab6d4cd6-fc2d-40c7-a676-f8773aebfb5f" } }
roleDefinitionId - это идентификатор роли, который я получаю на шаге 4, principalId - это идентификатор объекта пользователя, который я получаю на шаге 2.
roleDefinitionId
principalId
Было бы намного проще использовать Azure PowerShell или Azure CLI для назначения роли:
Connect-AzAccount -Subscription "your_subscription_id" # to whole subscription New-AzRoleAssignment -SignInName "user@****.onmicrosoft.com" -RoleDefinitionName "Owner" # to a specific resource group New-AzRoleAssignment -SignInName "user@****.onmicrosoft.com" -RoleDefinitionName "Owner" -ResourceGroupName "resource_group_name"