【问题标题】:Restrict access to static website hosted on azure storage to intended users限制目标用户访问托管在 Azure 存储上的静态网站
【发布时间】:2019-06-18 08:01:50
【问题描述】:

我使用静态网站功能在 Azure 存储中托管了一个简单的网站。该网站的网址现已公开。 (任何有 url 的人都可以访问该网站)。但我的意图是只向我想要的用户提供访问权限。有没有办法可以限制对 Azure 存储中托管的静态网站的公开访问?

【问题讨论】:

  • 也许,如果您愿意,您可以使用防火墙限制对存储帐户的访问。docs.microsoft.com/en-us/azure/storage/common/… 但这种方式不能限制真实用户仅来自该用户的网络访问。
  • @NancyXiong 我的目的是让使用我开发的其他应用程序的用户可以使用静态网站,并且只有该应用程序的用户应该能够访问这个静态网站。例如,我想将文档托管在静态网站中,并提供给注册使用我的应用程序的用户。我打算将文档设为私有。
  • @Takhi 你找到解决这个问题的方法了吗?我也有同样的情况。
  • @Cornel 我们使用了另一种方式来发布文档,我没有进一步调查
  • 我知道这是一篇旧帖子,刚刚发现下面的链接似乎解决了问题docs.microsoft.com/en-us/answers/questions/149991/…

标签: azure authentication azure-storage azure-blob-storage


【解决方案1】:

静态网站托管使文件可供匿名访问。如果需要控制谁可以访问文件,可以将文件存储在 Azure blob 存储中,然后生成Using shared access signatures (SAS) 限制访问。

交付给客户端的页面中的链接必须指定资源的完整 URL。如果资源受代客密钥保护,例如共享访问签名,则此签名必须包含在 URL 中。 https://docs.microsoft.com/en-us/azure/architecture/patterns/static-content-hosting

您可以尝试配置 CDN 端点以通过 SAS 令牌访问私有 Blob 容器(不要使用静态网站功能,因为该端点是完全公开的)。 Azure CDN 原生支持这种情况——在最坏的情况下,您可以编写重写规则以将请求重定向到带有 SAS 令牌的 Blob 端点。

Using Azure CDN with SAS

【讨论】:

    【解决方案2】:

    您可以使用SAS(共享访问签名)

    • 您可以将静态网站中的 blob 保留为私有访问(只有 blob 所有者可以使用存储帐户密钥访问)
    • 然后,您可以使用简单的服务来验证和授权您的客户端(如果有很多),并为他们生成 SAS 令牌以访问 blob(网页)。该服务还可以为他们续订令牌。
    • 如果人数有限,您可以生成 SAS 并简单地与客户共享链接。

    您可以在 blob(网页)的粒度上执行此操作,以便您可以授权一些人阅读某些页面,而他们不能阅读其他人......等等。

    【讨论】:

    • 谢谢萨赫。我尝试阅读有关 SAS 令牌的信息,但对如何使用它感到困惑/无知。我是这个领域的初学者。您能否提供工作演示的参考或有关如何实现它的任何有用参考?因此,当用户尝试访问该链接时,例如:https://.z1.web.core.windows.net/ 只有我打算访问的用户必须访问主页,而其他用户不应访问。
    猜你喜欢
    • 2020-12-23
    • 2021-05-05
    • 2019-09-19
    • 2021-08-06
    • 2016-08-15
    • 2012-12-26
    • 2022-01-02
    • 1970-01-01
    • 2018-02-22
    相关资源
    最近更新 更多