在访问 Azure 活动目录时模拟登录用户



我使用 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 时模拟登录用户,以便仅获取允许他查看的资源组。

我使用护照-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);
 });
});

您也可以参考此链接。

最新更新