是否可以在Azure存储blob或容器上设置持久权限?

时间:2012-06-26 19:06:25

标签: azure permissions azure-storage azure-storage-blobs

我已经使用.NET一段时间了,但我现在才刚刚过渡到Azure。

作为我的第一个云项目的一部分,我有一个多用户文档场景。文档将存储为BLOB,每个用户都需要访问自己的文档,但没有其他人可以访问。此外,还有更高级别的组(管理员)可以访问所有文档。所有用户都将通过身份验证。

我的问题是:有没有办法将允许的用户列表直接附加到BLOB,还是需要将其存储在其他位置(在表存储或数据库中)?我已经找到了大量关于如何通过共享访问签名授予临时客户端访问权限的文档,但没有关于更永久的“文件”权限的文档。

3 个答案:

答案 0 :(得分:1)

如果要在blob上提供访问控制,最好的选择是使用ACS和DB。您可以为特定用户提供文件访问权限,并将这些访问权限保存到DB中。这可以用作您请求的持久权限。

您可以看一下BlobShare Sample是一个简单的文件共享应用程序,它演示了Windows Azure平台的存储服务,以及访问控制服务(ACS)的身份验证和授权功能。

http://blobshare.codeplex.com/

答案 1 :(得分:0)

Blob没有内置的每用户访问控制。使用私有blob时,blob存储API服务只有一种安全机制:帐户密钥(主密钥或辅助密钥都相同)。共享访问签名实际上只是一种通过URL提供临时访问的方式。如果您在Web或业务层中执行所有用户级授权,则该层可以直接访问blob并将其直接返回给用户(通过IIS,tomcat,Web服务或您选择的任何其他机制)。 / p>

由于Windows Azure存储没有ACS机制,因此您需要使用与您在应用中使用的任何其他用户级访问类似的方案。

答案 2 :(得分:0)

您可以利用共享访问签名。有关共享访问签名的更多详细信息,请访问

http://msdn.microsoft.com/en-us/library/windowsazure/ee395415.aspx 问候, 维杰。