有没有办法配置Keycloak 2.2.1,以便无法从远程IP访问管理控制台?
基本上,我想将它设置为Wildfly管理控制台,您可以在服务器上本地访问它,但无法远程访问它。
答案 0 :(得分:1)
根据Keycloak文档,每个领域都有一个专用的管理控制台,可以通过转到URL / auth / admin / {realm-name} / console 来访问。
我认为您可以阻止此URL进行外部访问,同时关注可能用于Keycloak REST API的其他URI以及外部应用程序也可以下载的外部模块(如javascript模块)。同样的方法也可以应用于默认端口9990的JBoss EAP控制台管理。
JBoss EAP具有可用于阻止特定IP范围或仅限制访问本地服务器的其他功能。
您还可以应用特定的下载过滤器来阻止外部访问。 见下面的例子:
<subsystem xmlns="urn:jboss:domain:undertow:4.0">
<buffer-cache name="default"/>
<server name="default-server">
<ajp-listener name="ajp" socket-binding="ajp"/>
<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
<https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<http-invoker security-realm="ApplicationRealm"/>
<filter-ref name="proxy-peer" />
<filter-ref name="restrict-admin-console-access" />
<access-log pattern="%h %l %u [%t] "%r" %s %b "%{i,Referer}" "%{i,User-Agent}"" />
</host>
</server>
<servlet-container name="default">
<jsp-config/>
<websockets/>
</servlet-container>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
</handlers>
<filters>
<filter name="request-dumper" class-name="io.undertow.server.handlers.RequestDumpingHandler" module="io.undertow.core" />
<request-limit name="limit-connections" queue-size="100" max-concurrent-requests="1200" />
<filter name="proxy-peer" module="io.undertow.core" class-name="io.undertow.server.handlers.ProxyPeerAddressHandler" />
<expression-filter module="io.undertow.core" name="restrict-admin-console-access" expression="path-prefix(/auth/admin/master/console/) -> ip-access-control(default-allow=false, acl={'127.0.0.1 allow'})" />
</filters>
</subsystem>
答案 1 :(得分:-1)
我想有很多方法。我想到的两个是在linux中使用iptables服务...或者启动一个docker而不是通过外部端口暴露它的端口