服务器到服务器场景中的 Firebase 自定义身份验证

Firebase custom auth in server-to-server scenario

我需要实现一个场景,在文件上传到 Google 云存储后,触发一个函数并处理该文件。在这种情况下,处理基本上意味着清理文件,将其存储到 Firestore 中并使其可通过另一个 HTTP 触发的函数(REST API 之类)访问。

此过程的两个面向用户的端点(文件上传和 HTTP 功能)都需要受到保护。该过程将用于服务器到服务器的场景:一侧将是用 Node.js 或 .NET 编写的后端,另一侧将是我的 Firebase 解决方案(云存储和 HTTP 触发功能根据多于)。在 Firebase 中,我将维护一组应该有权访问系统的自定义用户 - 我的想法是使用一个简单的系统,其中每个用户都有一个客户端 ID 和一个客户端密码(基本上是一个 oAuth 客户端凭据授权类型) .

根据我在网上阅读的内容,实现此目的的唯一选择是使用[带有自定义令牌的 Firebase 身份验证][1]。我在网上找到了很多关于如何做到这一点的例子,但它总是关于客户端到服务器的场景(例如 Javascript 网络应用程序与 REST API 对话)。服务器到服务器的场景在任何地方都没有提到,事实上,我不确定如何去实现它——我可以在我的 HTTP Firestore 函数中调用 auth.createCustomToken(uid) 就好了,但似乎没有服务器端库我可以用来调用 auth.SignInWithCustomTokenAsync(customToken).

总结一下:

  1. 如何在服务器到服务器中使用带有自定义令牌的 Firebase 身份验证 场景,我需要使用以前生成的登录 来自服务器环境的自定义令牌?
  2. 如果不可能, 安全实施的另一种选择是什么 上述架构?

我已经联系了 Google 支持人员,如果其他人遇到此问题,在 server-side 情况下,推荐的方法是致电 signInWithCustomToken endpoint in Firebase Auth REST API.