keycloak是基于OAuth2.0的第三方验证和授权系统,提高了我们系统安全开发方面的效率。关于keycloak保护spring boot程序的例子可以看一下这篇译文https://www.oschina.net/translate/easily-secure-your-spring-boot-applications-with-k.

keycloak使用JBoss服务器作为容器,而JBoss服务器由于一些安全问题默认是不允许外部访问的(比如远程连接),所以要想远程连接keycloak,就要更改一下设置。下面是我找的两种解决方法。


1.启动keycloak的时候在后面加上参数 -b  0.0.0.0  -bmanagement  0.0.0.0 

./standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0


2.除了在启动时加上一些参数,你也可以在keycloak/standalone/configuration/standalone.xml中修改一些配置来启动远程连接,这样就不用每次启动时加上额外的参数。

首先打开standalone.xml文件,定位到如下内容(value值可能会有一些差别)

<interface name="management">
	<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
</interface>
<interface name="public">
	<inet-address value="${jboss.bind.address:0.0.0.0}"/>
</interface>


将上面配置替换成如下:

<interface name="management">
	<any-address/>
</interface>
<interface name="public">
	<any-address/>
</interface>

再重新启动keycloak就可以了。


总结:我是用第二种方法解决的,不知道为什么第一种不行,不过大家可以参考一下,或许你们的可以解决,希望会对你们有帮助。


参考网址:

https://stackoverflow.com/questions/34410707/enabling-remote-access-to-keycloak

https://bgasparotto.com/enable-wildfly-remote-access/

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐