1

我有一个 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 值,但因为它是为不同的域发布的,所以我无法捕捉到,作为设计的一部分,我觉得这是错误的。有人面临类似类型的问题。

4

1 回答 1

0

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

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

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

于 2021-04-22T19:39:00.583 回答