如何授予应用程序读取 Azure 计费数据的权限?

问题描述 投票:0回答:1

我正在尝试设置一个应用程序来自动从 Azure 管理 API 下载消费和计费数据。我已经设置了应用程序注册,并将其作为企业应用程序安装在我想要从中提取数据的租户中,并且我可以使用 MSAL 库获取令牌。我已授予应用程序用户对根计费的读取权限(租户签订了企业协议,其工作方式与 MCA 不同,这没有帮助)。该令牌可以成功从 Graph API 读取订阅列表。 (https://learn.microsoft.com/en-us/rest/api/resources/subscriptions/list?view=rest-resources-2022-12-01&tabs=HTTP

但是,当我尝试从例如获取数据时在列出预订摘要端点时,我收到 401 Unauthorized。 (https://learn.microsoft.com/en-us/rest/api/conspiration/reservations-summaries/list?view=rest-conspiration-2023-05-01&tabs=HTTP)。

我需要进行什么样的设置才能使应用程序能够访问此端点?我是否需要创建一个具有访问权限的用户帐户并让应用程序以该用户身份登录?

该应用程序当前已分配以下权限: screenshot of permissions from Azure portal

azure rest permissions microsoft-graph-api
1个回答
0
投票

事实证明,我们需要将 EnrolmentReader 角色添加到应用程序的服务主体中。目标租户的管理员需要运行脚本或进行 API 调用来创建角色分配,如本页所述:

https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/assign-roles-azure-service-principals?toc=%2Fazure%2Fcost-management-billing%2Ftoc.json #将注册帐户角色权限分配给 spn

我发现生成脚本是最简单的。

© www.soinside.com 2019 - 2024. All rights reserved.