Keycloak atrás do apache reverse proxy

Naveguei pelo google sem encontrar nenhumconcreto respostas ouexemplos, então, novamente, tentando a minha sorte aqui (muitas vezes, tenha sorte).

O problema

Eu tenho um único serviço RESTful de inicialização por primavera sendo executado atrás de um proxy reverso apache. Este serviço RESTful está executando apenas HTTP. Digamos que esteja sendo executado na porta local 8080 ip 172.s.

Também configurei um proxy reverso apache. Digamos que esteja sendo executado no IP local 172.a e no público 55.a. Esse proxy responde à porta 80, mas todo o tráfego HTTP é redirecionado automaticamente para 443.

Eu tenho outro servidor executando um servidor Keycloak independente. Além disso, este servidor está configurado para ser acessível ao público através do proxy reverso. Digamos que esteja sendo executado no ip 172.k local. Este servidor Keycloak está sendo executado apenas em HTTP. As solicitações HTTP são tratadas usando SSL sobre o proxy reverso.

Por último, tenho outro frontend-webapp em execução no ip local 172.f. Esse frontend-webapp está sendo executado no Nodejs e também é configurado através do proxy reverso. Também está executando apenas HTTP, mas o cliente (navegador) está usando SSL através do proxy reverso, assim como no serviço Keycloak e RESTful. Esse front-end está consumindo o serviço RESTful e também está configurado para autenticar usando o adaptador javascript keycloak.

O serviço RESTful é configurado como somente portador usando o adaptador Spring Boot Keycloak, enquanto o aplicativo de front-end é configurado com o tipo de acesso public.

O servidor de serviço RESTful, o servidor Keycloak e o servidor front-end não são acessíveis ao público; eles são acessíveis apenas através do proxy reverso. Mas eles podem se comunicar (já que estão na mesma rede privada).

No arquivo keycloak.json do frontend, oauth-server-url está definido como o URL do proxyhttps://example.com/auth, e o front-end pode obter com êxito um token válido. Agora, quando tento consumir o serviço RESTful, recebo um erro no adaptador RESTful de que o emissor do token é inválido. No cabeçalho http, é claro, estou enviando oAuthorization: Bearer <token>. A razão pela qual estou recebendo esse erro é que, na configuração do RESTful keycloak, configurei oauth-server-url usar o URL localhttp://172.k:9080/auth, então esse URL é diferente daquele no token (que éhttps://example.com/auth)

Pergunta, questão

Não posso incluir o mesmoauth-server-url no serviço RESTful e no front-end, porque isso exigirá que eu também configure HTTPs no serviço RESTful (porque esse URL é https) e isso complicará bastante as coisas, incluindo a necessidade de configurar certificados e coisas assim. Também acho que é ineficiente e impraticável configurar o SSL apenas em servidores locais.

Portanto, minha pergunta é como posso fazer o adaptador falar com o Keycloak sem passar pelo proxy reverso. Desejo que o adaptador RESTful fale com o servidor Keyclok para verificação de token atravésauth-server-url: http://172.k:9080/auth.

Anteriormente, havia um URL diferente para o back-end, que foi removido:https://issues.jboss.org/browse/KEYCLOAK-2623

questionAnswers(3)

yourAnswerToTheQuestion