CloudFront 签名 Cookie 为 API 网关访问保持 Session 状态

CloudFront Signed Cookies Keeping Session State for API Gateway Access

我正在为我的网络应用程序使用以下技术栈

为了存储 Web 应用程序用户 session,我通常将 Cognito 发布的 JWT 存储在 Client-Side Cookie、HTML5 LocalStorage 或 SessionStorage 中。

不过,我很想知道 CloudFront 签名 Cookie 可以为 Web 应用程序提供 session 状态。我希望使用签名 Cookie 来存储 JWT 并使用 Edge Lambda 将签名 Cookie 映射到授权 Header 以验证 API 网关。我有兴趣知道

  1. 使用 CloudFront 签名的 Cookie 来存储 JWT 是否可行?
  2. 在 Web 应用程序的签名 Cookie 中存储 session 状态是一种好方法吗?
  3. 如果是这样,围绕它的最佳做法是什么?我不确定使用 Edge Lambda 是正确的方法。

CloudFront 签名 Cookie 无法存储自定义数据。因此,无法将发布的 AWS Cognito UserPool id_token 存储在签名 Cookie 中。因此,被质疑的方法无法继续进行。

替代方法

相反,登录 API 网关路由可以同时设置 SignedCookie 和一个单独的 Cookie 来存储 JWT 令牌,其中 Cookie 在 pre-configured 边缘 Lambda 验证并添加到授权 header,然后将请求转发到 API 网关。