允许访问 Azure 存储节点以选择用户?

Posted

技术标签:

【中文标题】允许访问 Azure 存储节点以选择用户?【英文标题】:Allowing access to Azure Storage nodes to select users? 【发布时间】:2010-12-30 05:48:57 【问题描述】:

给定 Azure 存储上的存储文件(blob、表或队列——无关紧要),是否可以允许所有人访问它,但仅基于权限?

例如,我有大量图像存储,以及包含用户和授权的数据库。我希望用户 X 只能访问图像 Y 和 Z。因此,除非您提供某种临时安全令牌,否则 URL 通常无法访问。这怎么可能? 我知道我可以从外部世界关闭存储,并且只允许通过检查这些内容的应用程序访问它,但这需要应用程序也在 Azure 上,并且本地应用程序将无法交付Azure 存储中的任何内容。

据我了解,大多数 CDN 都提供了这样的能力,我当然希望 Azure 也为此提供解决方案!

伊塔马尔。

【问题讨论】:

【参考方案1】:

我认为您无法实现这种级别的访问过滤。这篇 msdn 文章中描述了我所知道的唯一方法

Managing Access to Containers and Blobs

这里有一个博客,描述了一小部分代码来实现它

Using Container-Level Access Policies in Windows Azure Storage

我不确定这是否符合您的需要。如果我理解正确,我会这样做: 1.将您的内容组织在与角色匹配的容器中 2. 在您的本地应用程序中检查用户是否有权访问,如果是,则生成正确的 URL 以让他临时访问资源。

当然,这只有在用户必须通过一个中心点才能访问 blob 中的内容时才有效。如果他们为生成的链接添加书签,一旦过期日期就会失效。

祝你好运。

【讨论】:

【参考方案2】:

这实际上可以通过 Blob 存储来实现。考虑 (a) 类似于资源管理器的 UI,以及 (b) 用户已经过身份验证(可以使用访问控制服务,但不需要)。

类似于资源管理器的 UI 可以公开适合经过身份验证的用户的资源。对这些资源的底层访问将以适合对象的粒度由共享访问签名控制 - 例如,限制仅查看文件夹中的一个文件或整个文件夹,或在文件夹中创建文件的能力等。 , 都可以表达。

这个类似于资源管理器的 UI,但需要访问为给定用户呈现正确文件的逻辑,同时还需要根据需要创建适当的共享访问签名。请注意,此逻辑不需要托管在 Azure 中,而只需要访问正确的存储密钥(从 Azure 门户)。

【讨论】:

以上是关于允许访问 Azure 存储节点以选择用户?的主要内容,如果未能解决你的问题,请参考以下文章

PrimeNG 树 - 以编程方式选择 TreeNode

Azure Databricks:访问防火墙后面的 Blob 存储

安全访问 Microsoft Azure Blob 存储

Azure 函数访问存储帐户

资讯微软(Microsoft)携手IPFS IPFS/FIL实现财富人生

Active Directory 从浏览器访问 Azure 存储