尝试通过 AWS 应用程序负载均衡器和 Cognito 进行身份验证时出现 500 错误

Posted

技术标签:

【中文标题】尝试通过 AWS 应用程序负载均衡器和 Cognito 进行身份验证时出现 500 错误【英文标题】:500 error trying to authenticate via AWS Application load balancer and Cognito 【发布时间】:2019-05-05 20:26:40 【问题描述】:

我正在尝试使用面向互联网的 AWS 应用程序负载均衡器为某些特定路由设置身份验证。

我已经完成了官方 AWS 文档中的所有步骤,并且还使用了这个: https://www.thorntech.com/2018/09/user-authentication-alb-cognito/

我正在通过负载均衡器的 DNS 名称进行测试,它正确地将我重定向到 Cognito 的登录表单,但在我登录后它重定向到负载均衡器,并给出 500 Internal Server Error。网址是这样的https://xxxxx.eu-west-1.elb.amazonaws.com/oauth2/idpresponse?code=.......

您知道这可能是什么原因造成的吗?我还应该进行哪些配置才能使其正常工作?

openid 是允许的

【问题讨论】:

我们遇到了完全相同的问题,用 AWS 开了一张票。 【参考方案1】:

回答我自己的问题 - 问题出在安全组上。 您的负载均衡器上必须有一个开放端口 443 的安全组!

【讨论】:

您能详细说明一下吗?往返等。位于公共子网中的 ALB 的默认规则是允许来自 0.0.0.0 的入站 80/443。没有出境限制。除了这些,你还添加了哪些规则? 是的,所以 ALB 需要在公共子网中,但是 inbound 规则设置在 te 安全组中,并且应该允许 80/443。不确定 0.0.0.0,但应该可以。流量是否为您通过 443? 后辈:我们的 ALB 配置了不正确的“电子邮件”范围。将 ALB HTTPS 侦听器规则的范围更改为“openid”,解决了我们的问题。

以上是关于尝试通过 AWS 应用程序负载均衡器和 Cognito 进行身份验证时出现 500 错误的主要内容,如果未能解决你的问题,请参考以下文章

AWS 通过弹性负载均衡器发送 http 请求

AWS 使用负载均衡器设置 DNS

AWS 网络负载均衡器和 HTTPS 端点 [关闭]

使用 AWS 负载均衡器将来自 EKS 的 FastAPI 公开给外部世界

无法使用 Fargate 连接到 AWS 网络负载均衡器

AWS Fargate 无法通过负载均衡器/公共 IP 访问 dockerized spring boot 应用程序