我们正在开发一个应用程序,用户可以在其中登录并保存文件。他还可以与要为其提供访问权限的其他用户共享一些文件。现在的问题是如何管理特定于用户的Blob级访问。
让我用一个简单的场景来说明:
有2个用户A和B登录到我们的应用程序。我正在为每个用户创建一个容器来存储用户的文件。现在,用户A想要与用户B共享一些文件。我可以使用SAS令牌来完成此操作,但是问题是,如果用户C获得此URL,他还可以看到内容。
请让我们知道处理这种情况的最佳方法。
答案 0 :(得分:0)
如果用户A和B都绑定到Azure AD,则可以使用Azure AD based authentication for Azure Blob and Queue Service
。
我还没有亲自尝试过,但是据我了解,您为用户分配了Blob Reader Role
并授予他们对Blob容器的权限,而该用户将能够从该容器读取Blob。 / p>
如果我理解正确,则只希望用户A与用户B共享某些Blob。在这种情况下,您可以创建另一个Blob容器,用户A将在其中复制她/他想与用户B共享的文件,然后授予访问权限到该容器上的用户B(假设用户B具有Blob阅读器角色)。
答案 1 :(得分:0)
针对上述情况的最佳解决方案是使用 AAD / Rbac 指定仅对用户A和B的访问权限。
不幸的是,SAS 不是特定于用户的,这意味着,如果任何人都可以掌握它,只要它尚未过期,他们就可以重复使用它。为提高安全性而添加的内容是:允许的IP地址,以限制仅对用户B的访问。