我使用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进行身份验证。
答案 0 :(得分:0)
您可以使用以下代码仅接收登录用户有权访问的资源组:
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);
});
});
您也可以参考此link。