我有一个使用Azure Blob存储来存储文档和图像的Web应用程序(ASP.NET MVC)。每个用户都有对blob的特定访问权限,并且此 存储在Web应用程序的数据库中。使用SAS的Azure Blob存储授权
目前我有一个快速的临时解决方案,它使用Web应用程序作为运行授权的中间层,并且如果客户端具有读取BLOB的权限, 它首先从Azure中检索,然后交付给客户端。这当然不是由于许多原因而进行的最佳方式。
我已经开始使用SAS(共享访问签名)重建此部分,但无法找到设置系统的良好来源,该系统可随着用户和文件数量的增长而很好地扩展。我期待的用户数量约为100个,斑点数量约为100000.
正如我所看到的,我有两个选择。
1)所有文件都有一个存储在Web应用程序数据库中的签名,这用于所有有权访问该文件的用户。这将是简单的方法, 但是,如果用户由于某种原因不能访问文件,他们仍然可以访问文件,如果他们有早期访问的链接。
2)对于每个有权访问该文件的用户,所有文件都有特定的签名。这将使撤销对文件的访问变得容易,但签名的数量将会很大,并且会产生任何副作用吗?
还有其他选择吗?
对此的任何想法都非常感谢!
是否有一个原因,你没有考虑创建SAS和当它需要? –
我想你的意思是SAS将被生成并添加到传递给客户端的HTML中的URL中?这当然是一种选择,但对于图像,它们将以缩略图(也存储在Azure Blob存储中)列出,所以如果我在页面上有20个图像,这意味着要在Azure之前生成20个往返才能生成签名渲染。对? – moccasine
您可以参考我的答案:http://stackoverflow.com/questions/39431608/limiting-account-sas-permission-to-specific-files-in-azure-storage/39432023#39432023 –