授权标头GCP云功能

时间:2019-11-25 15:54:03

标签: google-cloud-platform axios google-cloud-functions authorization

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

1 个答案:

答案 0 :(得分:0)

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

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

  • 您的用户都有Google帐户(gmail,gsuite,云身份...),您可以将其直接添加为Cloud Function Invoker
  • 或者,您必须经过一个后端。您的React应用使用用户身份调用后端,您在后端执行自己的安全检查。该后端使用服务帐户调用Cloud Function,并将答案转发到React应用。