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

凭据正确时Azure Log Analytics API返回InvalidAuthorization错误如何处理

Azure Log Analytics API InvalidAuthorization 错误排查方案

报错信息:{"Error":"InvalidAuthorization","Message":"An invalid signature was specified in the Authorization header"}

在确认Authorization头部的SharedKey格式符合要求的前提下,按以下步骤定位问题:

1. 校验签名原始字符串构造规范

  • 签名字符串必须严格遵循以下顺序拼接,所有\n换行符不能遗漏,空字段也要保留占位:
    • 请求方法(POST/GET) + "\n" + Content-MD5值 + "\n" + Content-Type值 + "\n" + x-ms-date头值 + "\n" + /api/logs
  • x-ms-date头部必须为UTC时间,格式遵循RFC1123规范(示例:Wed, 21 Aug 2024 12:00:00 GMT),本地时间和UTC时间的误差不能超过15分钟,否则会直接判定签名无效。

2. 校验密钥准确性

  • 确认使用的是Log Analytics对应工作区的主密钥/辅助密钥,不要混用Azure AD令牌、其他Azure服务的访问密钥。
  • 密钥从Azure门户复制时不要带入多余的空格、换行符,建议直接从工作区「代理管理」页面复制完整密钥字符串。

3. 校验请求头和签名内容一致性

  • 携带请求体的POST请求必须计算请求体的MD5值填入Content-MD5头部,Content-Type取值必须和签名里的Content-Type字段完全一致,常用取值为application/json。
  • 无请求体的GET请求,签名中的Content-MD5、Content-Type字段要留空,请求头也不要传入这两个参数。

4. 校验请求地址与路径

  • 签名中的资源路径必须固定为/api/logs,不要拼接查询参数。
  • 完整请求地址格式为https://<你的工作区ID>.ods.opinsights.azure.com/api/logs?api-version=2016-04-01,api-version参数必须为2016-04-01,版本号错误会触发签名校验失败。

5. 校验签名加密逻辑

签名生成必须严格遵循以下流程,任意一步错误都会导致签名无效:

  1. 将拼接好的签名原始字符串用UTF-8编码
  2. 把从Azure门户获取的工作区密钥做Base64解码,得到加密密钥字节数组
  3. 用HMAC-SHA256算法,以上一步的密钥加密UTF-8编码后的签名字符串
  4. 将加密后的结果做Base64编码,得到最终签名字段
  5. 拼接Authorization头部:Authorization: SharedKey <工作区ID>:<最终签名字段>

内容的提问来源于stack exchange,提问作者Savvas Dalkitsis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:36:03