【问题标题】:How to create management.azure.acom api and do role assignment in Azure如何在 Azure 中创建 management.azure.acom api 并进行角色分配
【发布时间】:2020-03-10 20:44:23
【问题描述】:

如何从头开始为 management.azure.acom api 创建应用程序并为客户分配角色以访问 azure 中的订阅?

请提供解释这种情况的示例

【问题讨论】:

  • 你能告诉我management.azure.acom api from scratch 是什么吗?是Azure rest api吗?
  • 是的,它是一个 azure rest api
  • 你检查我的答案了吗?如果有帮助,您可以将其标记为已接受。谢谢

标签: azure rest azure-active-directory microsoft-graph-api


【解决方案1】:

您可以使用内置应用获取访问令牌来调用 Azure REST API。

你需要什么:

  • Azure 管理员帐户
  • 订阅 ID
  • 租户 ID 或名称

1。获取 AD Graph 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}

然后你会得到一个访问令牌作为响应:

2。 Get user object ID

使用$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}

然后你会得到用户的对象ID作为响应:

3。获取 Azure 管理 API 的令牌

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

然后你会得到一个访问令牌作为响应。

4。获取角色 ID

这里,我将尝试使用$filter表达式获取Owner的角色ID:

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}

然后你会得到角色ID作为响应:

5。添加角色分配

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 中获得的角色 ID,principalId 是我在步骤 2 中获得的用户对象 ID。


使用 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"

【讨论】:

    猜你喜欢
    • 2023-01-21
    • 2021-06-24
    • 1970-01-01
    • 2020-09-21
    • 2023-01-13
    • 1970-01-01
    • 2017-07-17
    • 2019-09-23
    • 2020-09-13
    相关资源
    最近更新 更多