You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Azure APIM REST API创建用户时遇AuthenticationFailedInvalidHeader错误

排查Azure APIM REST API创建用户的认证头格式错误问题

核心问题定位

你遇到的AuthenticationFailedInvalidHeader错误,直接原因是Authorization请求头的格式不符合Azure管理API的要求。

具体修正步骤

1. 修正SharedAccessSignature的头格式

Azure管理API接受的共享访问签名(SAS)头有严格格式要求,正确格式必须包含完整的键值对参数:

Authorization: SharedAccessSignature sr=<资源URI>&sig=<签名>&se=<过期时间>&skn=<密钥名称>

你当前的头Authorization SharedAccessSignature integration&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==缺少了参数前缀(比如sr=、sig=、skn=),且参数拼接方式不符合规范,属于格式错误。

2. 生成合规的SAS令牌

确保生成的SAS令牌包含以下必填组件:

  • sr:目标资源的URI(需URL编码,比如你的APIM服务资源ID:/subscriptions/7xxx/resourceGroups/xxx/providers/Microsoft.ApiManagement/service/wbgintapim)
  • sig:用访问密钥生成的HMAC-SHA256签名
  • se:令牌过期时间的Unix时间戳(单位:秒)
  • skn:你获取的访问密钥对应的密钥名称(比如你提到的integration)

3. 验证请求头语法细节

  • Authorization与SharedAccessSignature之间只能有一个空格
  • 每个参数用&分隔,且必须是键=值的格式(不能直接写integration&xxx,要写成skn=integration&sig=xxx)

示例正确请求头

假设生成的SAS参数完整,正确的Authorization头类似:

Authorization: SharedAccessSignature sr=https%3A%2F%2Fmanagement.azure.com%2Fsubscriptions%2F7xxx%2FresourceGroups%2Fxxx%2Fproviders%2FMicrosoft.ApiManagement%2Fservice%2Fwbgintapim&sig=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==&se=1718000000&skn=integration

额外检查项

  • 确认使用的密钥是APIM服务的管理访问密钥(在APIM资源的「访问密钥」页面获取,不是订阅的服务主体密钥)
  • 验证SAS令牌的过期时间是否未失效
  • 确保请求URI的资源路径与SAS的sr参数完全匹配,避免权限范围不匹配

内容的提问来源于stack exchange,提问作者kushma gonna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 18:33:17