Azure Blob 存储文件访问

Azure Blob Storage file access

A​​zure Blob 存储中是否有一种配置可以让您 link 到单个文件(或者可以让您 link 到 Azure 门户界面中特定 'folder' 的配置) ,但如果查看者尚未登录,则将他们重定向到登录屏幕?

我还不是很熟悉 Azure Blob 存储,但我看到了一个 'anonymous' 访问选项,这不是我想要的(我希望他们需要登录并拥有适当的该容器的权限),我看到了 SAS 的选项(这不是我想要的,因为它授予任何拥有 link 访问权限且有时间限制的人)

https://docs.microsoft.com/en-us/answers/questions/435869/require-login-when-accessing-blob-storage-url.html

这个 link 似乎在问同样的问题,并且响应说了一些关于 'role-based authentication' - 我得到了向用户添加角色并使用这些角色作为授权的概念,但即使作为 blob 容器的所有者,我似乎不能只 link 到 myservice.blob.core.windows.net/container/myfile.jpg 并在不附加 SAS 密钥的情况下下载它。

也没有办法从 link 到 myservice.blob.core.windows。net/container/myfolder 并让它对它们进行身份验证,然后将它们带入 UI 中的 'directory'。

如果容器的访问级别设置为public匿名,我们可以直接在浏览器中访问Blob Uri来访问blob。

如果容器的访问级别设置为私有,则在浏览器中打开 Blob Uri 不会将用户重定向到登录屏幕。相反,它会给出 ResourceNotFound 错误。

即使在 blob 存储的角色分配中分配了正确的角色,如果不附加 SAS 令牌,我们仍然无法从浏览器访问 Blob Uri。因为,在浏览器中直接打开 Blob Uri 不会触发 OAuth 流程。

尽管无法从浏览器访问 blob Uri 并下载文件,但还有其他方法可以完成此操作。

我们可以使用 Azure CLI、PowerShell 和 Rest API 与经过身份验证的用户一起访问 blob 数据。

如果你想从浏览器访问blob数据,我们可以使用function app。我们可以启用函数应用程序进行身份验证。然后通过身份验证的用户可以通过函数应用程序访问 blob 数据。

参考: