从 Azure Blob 存储中的任何身份验证检查中排除 sig querystring 参数

Exclude sig querystring parameter from any auth check in Azure Blob storage

我正在使用 Azure Blob 为 facebook iframe 应用提供静态资产,例如 html、图像、css 和 js。

我正在将该应用程序集成为 odnoklassniki.ru (ok.ru) iframe 应用程序。所以在应用程序配置中,假设我将应用程序 url 设置为指向 index.html.
当我打开应用程序时,iframe 将包含一些 querystring parameters from the social network.

https://****.blob.core.windows.net/****/index.html?web_server=ok.ru&first_start=0&logged_user_id=1234&sig=3688aaa2d712f7a7540681e1234a3039&new_sig=1&...

由于包含的参数之一是sig,并且与shared blobs authentication的签名冲突,将返回以下错误:

<Error>
  <Code>AuthenticationFailed</Code>
  <Message>
    Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. RequestId:aabaf862-0001-0009-58a4-91b035000000 Time:2015-05-18T19:57:59.5979366Z
  </Message>
  <AuthenticationErrorDetail>sr is mandatory. Cannot be empty</AuthenticationErrorDetail>
</Error>

是否有任何解决方法或 azure 配置来避免此错误?

您无法更改 blob 存储的工作方式或其使用的查询字符串参数。您必须从正在使用的社交网络更改正在使用的参数。或者对从社交网络接收到的查询字符串内容进行编码,或者将其从查询字符串中完全删除并将其移动到其他地方(到其他商店)。或者其他解决方案。但底线是:您不能更改 Azure blob 存储以忽略 sig.

等参数