Azure 应用服务被存储帐户拒绝并出现 403 错误

Azure App Service rejected with 403 error by Storage Account

我们的应用服务器被存储账户拒绝。

我们生成了正确的SAS令牌,我们可以访问本地的容器。 (docker, intelliJ, 邮递员)

我们尝试调用 Blob 服务。

当应用程序 运行 在 Azure 服务器上运行时,我们收到一条错误消息。

com.azure.storage.blob.models.BlobStorageException at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance

If you are using a SAS token, and the server returned an error message that says 'Signature did not match', you can compare the string to sign with the one generated by the SDK. To log the string to sign, pass in the context key value pair 'Azure-Storage-Log-String-To-Sign': true to the appropriate generateSas method call.
Please remember to disable 'Azure-Storage-Log-String-To-Sign' before going to production as this string can potentially contain PII.
Status code 403, "<?xml version="1.0" encoding="utf-8"?><Error><Code>AuthorizationFailure</Code><Message>This request is not authorized to perform this operation.
RequestId:959d813f-601e-0057-262f-4351a4000000
Time:2021-05-07T10:53:45.0157340Z</Message></Error>"

Update
https://i.stack.imgur.com/Hs2Cf.png

更新

我们将时区设置为UTC-0。 它解决了我们的问题。在 UTC-0 时区发球 运行。

您应该检查两件事:

  1. 如何获得此 SAS 令牌。
  2. 您是否在本地和远程之间使用了不同的容器。

正如你所说,你在本地可以成功使用它,那么你可以尝试调试你的代码来获取sas uri值,并通过浏览器直接访问它。

最后,如果没有帮助,您可以尝试 generate the SAS token from portal,并将 sas 令牌硬编码到您的代码中。

我们将时区设置为 UTC-0。它解决了我们的问题。 UTC-0 时区的服务运行。