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

时间:2019-12-09 04:53:26

标签: google-app-engine google-cloud-tasks

我有一个App Engine工作人员,负责处理我的Google Cloud Tasks队列的请求。既然我的任务队列允许来自任何其他主机或客户端的请求,该如何验证任务队列中的请求?

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

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

2 个答案:

答案 0 :(得分:1)

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

不幸的是,在Python 3中,没有一种方法可以像Python 2.7 app.yaml那样限制已认证的用户。

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

答案 1 :(得分:0)

Kolban共享的教程适用于HTTP Target任务处理程序。我了解您正在使用App Engine任务处理程序。

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

根据官方文档,您必须确保任务句柄URL的安全,以防止恶意外部呼叫link

例如:

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

您可以找到更多信息:Creating App Engine task handlers