为什么 Google 在他们自己的文档中不推荐 Google Firebase 用于多租户应用程序?

问题描述

Firebase 最佳实践文档中有一条关于将 Firebase 用于多租户应用程序的警告:https://firebase.google.com/docs/projects/learn-more#multi-tenancy

这是我最关心的:“多租户可能会导致严重的配置和数据隐私问题,包括分析聚合、共享身份验证、过于复杂的数据库结构以及安全规则困难等意外问题。”

还有大量 Google 官方文档支持使用 Firebase 进行多租户,例如:https://cloud.google.com/identity-platform/docs/multi-tenancy-authentication

你知道为什么他们会有这些相互矛盾的建议和例子吗?使用 Google Identity Platform 是否可以修复警告中提到的核心安全缺陷?

我正在重新发布这个问题,并在标题中进行了额外的澄清,并对正文进行了一些编辑/删除,以说明我只是在寻找为什么这个广泛使用的产品在其官方文档中有这个特殊警告。我已经删除了大部分主观内容。我对此没有任何意见,这与问题有关 - 我只是想了解警告。在上一个问题结束之前似乎有一个很好的答案,所以我将其链接到这里以供参考:Why is Google Firebase not recommended by Google in their own documentation for multi-tenant applications?

解决方法

如果您管理 2 个彼此没有关系的独立应用程序,这确实有意义。假设您有一个管理学校信息的应用程序,另一个是餐厅管理应用程序。现在,在这种情况下,我没有看到学校应用可能需要访问餐厅数据的任何事件。

如果您使用同一个项目,那么所有 firebase 服务(身份验证、数据库、分析等)都将在它们之间共享。您很难为每个应用程序单独分析。由于数据库是共享的,您必须通过分隔 db 中的路径来明确分隔两个应用程序的数据。 (/apps/school 表示学校,/apps/restaurant 表示餐厅)。

话虽如此,在学校应用程序上注册的任何用户都可以登录餐厅应用程序,而无需在那里创建新帐户,因为您在他们之间共享同一个项目。

现在,如果您的客户每月向您支付 Firebase 费用,您就无法区分学校客户应该支付多少费用。现在,即使这两个应用都是您的,如果您继续使用它,复杂性也会显着增加。

https://firebase.google.com/docs/projects/learn-more#multi-tenancy https://cloud.google.com/identity-platform/docs/multi-tenancy-authentication 解释了“Google Identity Kit”多租户身份验证。所以这不仅仅是 Firebase 的事情。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...