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

Dav*_*vid 3 multi-tenant firebase google-cloud-platform firebase-authentication google-identity

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 是否可以修复警告中提到的核心安全缺陷?

我重新发布这个问题,在标题中进行了额外的说明,并对正文进行了一些编辑/删除,以表明我只是在寻找为什么这个广泛使用的产品在其官方文档中具有此特定警告。我已经删除了大部分主观内容。我对此没有与问题相关的意见 - 我只是想理解这个警告。在上一个问题结束之前似乎有一个很好的答案,所以我将其链接到此处以供参考:为什么 Google 在他们自己的多租户应用程序文档中不推荐 Google Firebase?

Dha*_*raj 5

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

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

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

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

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

  • @David,如果该应用程序是管理多个学校(或您提到的组织)的应用程序,那么将其作为单个项目是有意义的,因为当用户登录时,您将仅显示与他们相关的信息。此外,数据库结构将始终保持统一,因为一切都是学校而不是餐厅。这就像用户创建服务器的 Discord。所有服务器都是相同的,并且在单个数据库中进行管理。 (4认同)