以编程方式将RoleAssignment添加到资源组

时间:2020-08-26 15:38:02

标签: active-directory roles azure-sdk

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

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

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

TIA 最好的问候

1 个答案:

答案 0 :(得分:0)

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

1。。我们需要通过请求this api:GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?api-version=2015-07-01

获取角色定义的ID。

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

例如,在这里,我获得了“ 贡献者”角色的ID。 enter image description here

2。。然后请求this 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},并且您可以根据需要指定{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组。 enter image description here