- 最新
- 投票最多
- 评论最多
【以下的回答经过翻译处理】 根据以下文档 [1],在对网站进行身份验证时的身份验证流程中,Application Load Balancer 期望用户首先访问负载均衡器。 ALB 身份验证通过在侦听器规则中定义身份验证操作。 将检查传入请求中是否存在会话 cookie,然后检查它是否有效。如果会话 cookie 已设置且有效,则 ALB 会将设置X-AMZN-OIDC-* 的标头,然后将请求路由到目标组。请求标头中包含 JSON Web 令牌 (JWT) 格式的身份信息,后端可以使用该格式来识别用户。如果请求会话中cookie 未设置或无效,则 ALB 将遵循 OIDC 协议并向身份提供者发出 HTTP 302 重定向。此时将遵循身份验证流程,会话 cookie 将会更新为新的身份验证信息。
您还可以查看以下博客文章 [2],以更详细地了解 Application Load Balancer 身份验证的工作原理。
回答您的问题“也就是说,如果我采用 Cognito 的托管 UI 登录而不是访问 ALB 的域名,会怎么样?”,因为客户端最初没有尝试访问您的网站,负载均衡器不知道客户端正试图访问负载均衡器的后端,请求被视为非预期请求。负载均衡器“oauth2/idpresponse”端点的存在是为了处理与 Cognito 令牌端点的授权代码交换,并在 完成Cognito 和负载均衡器之间的通信后,向客户端返回转发的原始 URI。
[1] 使用 Application Load Balancer 对用户进行身份验证 - 身份验证流程 - https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-authenticate-users.html#authentication-flow
[2] 使用 Application Load Balancer 内置身份验证简化登录 - https://aws.amazon.com/blogs/aws/built-in-authentication-in-alb/
相关内容
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前