我在谷歌上冲浪,没有找到任何具体的答案或例子,所以再次尝试我的运气在这里(经常是幸运的)。
问题所在
>
我在apache反向代理后面运行了一个spring boot RESTful服务。此RESTful服务只运行HTTP。假设它运行在本地IP172.S端口8080上。
我还配置了一个apache反向代理。假设它运行在本地IP172.a和公共IP55.a上。该代理响应两个端口80,但所有HTTP通信量都自动重定向到443。
我有另一个运行独立Keycloak服务器的服务器。此外,该服务器被配置为可以通过反向代理进行公共访问。假设它运行在本地IP172.k上。此Keycloak服务器仅在HTTP上运行。HTTP请求通过反向代理使用SSL处理。
最后,我有另一个前端--运行在本地ip 172.f上的WebApp。这个前端WebApp在Nodejs下运行,也是通过反向代理进行配置的。它也只运行HTTP,但是客户机(浏览器)通过反向代理使用SSL,就像Keycloak和RESTful服务一样。这个前端正在使用RESTful服务,并且还配置为使用keycloak javascript适配器进行身份验证。
RESTful服务使用Spring Boot Keycloak适配器配置为只承载,而前端应用程序配置为访问类型public。
RESTful服务服务器、Keycloak服务器和前端服务器不可公共访问;它们只能通过反向代理访问。但是它们可以相互通信(因为它们在同一个专用网络中)。
在frontend keycloak.json文件中,auth-server-url
被设置为代理urlhttps://example.com/auth
,并且frontend能够成功地获得有效的令牌。现在,当我尝试使用RESTful服务时,我在RESTful适配器中得到一个错误,即令牌颁发者无效。当然,在http-header中,我发送Authorization:Bearer
。出现此错误的原因是,在RESTful keycloak配置中,我将auth-server-url
配置为使用本地urlhttp://172.k:9080/auth
,因此此url与令牌中的url不同(即https://example.com/auth
)。
问题
我不能在RESTful服务中包含与前端相同的auth-server-url
,因为这将要求我也在RESTful服务上设置HTTPs(因为该url是HTTPs),这将使事情变得非常复杂,包括需要设置证书之类的东西。另外,我认为只在本地服务器上设置SSL效率低,也不实用。
所以我的问题是如何让适配器与Keycloak对话而不经过反向代理。我希望RESTful适配器通过auth-server-url:http://172.k:9080/auth
与Keyclok服务器对话以进行令牌验证。
之前,后端有一个不同的url被删除:https://issues.jboss.org/browse/keycloak-2623
我在docker容器中的一个项目中使用Keycloak。我有同样的问题,但在一个本地网络(所以也许这将不是解决办法,在这种情况下,我很抱歉)。所以情况是这样的:
>
Apache在Docker之外的机器上本地运行,提供一个angular 2应用程序,具有正确的配置
angular 2应用程序的适配器指向url http://aaa.auth.com(我用条目127.0.0.1aaa.auth.com修改了本地文件主机)
我在服务器上安装了keycloak standanlone,并尝试通过Nginx在反向代理后面使用它。Keycloak绑定到127.0.0.1
null 这起作用了,当调用https://www.website.com/auth/oauth/authorizeendpoint时,我将在https://www.website.com/auth/login上重定向,并看到我的登录表单。 问题是没有加载jquery或css这样的资源,因为它试图通过URL https://www.website.com/resources/jquery.min.
主要内容:1. 简单的反向代理,2. 集群和平衡器,3. Balancer和BalancerMember配置,3. 故障转移,4. 均衡器管理器除了作为“基本”Web服务器,并为最终用户提供静态和动态内容之外,Apache httpd(以及大多数其他Web服务器)也可以充当反向代理服务器,也称为“网关” “服务器。 在这种情况下,httpd本身不生成或托管数据,而是由一个或多个后端服务器获取内容,后端服务器通常没有直接连接到外部网络。当httpd收到来自客户端的请求时,请求本身被代理到这些后端服
我想在代理之后提供Restful API,但我不知道如何将请求重定向到Spring Boot应用程序,以便可以使用域名访问它。 我的Spring Boot应用程序使用spring-boot-starter-tomcat运行,应用程序部署良好,我可以在服务器上使用java-jar myApplication.jar部署它。 该应用程序还可以通过写入远程访问https://1.2.3.4:8090在浏
我已经嵌入了在7000端口上运行的Jetty。另外,我有一个keycloak服务器运行在同一台机器的端口8100上。 我的所有客户端访问都通过Jetty进行,即localhost:7000。因此,我将keycloak作为Jetty上的反向代理,即localhost:7000/keycloak/auth将重定向到localhost:8100/auth。它击中正确。 现在,有KeycloakInsta
我是新来的Spring Security,并试图开发Spring Boot应用程序与谷歌登录使用OAuth2下运行的主机名: 8080。这个程序是背后的Apache反向代理服务器https://url.com. Spring启动版本2.1。0 Spring Security版本5.1.1 build.gradle: 应用yml: Spring Security配置: 我请求https://url.