【问题标题】:Validate Firebase with rules when data is written by firebase-admin当 firebase-admin 写入数据时,使用规则验证 Firebase
【发布时间】:2018-11-12 11:22:54
【问题描述】:

据我了解,admin.initializeApp() 使用的默认帐户具有编辑权限,这似乎无视所有验证和权限规则

我错过了什么吗?在写入 Firebase 时,让默认服务帐户(即写入 Firebase 的服务器进程)完全绕过规则似乎是没有意义的。特别是因为这是示例和文档中记录的方式,并且规则模拟器给出零指示这些规则将不会在某些帐户上强制执行

我的上下文是一个将某些内容推回 Firebase 的云函数,我希望能够使用 .validate 对其进行验证

【问题讨论】:

  • 我刚刚花了最后 30 分钟浏览我的规则并试图弄清楚为什么他们没有验证我的数据,直到我最终假设 admin-sdk 可能会绕过验证。这需要在 google 文档中得到更多关注!

标签: node.js firebase google-cloud-firestore firebase-admin


【解决方案1】:

您已经发现 Firebase Admin SDK 以管理权限运行,从而绕过所有安全规则。来自documentation on getting started with the Firebase Admin SDK

Admin SDK 可让您在特权环境中与 Firebase 交互以执行以下操作:

  • 以完全管理员权限读写实时数据库数据。

这里的逻辑是,您使用 Admin SDK 的代码在受信任的环境中运行,您可以相信代码是您编写的,因此可以按照您的规范运行。

目前无法在执行安全规则的同时使用 Admin SDK。我建议你file a feature request

请注意,您想要 可以使用实时数据库实现,如Authenticate with limited privileges 所示。

对于 Firestore,您可以在 Cloud Identity and Access Management 控制台中控制部分访问权限。请参阅documentation on securing your data

【讨论】:

  • 感谢您提供详细信息/链接。我想我想确保我理解正确。将进一步研究有限的特权身份验证
  • 请做,让我知道你的发现。当我浏览文档时,我不再确定什么是可能的,因此链接的数量。如果可以通过某种方式限制来自 Admin SDK 的 Firestore 访问,我很想听听,因为实时数据库已经可以。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 1970-01-01
  • 2019-10-11
  • 2018-01-17
  • 2021-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多