提问人:swygerts 提问时间:6/5/2023 更新时间:6/10/2023 访问量:199
允许外部调用 Cloud Run
Allowing External Invocation of Cloud Run
问:
我正在尝试在 GCP 中创建一个 API 以作为 webhook 的目标。具体而言,事件 Webhook 位于 Twilio Sendgrid 上。我需要对请求进行身份验证(不想要未经身份验证的请求),但我不确定正确的方法。
根据文档,如果我提供客户端 ID 和密钥,Sendgrid 会从 GCP 的身份验证服务器生成访问令牌(我猜这是 https://www.googleapis.com/oauth2/v4/token)。但是,Cloud Run 需要身份令牌。我是否正确理解了这一点,如果是这样,有没有办法解决这个问题?
答:
-1赞
guillaume blaquiere
6/10/2023
#1
您无法从 Twilio 生成 Google Cloud OAuth 令牌(访问令牌或身份令牌)。您的 Webhook 必须在互联网上公开提供。
为了保护连接,您可以根据需要创建自己的 API 密钥,方法是像这样设置 Webhook URL
https://XXXX.run.app?key=<API KEY>
并检查 Cloud Run 中的 API KEY 查询参数。如果不匹配,则放弃请求。
另一种解决方案是使用 API Gateway,它是 ESPv2 的托管版本。我之所以提到这一点,是因为我写了一篇关于 ESPv2 的文章,但只要稍作改动,你就可以在 API Gateway 上做同样的事情。
评论
0赞
swygerts
6/13/2023
使用 Google 客户端凭据,Twilio 发送请求以获取 Google 访问令牌。我在这里的问题是 API Gateway 似乎需要和身份令牌。
0赞
guillaume blaquiere
6/13/2023
Twilio 不能这样做。Twilio 生成 Twilio 访问令牌。
0赞
swygerts
6/14/2023
如果我提供 GCP 客户端凭据和 GCP Oauth 令牌 URL,他们是否不会获得 GCP 令牌?
0赞
guillaume blaquiere
6/14/2023
Twilio 无法验证您的 Google 凭据,只有 Google 可以!
0赞
swygerts
6/14/2023
正确。他们是否不使用凭据获取访问令牌,然后将访问令牌发送到我的 GCP API 网关,API 网关会尝试对其进行验证?
评论