有什么方法可以配置 Keycloak 2.2.1,以便无法从远程 IP 访问管理控制台?
基本上,我想像 Wildfly 管理控制台一样设置它,您可以在其中在服务器上本地访问它,但不能远程访问它。
根据 Keycloak 文档,每个领域都有一个专用的管理控制台,可以通过访问 URL /auth/admin/{realm-name}/console 进行访问。
我认为您可以阻止此 URL 进行外部访问,注意可能用于 Keycloak REST API 的其他 URI 以及外部应用程序也可以下载的外部模块(如 javascript 模块)。同样的方法也适用于默认端口 9990 的 JBoss EAP 控制台管理员。
JBoss EAP 具有附加功能,可用于阻止特定 IP 范围或仅限制对本地服务器的访问。
您还可以应用特定的 undertow 过滤器来阻止外部访问。请参阅下面的示例:
<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>
Run Code Online (Sandbox Code Playgroud)
参考:https : //access.redhat.com/solutions/18412
| 归档时间: |
|
| 查看次数: |
9444 次 |
| 最近记录: |