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

标签 javascript node.js azure azure-active-directory azure-resource-manager

我正在使用 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) 列表?

我的意思是这个列表: enter image description here

最佳答案

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

这里是基于 Microsoft Docs 的示例代码

安装Azure授权模块

npm install azure-arm-authorization

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

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
<小时/>

更新(尝试回答评论中的疑问)

使用上面的代码列出特定资源组的所有 Angular 色分配(或 Angular 色分配 - 资源组 REST API 列表)。您将返回 Angular 色分配的集合,如您的评论所反射(reflect)的那样。

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

现在, Angular 色分配本身由以下内容组成:

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

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

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

这个概念在 Microsoft Docs 上有详细且很好的解释。

为了理解响应 UUID,您将能够找到所有 Angular 色定义的列表(以了解其 ID、名称描述等。使用 Role Definitions List through node SDK 或使用 Role Definitions - List REST API

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

您的案例中的范围是您尝试查询 Angular 色分配的资源组。

enter image description here

关于javascript - 在 Node.js 中获取资源组的访问控制列表 (IAM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53994646/

相关文章:

javascript - 有没有办法检查 JavaScript 函数是否接受回调?

javascript - 迭代对象数组,并将每个对象保存到 MongoDB

azure - 如何与其他 azure 用户共享对 azure 门户中的应用程序见解数据的访问权限

web-services - Azure 应用服务和云服务之间的差异

java - 通过Java客户端连接Azure服务总线

javascript - 设置超时问题

javascript - 在 Chrome 控制台中访问上次记录的值

javascript - .SlideDown 不适用于附加的 Html

node.js - Docker Node JS 设置环境

node.js - 在 Promose/bluebird 中顺序执行命令