AWS ALB OIDC身份验证Cookie域问题

时间:2020-01-26 20:59:54

标签: amazon-web-services cookies amazon-cloudfront aws-application-load-balancer

我有一个AWS Cloudfront托管网页,该网页从S3获取静态页面,并调用动态数据的自定义来源(ALB)。在ALB上启用了OIDC身份验证,因此对自定义来源(我的API)的调用通过ALB上设置的规则传递。

在特定情况下,当我对自定义来源的请求未通过身份验证时,我将重定向到IdP进行登录,成功登录后,我将在响应标头中获得cookie,因为此请求是从ALB发送到IdP的-发出的cookie具有域作为ALB DNS。为了使我的网页使用此Cookie,我必须将调用重定向到Cloudfront URL。现在,将cookie颁发给具有不同DNS的ALB,并且我的Cloudfront URL具有不同的DNS,因此我无法使用cookie。

我试图捕获cookie值,但是由于它是针对其他域发布的,因此我无法捕获它,而且作为设计的一部分,我觉得这是错误的。有人遇到过类似的问题。

1 个答案:

答案 0 :(得分:0)

AWS ALB OIDC 为您在侦听器规则中配置身份验证操作的同一请求主机域设置会话 cookie。

此外,他们设置了一个仅限 http 的安全 cookie,这意味着您根本无法通过客户端 Javascript 访问它。

考虑到这一点以及您的设置,您的网页似乎确实需要一个(微小的)后端,以便您可以在从该后端内部对提到的自定义源进行 API 调用时访问响应 cookie。< /p>