Cookie 或 header 发送自己的 API 以防止 Google Cloud Identity Aware Proxy (IAP) 302?

Cookie or header to send own API to prevent Google Cloud Identity Aware Proxy (IAP) 302?

我已经在开发环境中设置了 Cloud IAP(使用 Kubernetes 并使用 Let's Encrypt)并且一切正常。

此应用的设置非常基本:

1) 在项目 A

中具有多个 REST 端点和持久数据存储的 API

2) SPA 前端应用程序,在不同的项目 B

中使用上述 API

在我的浏览器中(尝试过 Chrome 和 Firefox),我可以通过 IAP 屏幕(通过转到浏览器选项卡中的每个域)在两个应用程序中验证我的 Google 用户,但是一次我尝试使用 SPA 尝试请求到 API,我看到网络请求 302 重定向到 Google IAP sign-in页。

问题: 是否需要代表用户通过 API 请求发送 header 或 cookie,以便 IAP 允许 pass-thru?

备注 我看到这两个饼干 btw GCP_IAAP_AUTH_TOKENGCP_IAAP_XSRF_NONCE.

IAP "API" 或 "SPA" 保护什么?如果是 SPA,IAP 应该可以正常工作。如果是 API,你今天最好的选择是使用 https://cloud.google.com/iap/docs/authentication-howto to have SPA authenticate to API, and maybe also have it pass down https://cloud.google.com/iap/docs/signed-headers-howto,这样 API 可以单独验证最终用户的凭据。

将 GCP_IAAP_AUTH_TOKEN 从 SPA 传递到 API 不会起作用,出于安全原因,我们在将请求传递给最终用户应用程序之前将其删除(以防负载均衡器之间的传输并且该应用程序是 HTTP,只是为了让攻击者的生活变得 一点 困难。)