我有一个REST API(用Python实现),目前正在Google Cloud Run上运行。我已将其配置为:
- 允许所有流量
- 要求认证
而且它目前对我来说工作得很好,因为我可以登录(在浏览器中)使用我的谷歌帐户(它具有所有必需的权限)。我遇到的问题是我不知道(并且找不到)如何将这个REST API暴露给第三方后端系统。到目前为止,我尝试创建一个全局API密钥,我想在请求参数中传递该密钥,但不幸的是,没有成功。t work.我仍然会从 Postman 那里得到403错误,不管我是否传递了密钥。
我知道我可以创建一个服务帐户,并授予它CloudRun.invoker
权限,这样它就有权限查询我的应用程序,但我知道使用它的唯一方法是通过service_account_key.json
,这在我的情况下不起作用,因为客户端系统没有实现任何谷歌云功能,它必须重写。
如果我可以总结一下--如何使用诸如OAuth之类的通用技术以编程方式向我的Cloud Run应用程序进行身份验证?
更具体地说,如何通过OAuth或OAuth2.0模拟服务帐户?
1条答案
按热度按时间2nc8po8w1#
你可以在Cloud Run前面使用API网关。我写过一篇关于ESPv 2的文章,但它与API网关非常相似(它是托管的ESPv 2!)。它应该会对你有所帮助。https://medium.com/google-cloud/secure-cloud-run-cloud-functions-and-app-engine-with-api-key-73c57bededd1
API网关是一个轻量级的Apigee。Apigee是一个很好的解决方案,但也是一个怪物!(它消耗了大量的配置时间和运行资金!)cloud.google.com/api-gateway