从浏览器jquery ajax rest呼叫连接到Azure批处理服务



我可以访问带有帐户名称和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已满 详细信息,包括如何构造签名字符串。

最新更新