【发布时间】:2020-05-22 23:10:34
【问题描述】:
这是一个位于 Firebase 托管上的网页,通过重写云函数动态提供服务
浏览到 url 时,我收到“错误:禁止访问 您的客户端无权从此服务器获取 URL [/theURL]。
只要我通过 GCP 控制台在函数上添加了“allUsers”作为云函数调用程序,一切正常。我已经通过测试证实了这一点,只需按下一个开关并得到两个不同的结果。
我使用与 GCP 项目所有者相同的 Google 帐户登录 Chrome 浏览器
我使用同一个 Google 帐户登录到我的 Firebase 网站(Firebase 身份验证和 Firestore 角色管理),并使用 Firebase __session cookie 等。
当我将我的 Node.js 引擎从 8 升级到 10 时开始,谷歌最近警告他们正在放弃对 8 的支持。(我假设但不知道版本 8运行环境没有这个功能?)
我在没有任何 GCP 身份验证知识的情况下编写了这些 Cloud Functions,因此我相对确信我在 Cloud Functions 中的编码是安全的,但如果我可以/应该使用另一层安全性,我完全赞成。
我希望该网站可公开访问,但如有必要,我可以将功能细化为公共与非公共。 (基本上,我将它们写成所有可公开访问且内部经过身份验证/保护的内容。)
-
我对 GCP 身份验证要求一无所知,因此我很难将其归结为一个核心问题,但这里有一些我知道我不知道的问题:
- 是否应将 Firebase 托管作为成员添加到 GCP 的身份验证组,以便 GCP 只允许为重写请求提供云功能服务?这似乎是最安全、最直接的方法。
- 当我是整个 doggone 项目的所有者时,为什么 GCP 会告诉我被禁止?这是否与 Firebase 重写或 HTTP 请求是匿名的有关?如果是这样,那么如何对 Cloud Function 进行身份验证?
抱歉问题的范围很大;非常感谢任何正确方向的指导。
【问题讨论】:
标签: firebase firebase-authentication google-cloud-functions