如何获取Microsoft Azure授权令牌以调用Cost Management API
解决Azure Cost Management API本地调用令牌无效问题
浏览器中交互式面板使用的是用户委托令牌(基于你当前登录的Azure账号身份生成),而你用应用注册的客户端凭据生成的是应用权限令牌,二者的权限验证逻辑不同,这是导致报错的核心原因。以下是两种可行的解决方式:
方式一:模拟浏览器的用户身份调用(授权码流程)
- 在Postman中选择OAuth2.0授权类型为
Authorization Code - 配置参数:
- 授权URL:
https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/authorize - 令牌URL:
https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/token - 客户端ID:你的应用注册ID
- 重定向URI:使用Postman默认的
https://oauth.pstmn.io/v1/callback,需提前在应用注册的「身份验证」页添加该URI - 范围:
https://management.azure.com/user_impersonation
- 授权URL:
- 勾选「Authorize using browser」,完成Azure账号登录授权后获取令牌,用该令牌发起API请求
方式二:使用应用身份调用(客户端凭据流程)
- 进入Azure AD应用注册,找到你的应用,进入「API权限」页
- 添加权限:选择「Azure Service Management」→ 应用权限 → 勾选
CostManagement.Read.All或CostManagement.ReadWrite.All - 点击「授予管理员同意」(需租户管理员操作)
- 在Postman中用客户端凭据流程获取令牌,范围设置为
https://management.azure.com/.default - 生成令牌后发起API请求
额外检查项
- 确保你的用户账号或应用身份,对目标Azure订阅拥有「Cost Management Reader」及以上权限(比如Owner)
- 确认API请求URL中的订阅ID、API版本(如
2023-11-01)等参数与交互式面板一致
内容的提问来源于stack exchange,提问作者Ovidijus Parsiunas
相关产品推荐
相关产品推荐

