Firebase httpsCallable 与“允许未经身份验证”的云函数

Thi*_*man 7 firebase firebase-authentication google-cloud-functions

我有一些通过 httpsCallable 调用的 HTTP 函数。我注意到在 GCloud UI 中它们以authentication: Allow unauthenticated.

当您通过 httpsCallable 调用 HTTP 函数时,会自动包含用户身份验证令牌并为接收端进行解码。

我认为允许未经身份验证的函数调用一定是一件坏事,因此我从allUsers组中删除了 IAM 策略,如此处所述,但是这样做时我的应用程序停止工作,并出现如下错误:

[错误] 预检响应未成功

[错误]由于访问控制检查,Fetch API 无法加载https://europe-west2-my-project-dev.cloudfunctions.net/someFunction 。

我是否真的需要允许所有用户调用我的函数,即使它们是由已经通过 Firebase 身份验证的用户使用 httpsCallable 调用的?

我觉得这很令人困惑,所以希望有人能澄清这一点。

Fra*_*len 14

Google Cloud Platform 的 IAM 访问控制不了解 Firebase 身份验证用户。

由于 Callable Cloud Functions 与 Firebase 身份验证的用户集成,因此您必须允许所有用户在 GCP 基础架构级别进行访问才能使用它们。然后在您的 Cloud Functions 代码中,检查 Firebase 身份验证用户是否有权执行该操作。

我同意,如果您也可以在 GCP IAM 层中锁定 Firebase 身份验证用户组,那就太酷了,但目前情况并非如此。