【发布时间】:2019-11-08 12:05:00
【问题描述】:
我们正在尝试在不使用 Azure SDK 的情况下从 azure blob 存储访问 blob,
我们正在尝试通过 Azure REST API 通过共享密钥进行访问,为此我们需要生成授权标头,但是当我尝试从访问密钥创建签名时出现以下错误
“服务器未能验证请求。请确保 Authorization 标头的值格式正确,包括签名。”
“在 HTTP 请求 'key hash' 中找到的 MAC 签名与任何计算的签名都不相同”
需要帮助生成正确的授权标头,我们已按照文档进行操作
https://docs.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key
我们也在邮递员中尝试过,但我们得到了同样的错误。
string signWithAccountKey(string stringToSign, string accountKey)
{
var hmacsha = new System.Security.Cryptography.HMACSHA256();
hmacsha.Key = Convert.FromBase64String(accountKey);
var signature = hmacsha.ComputeHash(Encoding.UTF8.GetBytes(stringToSign));
return Convert.ToBase64String(signature);
}
在 HTTP 请求“密钥哈希”中找到的 MAC 签名与任何计算的签名都不相同
【问题讨论】:
-
请编辑您的问题分享完整代码。还请告诉我们您尝试执行的 REST API 操作。您在计算
stringToSign时很可能做错了什么。 -
你好 Naik,你能按照答案解决你的问题吗?如果已解决,请帮助将其标记为答案?谢谢。关注此guide 了解如何标记。
标签: azure azure-storage azure-blob-storage