javascript - 访问 Azure Active Directory 时模拟登录用户
问题描述
我使用 Azure SDK 来检索资源组的列表:
const MsRest = require('ms-rest-azure');
const { ResourceManagementClient } = require('azure-arm-resource');
const credentials = await MsRest.loginWithServicePrincipalSecret(appId, pass, tenantId);
const client= new ResourceManagementClient(credentials, subscriptionId);
const resourceGroups = await client.resourceGroups.list()
然而问题是我收到了订阅中的所有资源组。我只想接收登录用户有权访问的资源组。因此,一种选择是检索资源组的 IAM(访问控制)列表并检查登录用户是否出现在那里。我不想那样做,因为它会向 Azure 提出许多请求。我想在访问 Azure 时模拟登录用户,以便仅获取允许他查看的资源组。
我使用 passport-azure-ad 进行身份验证。
解决方案
您可以使用以下代码仅接收登录用户有权访问的资源组:
var msRestAzure = require('ms-rest-azure');
var resourceManagement = require("azure-arm-resource");
// Interactive Login
msRestAzure.interactiveLogin(function(err, credentials) {
var client = new resourceManagement.ResourceManagementClient(credentials, 'subscriptionid');
client.resourceGroups.list(function(err, result) {
if (err) console.log(err);
console.log(result);
});
});
你也可以参考这个链接。
推荐阅读
- python - 模型没有在 Django 中注册到管理员?
- elasticsearch - Elasticsearch 通过计数查询 DSL 过滤器
- reactive-programming - 无法从列表转换
> 列出 - google-cloud-platform - 如何在 GCP 云 SQL 中编辑机器类型
- nestjs - UseFilters NestJS 在 RcpException 时不起作用
- reactjs - React Saga 方法调用某些 Redux 方法 - 但是否可以解耦这个硬编码链接并使用 await 组合单个调用?
- c# - 如何模拟 Current.Request.ApplicationPath(API 方法调用了 VirtualPathUtility.ToAbsolute)
- python - 为什么没有将字符串写入临时文件?
- python - 如何显示枚举中是否有重复项
- node.js - 从 nodemailer 中的 godaddy 托管电子邮件发送电子邮件