AWS Application Loadbalancer和Cognito用户池,redirect_mismatch

时间:2018-08-10 13:19:21

标签: amazon-web-services amazon-elb aws-cognito

我有一个传统的Web应用程序(就像我15年前做的一个业余项目),我正在迁移到AWS。它与Fargate一起部署在ECS中,位于应用程序负载平衡器后面。现在,我想添加FB和Google的身份验证。我已经成功配置了FB和Google,以便获得身份验证,但是ALB中的身份验证规则遇到了麻烦。身份验证成功结束时,我得到“ redirect_mismatch”。如果我尝试将redirect_uri设置为外部网站(例如www.google.com),然后将该网站添加到我的白名单中,则可以正常使用。据我所知,没有错别字。

Listener rules app client settings

尝试浏览到https://myapp.domain.se/将重定向到登录流,完成后将遇到redirect_mismatch错误。 https://myapp.auth.eu-west-1.amazoncognito.com/login?response_type=code&client_id=2b88s...&redirect_uri=https://www.google.com otoh工作正常。

我想念的是什么。如何获得更详细的错误消息?

1 个答案:

答案 0 :(得分:4)

如果不阅读Application Load Balancer用例的文档,则回调URL值有点复杂且不直观。

简短的版本是您需要在回调URL中添加三个值:

  1. https:// {您的负载均衡器域} / oauth2 / idpresponse
  2. https://myapp.domain.se/oauth2/idpresponse <-您的应用程序
  3. https://myapp.auth.eu-west-1.amazoncognito.com/saml2/idpresponse

请参阅: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-authenticate-users.html