为什么keycloak在重定向uri中删除SSL?

时间:2015-08-19 00:21:24

标签: redirect ssl amazon-web-services https keycloak

我们有一个简单的要求: 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内部服务器错误,并说“错误的重定向uri”,在浏览器中我看到:

的https:/ourcompany-keycloak.company.com/auth/realms/realm1/tokens/login CLIENT_ID = company_dev&安培;状态= aaaafffff-559d-4312-a8be-123412341234&安培;的 REDIRECT_URI = HTTP%3A%2F? %2Fcompany_landing.company.com%3A8081%2F%3Fauth_callback%3D1

如果您观察到上面的重定向uri,我认为问题在于,重定向uri不是以https开头,而是http,而且http:/company-landing.company.com不存在。

设定: keycloak设置: -

境界 - >设置 - >登录:需要SSL =所有请求(也尝试使用“外部”)

应用程序 - > realm1 - >设置 - >重定向URI = https://company_landing.company.com/ *

AWS负载均衡器: 端口配置:443(https)转发到8443

我很困惑为什么它会剥离SSL?在本地环境上测试时,上述工作正常(可能是因为它的http://localhost),但在尝试访问任何ssl加密的链接时,这总是会提供无效的重定向URL。

-mm

2 个答案:

答案 0 :(得分:5)

您必须在代理配置json文件中添加以下属性(默认为proxy.json)作为应用程序属性(与" adapter-config"相同):

"proxy-address-forwarding" : true,

此配置属性未记录,但存在于代理配置的源中:https://github.com/keycloak/keycloak/blob/master/proxy/proxy-server/src/main/java/org/keycloak/proxy/ProxyConfig.java

答案 1 :(得分:0)

您不需要安装证书或在适配器配置中使用更改。

这需要在Keycloak文档反向代理部分https://www.keycloak.org/docs/latest/server_installation/index.html#_setting-up-a-load-balancer-or-proxy中记录的standalone.xmlstandalone-hadomain.xml(视情况而定)中完成

假设您的反向代理未将端口8443用于SSL,您还需要配置HTTPS流量重定向到的端口。

<subsystem xmlns="urn:jboss:domain:undertow:4.0">
    ...
    <http-listener name="default" socket-binding="http"
        proxy-address-forwarding="true" redirect-socket="proxy-https"/>
    ...
</subsystem>

将redirect-socket属性添加到http-listener元素。该值应为proxy-https,它指向您还需要定义的套接字绑定。

然后将新的套接字绑定元素添加到套接字绑定组元素:

<socket-binding-group name="standard-sockets" default-interface="public"
    port-offset="${jboss.socket.binding.port-offset:0}">
    ...
    <socket-binding name="proxy-https" port="443"/>
    ...
</socket-binding-group>