【问题标题】:Unable to set cookies for cloudfront for secure cookie based authentication无法为云端设置 cookie 以实现基于安全 cookie 的身份验证
【发布时间】:2018-08-23 16:09:26
【问题描述】:
在我们的项目中,我们正在尝试为使用 cloudfront cdn 访问的内容集成基于 cookie 的身份验证。假设我的应用程序域是 A.com,并且正在从 B.com 访问。 A.com 的内容通过 cloudfont cdn 提供。现在 B.com 想要从安全的 cloudfront cdn 访问内容。通常 B.com 向 A.com 请求内容。 A.com 将请求重定向到 cloudfront cdn。 B.com 必须通过带有重定向请求的 cookie 将身份验证信息发送到 cloudfront.net。
see this for an elaborate diagram.
现在,我在初始请求的响应标头中设置 cookie,但无法在重定向到 cloudfront.net 域的请求标头中找到它。结果,我收到 403 响应并且无法访问内容。
【问题讨论】:
标签:
security
authentication
cookies
amazon-cloudfront
【解决方案1】:
A.com 可以在访问 B.com 域中托管的应用程序的用户浏览器中设置必要的 cookie。这些第三方 cookie 将存储在用户的浏览器中。当您再次访问 A.com 域时,存储的第三方 cookie 将由用户的浏览器自动随请求一起发送。
我可以看到您想将 A.com 域 cookie 发送到 cloudfront.net 域,而浏览器不允许这样做。由于所需的 cookie 未与重定向请求一起发送到 cloudfront.net,因此请求返回 403 禁止响应。
如果您同时拥有 cdn 发行版和 A.com 域,那么您可以创建一个 cname,例如 cdn.A.com,它将指向您的 cdn 发行版。
现在,当请求被重定向到 cdn.A.com 以获取内容时,必要的第三方 cookie 将与请求一起发送,并且可以毫无问题地访问文件。