首页 > 解决方案 > 以编程方式将 RoleAssignment 添加到资源组

问题描述

我正在用 Java 实现一个应用程序,该应用程序可以通过安全主体访问 Azure 并创建一些资源组。我想,给定通过配置指定的 AD 组名称,将该 AD 组的特定角色分配添加到资源组。通过 Azure Java SDK 是否可行,或者我需要使用 REST API?服务主体需要哪些权限:

  1. 读取给定名称的 AD 组
  2. 为该 AD 组新创建的资源组分配 RolePermission

我需要向我们的 ActiveDirectory 团队询问必须为我的服务主体启用哪些权限。

TIA 最好的问候

标签: active-directoryrolesazure-sdk

解决方案


我不知道我们是否可以使用 java sdk 来实现这个要求,但我知道我们可以请求 rest api 来做到这一点。请参考以下步骤:

1.我们需要通过请求这个api获取角色定义的id:GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?api-version=2015-07-01

URI 参数{scope}应该类似于/subscriptions/{your subscription id}/resourceGroups/{your resource group name}

例如,这里我得到了“贡献者”角色的 id。 在此处输入图像描述

2.然后请求api:PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}?api-version=2015-07-01 创建角色分配(将资源组贡献者的角色分配给您的广告组)。

{scope} 应该是/subscriptions/{your subscription id}/resourceGroups/{your resource group name},您可以根据需要指定 a {roleAssignmentName}(应该是有效的 GUID)。

请求正文应如下所示:

{
    properties: {
    "roleDefinitionId": "{the id of Contributor role which we get in step 1}",
    "principalId": "{the object id of your AD group}"
  }
}

3.完成上面的两个api请求,我们可以发现AD组已经被分配了资源组的“Contributor”角色。 在此处输入图像描述


推荐阅读