我有一个关于Keycloak和Openshift的棘手问题。
我在Openshift Origin安装中设置了一个Keycloak服务器,并为它设置了一个外部路由。
我也在同一个Openshift Origin中设置了一个nodejs应用程序,我正在尝试使用它的外部路由DNS访问Keycloak服务器。
Keycloak服务器可在identity.myapp.com外部使用 我的应用程序可从app.myapp.com外部获取
但是当我的nodejs应用尝试使用令牌端点检索令牌时,它会遇到No route to Host
错误。
当我进入nodejs app pod并ping外部DNS名称时,它会正确响应,但当我在其上尝试wget
命令时,我也会收到No route to Host
错误。
这是我测试的日志:
sh-4.2$ ping identity.myapp.com
PING identity.myapp.com (xx.xx.xx.xx) 56(84) bytes of data.
64 bytes from xxx (xx.xx.xx.xx): icmp_seq=1 ttl=63 time=0.236 ms
64 bytes from xxx (xx.xx.xx.xx): icmp_seq=2 ttl=63 time=0.170 ms
--- identity.myapp.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.170/0.203/0.236/0.033 ms
sh-4.2$ wget https://identity.myapp.com
--2017-06-28 20:29:29-- https://identity.myapp.com/
Resolving identity.myapp.com (identity.myapp.com)... xx.xx.xx.xx
Connecting to identity.myapp.com (identity.myapp.com)|xx.xx.xx.xx|:443... failed: No route to host.
我不能使用它的内部DNS名称调用Keycloak服务器,它设置为使用它的外部发行者DNS名称提供令牌,并且使用其他名称调用它会导致Invalid token issuer
错误(我已打开)在我正在使用的图书馆的github上的一张票,你可以找到它here
我的最终解决方案是将Keycloak服务器外部化,但我将失去Openshift提供的所有好处......
如何在我的应用程序窗格中使用HTTPS
中的外部DNS名称访问Keycloak服务器?