获取 Node.js 中资源组的访问控制列表 (IAM)

Get access control list (IAM) of a resource group in Node.js

我正在使用 Node.js 与 Azure 交互,例如,创建资源组:

const { ResourceManagementClient } = require('azure-arm-resource');

createResourceGroup(location, groupName) {
        const groupParameters = {
            location: location,
        };
        return this.resourceClient.resourceGroups.createOrUpdate(groupName, groupParameters);
    }

如何使用这些 azure-arm 模块来检索资源组的访问控制 (IAM) 列表?

我的意思是这个列表:

您将需要使用 Azure Authorization Modules for Node.js

这是基于 Microsoft Docs 的示例代码

正在安装 Azure 授权模块

npm install azure-arm-authorization

列出特定资源组的所有角色分配

const msRestAzure = require('ms-rest-azure');
const authorizationManagement = require('azure-arm-authorization');

const resourceGroup = 'resource-group-name';
const subscriptionId = 'your-subscription-id';

msRestAzure.interactiveLogin().then(credentials => {
 const client = new authorizationManagement(credentials, subscriptionId);
 client.roleAssignments.listForResourceGroup(resourceGroupName).then(result => {
   console.log(result);
 });
});

另外,请注意,用于这些操作的实际 REST API 是:

Role Assignments - List For Resource Group

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01

类似 API,它接受通用范围(不仅可以处理资源组,还可以处理其他资源)

Role Assignments - List For Scope

GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01

更新(试图回答评论中的问题)

使用上面的代码列出特定资源组的所有角色分配(或角色分配 - 资源组 REST API 的列表)..您将返回角色分配的集合,就像您的评论一样反映。

根据您问题的屏幕截图,我想这就是您所需要的,因为您选择了“角色分配”选项卡,并且列表显示在 Azure 门户中。

现在角色分配本身由以下组成:

  1. 安全主体 ID(您尝试通过角色授予权限的用户、组、服务主体等)

  2. 角色定义 ID(您分配的角色的标识符,例如贡献者、所有者或相关的自定义 RBAC 角色)

  3. 范围(分配此角色的范围,如订阅级别或特定资源组或资源级别)

此概念在 Microsoft Docs

上有详细且非常好的解释

为了理解响应 UUID,您将能够找到所有角色定义的列表(使用 Role Definitions List through node SDK or using Role Definitions - List REST API

了解他们的 ID、名称描述等)

主体 ID 是用户、组或应用服务主体的 ID。

在您的案例中,范围是您尝试为其查询角色分配的资源组。