首页 > 解决方案 > 授权头 GCP 云函数

问题描述

我正在设置一个只能由特定服务帐户调用的云功能,我已将此服务帐户作为 Invoker 添加到我的云功能中,但是从 React 应用程序调用云功能时如何使用此服务帐户? 我已将授权标头添加到我的 Axios 调用中并获取要发送给它的令牌,我正在使用此代码https://github.com/salrashid123/google_id_token/blob/master/nodejs/GoogleIDToken.js和在 Authorization 标头中发送它。

标签: google-cloud-platformaxiosgoogle-cloud-functionsauthorization

解决方案


服务帐户旨在识别“没有人工请求者”,我的意思是机器对机器。服务帐户密钥文件包含秘密,每个秘密都必须保密。您不能在公共应用程序中使用此秘密,否则您的秘密不再是秘密!

对于您的 ReactApp,您有一个人工登录的应用程序。他有自己的秘密(例如登录密码)。因此是他自己的 JWT 令牌。因此,有2个解决方案:

  • 您的用户拥有 Google 帐户(gmail、gsuite、云身份...),您可以直接将他添加为 Cloud Function Invoker
  • 或者,您必须通过后端。您的 React 应用程序使用用户身份调用后端,您在后端执行自己的安全检查。此后端使用服务帐户调用 Cloud Function 并将答案转发给 React 应用程序。

推荐阅读