如何通过HTTP请求验证Google Cloud Task令牌?

时间:2020-05-22 22:27:01

标签: php openid-connect google-cloud-tasks

我正在尝试实现Google Cloud Task queues with a HTTP Target。我使用了App Engine的队列,但是在转向Cloud Run时,我希望使用相同的队列系统。我已经实现了调度程序代码,但与App Engine不同,我不信任标题,因此我知道我需要使用auth令牌来验证请求,但是我正在努力解决这个问题?我也在做很多假设。我正在尝试在PHP中构建它,因此,如果可能的话,最好在PHP中查看示例,但即使只是流程中的一些Psuedo代码也会很有用。

我的第一个假设是最好使用OIDC令牌?基于:

如果您要在目标服务中编写自己的代码以进行验证 令牌,则应使用OIDC令牌。有关什么的更多信息 为此,请参阅OpenID Connect,特别是验证ID令牌。

我为此read the linked heading,但是如果我说实话,这对我来说并不清楚。

第二个令牌将以Bearer <token>的形式出现在“授权”标头中吗?

第三,我想我应该使用类似firebase/php-jwt的软件包来解码令牌。但是我如何准确地解码呢?我的服务JSON文件只有一个私钥,我是否需要从云控制台获取公钥?完成后,是否需要查看令牌的特定部分以验证请求?还是我可以将其解码为有效JSON的事实就足够了?

每次我阅读一些有关如何执行该操作的文档时,我想我都已经接近答案了,但是我觉得它花的时间比我想要的要长得多,而当Google文档很少时,这会让人感到沮丧似乎只是指出了我需要做的事情。

1 个答案:

答案 0 :(得分:1)

  1. 您可以参考链接:https://developer.okta.com/blog/2019/05/07/php-token-authentication-jwt-oauth2-openid-connect

有关如何为云运行使用身份验证令牌创建http任务的更多信息。请注意,该代码是针对python,jave,GO和node.js给出的。但这会让您对流程有所了解。

  1. 授权标头(https://developer.okta.com/docs/reference/api/oidc/)的请求示例:

curl -v -X POST
-H“授权:承载$ {access_token}”
“ https:// {baseUrl} / userinfo”

  1. 有关如何解码令牌的信息:

https://developer.okta.com/blog/2019/05/07/php-token-authentication-jwt-oauth2-openid-connect