【发布时间】:2018-04-27 17:03:39
【问题描述】:
我正在尝试弄清楚如何为多租户(具有多个客户的企业应用程序)创建不同的角色和权限。例如,我们的应用程序有 customerA 和 customerB,每个客户都有自己的用户(customerAUser1、customerAUser2 等)并具有自己的不同角色,如“Admins”、“Managers”、“associates”、“contractors”等。这些角色每个客户都不同。他们的管理员决定他们想要担任的角色。
所以说 customerA 的管理员注册并说他们的公司名称为“customerA”。
然后管理员在 UI 中创建“经理”角色并允许访问设置中的“人员”部分(假设设置中有多个选项卡)。然后创建“承包商”,使其无法访问“设置”中的任何位置。
然后管理员从 excel 文件中导入所有用户。
excel 文件将如下所示:
name, email, phone, role
john,jo@customerA.com,123456,manager
jane,jane@customerA.com,123456,contractor
同样,客户 B 的管理员 B 注册了他的公司并创建了自己的一套规则。
现在,每次用户登录时,我们都需要确保数据不会泄露客户 A 和客户 B。所以数据库中的每个集合都需要有“customerId”之类的。此外,我们需要检查人们是否可以根据他们的“角色”访问某些集合。
在 Firestore DB 中解决此问题的最佳方法是什么?
【问题讨论】:
-
这是一个很好的问题。在你深入了解这个项目之前。我强烈建议您直接与 Firebase 联系,以获取有关使用 Firebase 的多租户应用程序的一些反馈 - 它可以做到,但需要权衡取舍;即使使用 Firestore;询问有关创建独立规则、管理员创建用户等的问题。您甚至可能想前往他们的 google 群组部分进行更多讨论。
-
我尝试联系他们的支持,但他们给了我一个模糊的答案
-
包括来自 Firebase 的 @FrankvanPuffelen。唔。他们在支持方面做得很好。作为 Firebase 的粉丝,我发现一般来说,Firebase 不是某些多租户应用程序的解决方案 - 特别是那些有不同规则集(正如您在问题中提到的)、完全独立的数据集以及拥有管理员的应用程序可以创建其他用户帐户的用户概念 同样,Firebase 很棒,并且可以使用 Firestore 完成多租户应用程序,但在深入研究之前需要考虑许多权衡。
标签: firebase google-cloud-firestore