我们正在以天蓝色创建多租户应用程序,该应用程序必须在用户/租户之间隔离数据。
每个租户将上载/保存各种文档(主要是excel和csv文件),然后可以在应用程序中使用/检索这些文档作为输入文件,以进行一系列计算。
我想象这样的结构:
+ users/
|-+ {uid}/
| | — profile_picture.jpg
| |-+ input_data/
| | | — {input_data_id}.xlsx
在使用Firebase安全规则的Cloud Storage中,我们可以使用以下规则来保护谁可以对存储在不同路径中的对象执行哪些操作。
rules_version = "2";
service firebase.storage {
match /b/{bucket}/o {
match /users/{userId}/input_data/{input_data_id} {
allow get: if request.auth.uid == userId ||
allow list, write: if request.auth.uid == userId;
}
}
}
Azure中是否有等效资源可以执行类似Firestore的工作;
我在2015年发现了一个类似问题的问题/答案,并且想知道答案是否仍然有意义,或者现在是否有更好的选择
Most effective way to manage multiple tenant storage in Azure?
The article您发现仍然适用。在Azure中,没有针对此类场景的内置安全规则(如Firebase规则)。因此,您需要自己实施授权。核心思想是为每个租户创建Blob容器,容器名称可以是租户ID,并构建代理API以代表用户获取文件。