Asp.net web api 如何验证GCP发布/订阅推送订阅令牌?

Asp.net web api 如何验证GCP发布/订阅推送订阅令牌?,asp.net-web-api,google-cloud-platform,jwt,openid-connect,google-cloud-pubsub,Asp.net Web Api,Google Cloud Platform,Jwt,Openid Connect,Google Cloud Pubsub,我们是新加入GCP的。我们已经设置了一个发布/子队列,该队列具有对外部webhook(ASP.NET Web API)的推送订阅,并启用了身份验证。这在HTTP post调用中为我们提供了一个承载令牌 我不清楚是否: A.我需要首先使用服务帐户.json文件请求令牌,并将其与发布/订阅在webhook中发送的承载令牌进行比较 B.我只需要使用GoogleJsonWebSignature验证来自pubsub的令牌。ValidateAsync(令牌,设置) 无论哪种可能性都有效,我只是不确定其安

我们是新加入GCP的。我们已经设置了一个发布/子队列,该队列具有对外部webhook(ASP.NET Web API)的推送订阅,并启用了身份验证。这在HTTP post调用中为我们提供了一个承载令牌

我不清楚是否:

  • A.我需要首先使用服务帐户
    .json
    文件请求令牌,并将其与发布/订阅在webhook中发送的承载令牌进行比较
  • B.我只需要使用
    GoogleJsonWebSignature验证来自pubsub的令牌。ValidateAsync(令牌,设置)

无论哪种可能性都有效,我只是不确定其安全含义。选项B很简单,但它真的安全吗?无法对此进行篡改吗?

您甚至可以使用Microsoft的库来验证令牌。在给定的情况下,请使用以下代码:

app.UseJwtBearerAuthentication(new JwtBearerOptions()
{
    Audience = "",  // The audience you configured the token to have 
    Authority = "https://accounts.google.com", 
    AutomaticAuthenticate = true
});

Authorization:Bearer
是Google OAuth(OIDC)身份令牌。这个链接向您展示了如何验证:谷歌在这个主题上有更多的页面、示例代码等。实际上我就是这么做的,并遇到了一个新问题。见: