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

Cam*_*ron 6 cookies google-cloud-platform google-kubernetes-engine gcp google-iap

我在开发环境中设置了云IAP(使用Kubernetes并使用Let的加密),一切正常.

该应用程序的设置非常基本:

1)API在项目A中具有许多REST端点和持久数据存储

2)在不同的项目BSPA中使用所述的前端应用程序API

在我的浏览器(试过Chrome和Firefox),我可以(通过在浏览器选项卡将每个域)来验证我的谷歌用户在通过IAP屏这两个应用,但一旦我尝试使用SPA试图请求的API,我看到网络请求302重定向到Google IAP登录页面.

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

注意 我顺便说一句看到这两个饼干GCP_IAAP_AUTH_TOKENGCP_IAAP_XSRF_NONCE.

Mat*_*chs 5

什么受IAP,"API"或"SPA"保护?如果是SPA,IAP应该正常工作.如果是API,那么今天您最好的选择是使用https://cloud.google.com/iap/docs/authentication-howto让SPA对API进行身份验证,也可以将其传递给https://cloud.google. com/iap/docs/signed-headers-howto,以便API可以单独验证最终用户的凭据.

将GCP_IAAP_AUTH_TOKEN从SPA传递到API将无法正常工作,出于安全原因,我们在将请求传递给最终用户应用程序之前将其删除(如果负载均衡器和应用程序之间的传输是HTTP,则只是为了让生活变得更加困难对于攻击者.)

  • 得到它了.在这种情况下,我建议使用服务帐户身份验证指令对API进行SPA身份验证,并且在该呼叫中SPA应包括从IAP获得的X-Authenticated-User-JWT.SPA可以验证JWT并将其用作最终用户向SPA发起请求的证据.这不是一个强大的*机制,因为这些令牌不能提供强有力的防止重放或篡改 - 即控制SPA的人仍然拥有很大的权力 - 但它至少会给你一些基本的最终用户凭证检查.那对你有用吗? (2认同)