【发布时间】:2015-11-12 02:38:08
【问题描述】:
我们有一个简单的要求: PS:https://=== https://
当用户点击 https:/company_landing.company.com 时,他们应该被重定向到 keycloak 登录页面(在 https:/ourcompany-keycloak.company.com) .用户输入他/她的 keycloak 登录凭据。成功登录 keycloak 后,它们将显示到 company_landing 页面。
麻烦的是:
当用户输入 - https:/company_landing.company.com
Keycloak 尝试打开登录页面,但出现 500 Internal server error 并显示“Incorrect redirect uri”,在浏览器中我看到:
https://ourcompany-keycloak.company.com/auth/realms/realm1/tokens/login?client_id=company_dev&state=aaaafffff-559d-4312-a8be-123412341234&redirect_uri=http%3A%2F%2Fcompany_landing。 company.com%3A8081%2F%3Fauth_callback%3D1
如果您观察上面的重定向 uri,我认为问题在于重定向 uri 以 http 开头,而不是 https,并且 http:/company-landing.company.com 不存在。
设置: keycloak 设置: -
领域 --> 设置 --> 登录:需要 SSL = 所有请求(也尝试使用“外部”)
应用程序-->realm1-->设置-->重定向 URI = https://company_landing.company.com/*
AWS 负载均衡器: 端口配置:443(https) 转发到 8443
我对它为什么要剥离 SSL 感到困惑?以上在本地环境中测试时工作正常(可能是因为它的http://localhost),但是当尝试访问任何经过 ssl 加密的链接时,这总是会给出无效的重定向 url。
-mm
【问题讨论】:
-
这个问题你解决了吗?
-
抱歉忘记更新了。我认为问题在于 AWS 负载均衡器设置不正确。我通过为负载均衡器侦听器设置选择以下内容来解决此问题:负载均衡器端口和协议的 443 和 https 以及实例端口和协议的 80 和 https。
-
端口 80 和 HTTPS?好的,所以你也在ELB后面的实例上安装了证书?
-
是的,我们也在ELB后面的实例上初始化了证书
-
所以你现在有这个工作了吗?我有同样的问题。我使用 nginx 作为负载均衡器/反向代理
标签: redirect ssl amazon-web-services https keycloak