在客户端级别(而非最终用户级别)保护 Firebase REST API
Posted
技术标签:
【中文标题】在客户端级别(而非最终用户级别)保护 Firebase REST API【英文标题】:Secure Firebase REST APIs at a client level (not end user level) 【发布时间】:2021-08-19 23:14:29 【问题描述】:我正在尝试创建一个 REST API(通过 Firebase 云函数)并将其发布给我的客户,以便他们创建自己的移动应用程序。他们将创建的移动应用程序由公共用户使用。但是,用户不应该处理我们的 API 和身份验证。所以我不需要最终用户身份验证。由我们的客户(应用程序制造商)决定使用 “client id” 和 “api key”。 根据我的研究,Firebase Admin SDK 可能不是一个好的解决方案,因为我们担心客户端级别的身份验证。
我正在寻找一种标准解决方案来为第 3 方客户端生成 api 密钥。此密钥生成不是手动过程,而是客户端用于获取密钥的服务。类似于 google map api 之类的面向 3rd 方开发人员的东西。我们希望跟踪列入白名单的客户,而不需要他们的应用用户处理身份验证。
感谢您提供建议和指导,为我们的 REST API 找到最佳解决方案。
【问题讨论】:
【参考方案1】:我想到的第一个解决方案是新的Firebas App Check。它会限制您为项目列入白名单的应用程序和网页之外的任何访问。我不知道这在您的用例中是否可行(与其他应用程序的合作情况如何),但我肯定会先尝试一下。
【讨论】:
感谢您的回复。我已经检查过了。但是,我正在寻找一种为新客户生成 api 密钥的标准方法。据我了解,App Check 更多的是查明请求是否来自真实设备。 您可以使用 App Check 来限制从任何其他不属于您(链接到您的项目)的应用或网站访问您的 Firebase 服务。 我需要以编程方式允许新客户将自己添加到白名单中。通过 AppCheck 是不可行的。你知道怎么做吗?以上是关于在客户端级别(而非最终用户级别)保护 Firebase REST API的主要内容,如果未能解决你的问题,请参考以下文章