当前位置: 首页 > 知识库问答 >
问题:

在Azure Blob存储中创建用户之间逻辑分隔的最佳方法

杨高翰
2023-03-14

我试图了解云存储如何与Azure Blob存储协同工作。该用例是一个微服务架构,带有几个API和一个前端,用户可以在其中上传、下载和删除Blob。

我有两种类型的Blob,一种是所有用户都可以访问的个人资料图片和资产,另一种是用户拥有的Blob,只有某些用户可以查看/下载(同一公司的用户、网站管理员…)。

我们有三个概念,我正试图弄清楚目的:

  • 存储帐户,那就是我,Azure帐户持有者

上传blob只能使用我的微服务体系结构的前端,因此身份验证将是我想要构建的新服务的服务对服务。

下载blob它将公开一个URL,当用户单击该URL时,我将对照AuthService检查用户是否已登录会话(如果没有,则重定向到登录前端),然后我需要请求用户是否有权下载此blob。

我该怎么做?

我想点击网址,用AuthService检查用户是否登录,下载服务询问用户信息,然后对照blob元数据检查blob的所有权。这需要在上传过程中将信息存储为entity_id、user_id等元数据。我不知道...

共有1个答案

茅高卓
2023-03-14

您是否考虑在前端实现一个应用编程接口/功能,以生成用户应该有权访问的特定Blob的SAS URL?这样,该应用编程接口可以随心所欲地验证用户权限,如果用户的请求签出,您将向他提供SAS URL,该URL将在您选择的时间过期,并且可以在特定Blob上读取/写入/删除(您选择的)。

此外,我强烈建议将存储账户与存储账户分开,存储账户中保存的系统数据完全是系统内部的,存储账户中的blob可供用户访问。这是因为SAS URL确实包含存储帐户DNS,这会使其暴露于DDOS和其他基于DNS的攻击,因此在我看来,您应该将其范围限制为仅允许用户以任何方式访问所需的Blob。

 类似资料:
  • 问题内容: 我的权限记录绑定到我的应用程序中的每个帐户。每个帐户可以具有一个或多个基于帐户类型的权限记录。这是示例: 上面的查询将为其中一个帐户产生这样的数据: 正如您在上方看到的,此帐户已分配了4条记录。访问类型可以是“完全”或“仅查看” 。访问级别可以是州“ S”,城市“ C”或建筑物“ B”。用户一次只能分配一个访问级别,因此,例如,不存在用户可以分配城市和州级别的情况。我的问题是,针对特定

  • 问题内容: 用Java在程序运行之间存储数据的最佳方法是什么?我已经知道您可以使用文本文件并以这种方式存储信息,但是我想知道是否有更好的方法来存储程序在两次运行之间生成的信息。 另外,有什么方法可以确保信息安全?具体来说,我想让最终用户无法访问它。 问题答案: 我想知道是否还有其他方法可以在程序运行之间放置该程序生成的信息? 只需使用即可将其序列化为文件,然后将其取回。 还有什么方法可以确保信息安

  • 问题内容: 我已经在减速器中添加了一些逻辑,我认为应该将其添加到Action中并传递下去? 最好的做法是将此类内容放入动作或减速器中吗? 这里的工作示例。 减速器代码: 问题答案: 减速器必须是纯净的。当前它不是纯净的。它调用依赖于哪个调用,因而不是纯粹的。 这种逻辑(无论是随机生成还是来自用户输入的“生成数据”)都应在动作创建者中使用。动作创建者并不一定要纯粹,并且可以放心使用。该动作创建者将返

  • 我想要的桌子: 更新 谢了!我做了一些关于writetime的实验,因为我无论如何都要写值,所以我只写时间。 这给了我: 简单的基准测试在存储或从更大的表中读取时没有显著的性能差异。

  • 问题内容: 我想在Django中创建多个用户。我想知道哪种方法最好。 还是应该使用.. 还是我必须创建自定义用户模型…这将对创建多种类型的用户非常有用… ?? 问题答案: Django没有多个用户-它只有一个用户,然后根据权限,用户可以执行不同的操作。 因此,首先-django中只有一种用户类型。如果你使用默认的身份验证框架,则从将此用户的模型称为。 如果要自定义django中的用户行为,可以执行

  • 每条链有独立的数据存储文件 每个智能合约都独立的数据存储空间 每个智能合约可以创建多个数据表