应用程序负载均衡器授权 Header 未通过

Application Load Balancer Authoriation Header not passed through

我目前在 API 网关 (REST) 上有一个 API,它有一个连接到 HTTP 代理集成的代理端点。我有一个 Cognito 授权方,它授权由 Cognito 发出的传入 JWT,然后如果有效,它通过应用程序负载均衡器将请求转发到我们的 ECS 实例。

在那种情况下 运行 的项目需要授权 header 才能进行授权。问题是 header 没有转发到容器。经过多次调试后,我们确定当 ALB 将请求转发到容器时 header 会丢失(之前这个问题询问的是 API 网关,因为我认为这就是问题所在)。其他自定义 header 可以通过但不能“授权”。

有没有人有使用 ALB 来持久化授权 header 的经验?我是 ALB 的新手,所以仍在学习如何构建这些项目。

如果您要通过 header 授权,亚马逊 API 网关 REST APIs 将使用 X-Amzn-Remapped-Authorization 重新映射。

有关详细信息,请参阅 this 指南。

我们实际上有两个关于 alb 的规则。一种是将 api 调用从端口 80 重定向到端口 443,然后将转发规则发送到容器。我们发现 header 在重定向规则中丢失了,所以我们消除了它并在端口 80 上添加了监听器,将调用转发给 ecs 任务。