如何从外部管理服务帐户调用Firebase云函数&在FCF上验证请求

如何从外部管理服务帐户调用Firebase云函数&在FCF上验证请求,firebase,firebase-authentication,google-cloud-functions,Firebase,Firebase Authentication,Google Cloud Functions,我有: 1-不在Google/Firebase上的节点服务,可访问Firebase Project X的“Firebase管理”功能 2-同一项目X的https.onRequest Firebase云函数 调用方向云函数证明它来自对项目具有管理权限的服务器的正确方式是什么 我可以在这里做各种有趣的事情: 但他们似乎都没有创建一个令牌,我可以发送给Firebase云函数,该函数可以使用该令牌验证请求是否来自管理服务帐户 有一些解决方法,例如,通过firebase admin,节点应用程序可以检索特

我有:

1-不在Google/Firebase上的节点服务,可访问Firebase Project X的“Firebase管理”功能

2-同一项目X的https.onRequest Firebase云函数

调用方向云函数证明它来自对项目具有管理权限的服务器的正确方式是什么

我可以在这里做各种有趣的事情:

但他们似乎都没有创建一个令牌,我可以发送给Firebase云函数,该函数可以使用该令牌验证请求是否来自管理服务帐户

有一些解决方法,例如,通过firebase admin,节点应用程序可以检索特殊Firestore安全文档中的字段值,该文档通过cron作业上的另一个云函数维护,非特权用户无法访问

但要向Firebase云函数证明调用方是Firebase管理服务帐户,这是一个奇怪的黑客行为

有更好的办法吗

注意:当我寻找答案时,我看到了一个不同问题的许多好的、可靠的答案,其中节点API响应Firebase用户的请求,该请求可以包含客户端生成的Firebase JWT。这个问题不同,因为我没有特定的Firebase用户令牌。用例:我正在轮询云功能,以查找任何用户都可以发起、并且可以由多个节点服务器声明的无人认领的作业。

如果您相信:

没有攻击者可以看到客户端服务器上运行的代码 没有人可以嗅探到HTTPS流量进出的功能,他们不能 没有人能观察到在云函数中运行的代码 然后,在请求中发送您选择的特殊令牌或字符串就足够了,以便为函数授权调用方。因为没有人能看到原始数据或传输中的数据,所以应该足够安全。这实际上要求调用包含一个只有您和您的代码才能看到的密码

如果您想要基于Google云约定的更健壮的服务,您可以使用云控制台配置哪些服务帐户可以访问该功能,并安排在请求中发送该服务帐户的凭据。可以找到这方面的文档