我在开发环境中设置了云IAP(使用Kubernetes并使用Let'加密),一切正常。
此应用的设置非常基本:
1)项目 A
中具有多个REST端点和持久数据存储的API
2)SPA
前端应用,在不同的项目中使用所述API
B
在我的浏览器中(尝试使用Chrome和Firefox),我可以通过IAP屏幕在两个应用中验证我的Google用户(通过浏览器标签中的每个域),但是一旦我尝试使用SPA
并且 it 尝试向API
发出请求,我看到网络请求302重定向到Google IAP登录页面。
问题:
是否需要代表用户通过API
请求发送标头或Cookie,以便IAP允许直通?
注意
我看到这两个cookie btw GCP_IAAP_AUTH_TOKEN
和GCP_IAAP_XSRF_NONCE
。
答案 0 :(得分: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,则只是为了生活对于攻击者而言,小更难。)