如何获取调用Azure APIM REST API所需的Bearer Token
Azure APIM REST接口所需Bearer Token获取指南
你调用的Azure API Management订阅创建/更新接口属于Azure资源管理器(ARM)管控面接口,采用的Azure AD OAuth2认证逻辑和token获取方式如下:
核心认证逻辑
- 这类ARM接口只接受Azure AD颁发、受众为
https://management.azure.com/的访问令牌,APIM本身不生成这个接口的调用token - 后端自动化场景必须使用客户端凭证流(Client Credentials Flow),基于服务主体身份获取token,不需要用户交互式操作,适合服务常驻调用
- 权限前置要求:用于获取token的服务主体,必须在目标APIM实例所属的资源组或订阅上,分配有API Management服务参与者或对应订阅写权限,否则拿到token后调用接口会返回403无权限。
具体获取操作
前置准备
先在Azure AD中注册应用生成服务主体,记录三个必填参数:
- 租户ID(Tenant ID)
- 应用(客户端)ID(Client ID)
- 客户端密钥(Client Secret,注意密钥过期时间,生产环境建议用客户端证书替代密钥提升安全性)
之后给该服务主体分配对应APIM资源的操作权限。
Token请求方法
Token请求端点格式:https://login.microsoftonline.com/{替换为你的租户ID}/oauth2/v2.0/token
请求规则:
- 请求方法:POST
- 请求头:
Content-Type: application/x-www-form-urlencoded - 请求体为表单格式,必填参数如下:
grant_type:固定传client_credentialsclient_id:你记录的应用客户端IDclient_secret:你创建的客户端密钥scope:固定传https://management.azure.com/.default
请求示例(curl):
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials&client_id=你的客户端ID&client_secret=你的客户端密钥&scope=https://management.azure.com/.default" \ https://login.microsoftonline.com/你的租户ID/oauth2/v2.0/token
返回的JSON响应中,access_token字段就是接口需要的Bearer Token,调用APIM接口时将其放入请求头Authorization: Bearer {access_token}即可正常鉴权。
常见注意事项
- 不要混用Microsoft Graph的访问令牌,两类接口的令牌受众不同,无法通用
- 该token默认有效期为1小时,后端服务需要做token缓存,临近过期时再重新请求,不要每次调用业务接口都申请新token
- 官方文档页"Try It"功能自动生成的token,是基于当前登录用户的交互式授权生成的用户令牌,仅适合临时调试,不能用于生产环境自动化流程。
内容的提问来源于stack exchange,提问作者Daniel M
相关产品推荐
相关产品推荐

