gpt4 book ai didi

azure - 使用 Azure B2C 保护 BLOB 存储中的 Assets

转载 作者:行者123 更新时间:2023-12-05 08:07:05 24 4
gpt4 key购买 nike

我有一个 Web 应用程序 (asp.net core),它使用 Azure B2C 对用户帐户 (OIDC) 进行身份验证。我现在希望允许用户访问“ protected 资源”,例如图像等。我的计划是将这些资源放入 Azure blob 存储中,但我需要保护这些资源,以便只有授权用户才能访问他们自己的图像。我不希望出现这样的情况:知道文件 URL 的任何人都可以访问该文件,只有登录用户才能访问该文件。Azure B2C 和 Blob 存储是否可以实现这一点?如果可以,保护这些内容的最佳方法是什么?

我正在考虑为每个用户创建一个容器,并将其 B2C 对象 ID 作为容器名称,因此结构可能如下所示:

Files/04aaffcc-c725-4ff5-9565-cc2fb3d7b4df/image1.jpg
Files/04aaffcc-c725-4ff5-9565-cc2fb3d7b4df/image2.jpg
Files/04aaffcc-c725-4ff5-9565-cc2fb3d7b4df/movie1.mp4
Files/81f052a1-c8c2-4db5-9872-c16c803d1c3f/image66.jpg
Files/81f052a1-c8c2-4db5-9872-c16c803d1c3f/movie-19.mp4

所以我需要限制访问,以便只有具有正确对象 ID 的登录用户(例如 81f052a1-c8c2-4db5-9872-c16c803d1c3f)才能访问自己的资源(例如 image66.jpg)

关于如何最好地实现这一点以及 Azure 支持哪些构造有什么想法吗?

谢谢

最佳答案

我假设用户无法直接访问 blob 存储文件。存储应该由您的服务抽象,因为存储和实现可以随时更改。

我还会在 objectId 容器内有另一个文件夹(名为 images),因为将来可能会有不同类型的文件。

然后假设服务托管在http://contoso.com上。用户提供的图像 URL 将为 http://contoso.com/userImages/image123.jpg

当有人尝试访问资源时,我会从 token 中读取 objectId 并相应地授予访问权限。

您还应该考虑共享场景,您需要为谁拥有资源以及与谁共享资源建立另一个表。基于 ObjectId 的容器在这种情况下没有用,它可能是一个以图像名称作为 guid 的平面容器。然后将图像名称映射到文件名和其他属性。

关于azure - 使用 Azure B2C 保护 BLOB 存储中的 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57498924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com