繁体   English   中英

如何为 Google Cloud App Engine 任务处理程序进行身份验证

[英]How to authenticate for Google Cloud App Engine task handlers

我有一个 App Engine worker 来处理对我的 Google Cloud Tasks 队列的请求。 我如何验证来自我的任务队列的请求,因为它允许来自任何其他主机或客户端的请求?

我尝试阅读 App Engine 任务request headers ,但我认为这不足以验证请求。

此外,如何验证来自同一 Google 云项目(如internal服务)的请求?

使用请求标头是验证来自 Cloud Tasks 的请求的最佳方式。 App Engine 将从尝试模仿内部标头的请求中去除标头,例如X-AppEngine-QueueName

不幸的是,在 Python 3 中没有办法像Python 2.7 app.yaml那样限制经过身份验证的用户。

最后,如果这还不够,我建议将您自己的JWT添加/签名到请求标头并在您的 App Engine 处理程序中对其进行身份验证。

Kolban 分享的教程是针对 HTTP Target 任务处理程序的。 我了解到您正在使用 App Engine 任务处理程序。

App Engine 任务处理程序不支持“oauthToken”和“oidcToken”字段链接

根据官方文档,您必须保护您的任务句柄 URL 以防止恶意外部调用链接

例如:

 handlers:
 - url: /your-task
   script: worker.app
   login: admin

您可以找到更多信息:创建 App Engine 任务处理程序

也可以验证 IP 地址请求。

如;

router.get('/task-handler', (req,res) => {
  let ip = req.headers['x-appengine-user-ip']
  if (ip !== '0.1.0.2') {
    return res.sendStatus(401);
  }
  // trusted
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM