防止直接访问 Azure 文件,除非通过 Ember 应用程序

Prevent direct access to Azure file except through Ember Application

我需要阻止访问我的应用程序可以显示的文件。我们在 Node 上 运行 一个 Ember.js(还不是 Ember-cli),文件是通过 Ember 模型检索的。通过我们的应用程序上传的文件本身存储在 Azure Blob 存储中,我们的应用程序通过 Azure 托管。

Azure Blob 似乎有访问控制,但我认为所有教程都是针对 .NET 的,目前我无法像 http://www.dotnetcurry.com/windows-azure/901/protect-azure-blob-storage-shared-access-signature 等教程那样将过程一对一映射好像用的是SDK。

因此,例如,我需要提供一个 link 来访问 .pdf 文件。我正在使用 ember 操作在新选项卡中打开它,但选项卡的 url 显示为:

"https://myapplication.blob.core.windows.net/containing-folder/sensitiveFile.pdf"

如果我将其复制并粘贴到另一个 window 或另一个选项卡,我可以轻松访问它。

基于此,我有几个问题:

  1. 除了我们的应用程序之外,我可以限制对该文件的访问吗?如果是这样,是只能通过 .NET 实现还是有 javascript 等价物?我该怎么做呢?
  2. 是否有更广泛的方法来显示文件,但限制对 url 的访问?到目前为止我能看到的最接近的事情是在新的 window 中打开它并隐藏地址栏,但这使得它危险地接近弹出窗口 + 你可以轻松地检索这个 url。

我说得太快了。我发现了一个带有共享访问密钥的教程 re: Node.js 我似乎第一次错过了。

https://azure.microsoft.com/en-us/documentation/articles/storage-nodejs-how-to-use-blob-storage/#work-with-shared-access-signatures