我可以访问带有帐户名称和base64身份验证密钥的Azure批处理服务。一位同事写了一项批处理服务,该服务可以检索文件,对其进行处理并将其返回到指定的位置。这些文件存储在SharePoint库中,批处理服务正常。我们想做的是从浏览器中,在jQuery/ajax中设置AJAX调用,以正确创建正确的标题和正确的身份验证信息以执行此请求。我找到了一些文档,但是没有可行的真实示例,因为我主要出现错误:
HTTP请求中发现的MAC签名与任何计算的签名不同。
它显示了创建钥匙的用途,所以我认为我会做同样的事情,但它仍然无法正常工作,我会遇到相同的错误。
很高兴批处理服务部分运作良好。
关于错误消息:"The MAC signature found in the HTTP request is not the same as any computed signature."
必须对存储服务提出的每个请求进行身份验证,在这种情况下,它与Azure存储的身份验证有关。
-
您可能想仔细获取您正在形成的
url
。 -
关键文档在此处:https://learn.microsoft.com/en-us/rest/rest/api/storageservices/authentication-for-the--azure-storage-services?/li>
另外,请查看过去发生的类似问题:
- HTTP请求中找到的MAC签名'...'与任何计算的签名 不同
c#azure rest api:mac签名[...]与任何计算的签名
不同https://social.msdn.microsoft.com/forums/azure/en-us/ee551d65-ecd6-ecd6-ecd6-4e6c-9da9-a412f98b7c8b/blob-rob-rob-Rest-authentication-authentication-authentication-authentical-authentication-authentication-authentication-authentication-exampless?forum=WindowSazazazazazazazazazazazazazazazuretataa
- HTTP请求中发现的MAC签名与任何计算的签名 不同
Azure存储的身份验证不仅仅是提供的问题 访问密钥(这不是很安全)。您需要创建一个 表示给定请求的签名字符串,签名字符串 使用HMAC-SHA256算法(使用存储密钥签名),然后 编码基础64中的结果。请参阅 https://msdn.microsoft.com/en-us/library/azure/dd179428.aspx已满 详细信息,包括如何构造签名字符串。