我有一个App Engine工作人员,负责处理我的Google Cloud Tasks队列的请求。既然我的任务队列允许来自任何其他主机或客户端的请求,该如何验证任务队列中的请求?
我尝试阅读App Engine任务request headers
,但我认为这不足以对请求进行身份验证。
此外,如何验证来自同一Google云项目(例如internal
服务)的请求?
答案 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