反向代理的keycloak重定向url

时间:2019-02-12 05:15:50

标签: spring-security apache2 reverse-proxy keycloak

我通过

在一个VM中运行了密钥斗篷
  

keycloak.domain.com

我有运行在另一个VM上的客户端应用程序,而另一个VM则在Tomcat上运行,例如

  

app.domain.com

哪个正在使用Spring Security,所以我在keycloak.json中完成了以下配置

    {
  "realm": "demo",
  "auth-server-url": "http://keycloak.domain.com:8080/auth",
  "ssl-required": "external",
  "resource": "app-client",
  "verify-token-audience": true,
  "credentials": {
    "secret": "9503a597-4c83-44ca-884e-e285891a2d32"
  },
  "use-resource-role-mappings": true,
  "confidential-port": 0
}

,我们还有其他服务,因此我们已配置了

之类的Apache反向代理。
  

main.domain.com

当我访问main.domain.com/app时,我们正在按以下方式进行代理

ProxyPass /app http://app.domain.com/app nocanon
ProxyPassReverse /app http://app.domain.com/app

我们能够重定向到密钥斗篷,但是redirect_urihttp://app.domain.com/app/sso/login,它应该通过代理

在哪里配置?还是我做错了方法?是他们为我的应用程序获得OAuth的其他方式吗?

1 个答案:

答案 0 :(得分:0)

我们已经通过在apache配置中设置CASE WHEN (@column <> 0 OR @column IS NULL) then ... ELSE 0 END 来解决了这个问题:

ProxyPreserveHost On

该集合是请求中的<VirtualHost *:80> ProxyPreserveHost On 头,适配器负责其余部分。 我们正在使用Servlet Keycloak适配器,但是我想它也应该适用于其他适配器。