繁体   English   中英

SAS的Azure Blob存储授权

[英]Azure Blob Storage authorization with SAS

我有一个Web应用程序(ASP.NET MVC),该应用程序使用Azure Blob存储来存储文档和图像。 每个用户都有对Blob的特定访问权限,这些权限存储在Web应用程序的数据库中。

当前,我有一个快速的临时解决方案,该解决方案将Web应用程序用作运行授权的中间层,并且如果客户端对blob具有读取访问权限,则首先从Azure检索该内容,然后将其交付给客户端。 当然,出于多种原因,这并不是最佳的方法。

我已经开始使用SAS(共享访问签名)来重建此部分,但是找不到适合建立随用户和文件数量增长而扩展的系统的良好来源。 我期望用户数量大约为100,斑点数量大约为100000。

如我所见,我有两个选择。

1)所有文件都在Web应用程序数据库中存储了一个签名,该签名用于所有有权访问该文件的用户。 这将是一种简单的方法,但是如果用户由于某种原因仍然无法访问该文件,则如果他们具有早期访问的链接,他们仍然可以访问该文件。

2)对于有权访问文件的每个用户,所有文件都有特定的签名。 这将使撤消对文件的访问变得容易,但是签名的数量将是巨大的,这会产生副作用吗?

还有其他选择吗?

任何想法对此表示赞赏!

与其为每个用户提供SAS,不如按角色对文件进行分组并将用户映射到角色,这将很容易进行扩展,与用户数量无关。

建议您不要直接授予用户访问Blob的权限,因为您想通过应用程序分发Blob内容。 因此,可以根据用户角色提供特定于应用程序的访问。

有关生成两分钟SAS且在两分钟后过期的信息,请参阅下面的文章,因此具有链接的用户长时间无法访问映像。

http://www.dotnetcurry.com/windows-azure/901/protect-azure-blob-storage-shared-access-signature

希望这可以帮助。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM