如何为 HTTP 触发器验证谷歌云功能?

我有一个功能应用程序,它托管在我的 GCP 项目中,并且启用了身份验证。此应用程序将根据事件从 Jfrog 容器注册表 Webhook 触发。

我在这里面临的问题是对 HTTP 请求进行身份验证/授权。我尝试使用“Authorization: bearer”标头,效果很好。但该令牌似乎在 60 分钟后过期。

问:是否有一种永久方式(没有过期)来授权/验证云功能 HTTP 请求?Jfrog webhooks 无法以编程方式创建令牌,因为它是一个简单的 HTTP POST 触发器,可以接受额外的标头。

我发现很难从 GCP 文档中找到解决方案。我确实有使用“roles/cloudfunctions.invoker”角色创建的服务帐户。

Jfrog artifactory webhooks参考:https ://www.jfrog.com/confluence/display/JFROG/Webhooks


当年话下
浏览 84回答 1
1回答

互换的青春

正是出于这个原因,我写了那篇文章。它基于 ESPv2 和 Cloud Run,但API Gateway是该技术堆栈的托管版本。原理和OpenAPI spec是一样的。该解决方案将安全级别从短期令牌 (1h) 降级为长期令牌(无限制)。但是您可以使用 API 网关来确保 API 密钥检查和查询转发。一个更简单的模式是删除对 Cloud Functions 的身份验证检查(并将其公开)并在您的函数本身中执行该 API 密钥(实际上是随机字符串比较)。在这两种情况下,API 都是可公开访问的(API 网关或云功能),并且在 DDoS 攻击的情况下,没有任何东西可以保护您的服务(和您的资金)。设置正确的 Cloud Functions Max 实例以防止出现意外情况。
打开App,查看更多内容
随时随地看视频慕课网APP