无效的 IAP 凭据:JWT 受众与此应用程序不匹配



我们有一个Django应用程序托管在GCP云上运行,并位于IAP后面进行用户认证。我们的用例是在获得令牌后,由用户在本地机器上生成令牌。遵循IAP程序认证,但得到以下错误。

Invalid IAP credentials: JWT audience doesn't match this application ('aud' claim (xxxxxxxx.apps.googleusercontent.com) doesn't match expected value (yyyyyyyy.apps.googleusercontent.com)

预期结果是一个JSON响应,其中包含token。

我们通过将'audience' body参数传递给以下代码并调整GCP提供的原始文档来解决以下问题:

curl --verbose 
--data client_id=DESKTOP_CLIENT_ID 
--data client_secret=DESKTOP_CLIENT_SECRET 
--data code=AUTH_CODE 
--data redirect_uri=http://localhost:4444 
--data audience=IAP_OAUTH_ID 
--data grant_type=authorization_code 
https://oauth2.googleapis.com/token

这个IAP_OAUTH_ID是在你打开IAP时由GCP自动生成的,并且出现在OAuth 2.0客户端id下在api &服务比;GCP的凭据部分

我们的猜测是,当我们尝试使用本地机器为IAP生成令牌而不在主体中传递"受众"时,它确实会生成令牌,但对于其他一些IAP实例,显然不会与托管在GCP上的令牌一起工作,GCP位于云运行负载均衡器前面。

因此,为了使其正常工作,还必须传递用于生成令牌的IAP实例,这是使用受众主体参数完成的。

相关内容

  • 没有找到相关文章

最新更新