16.2. 관리자 엔드포인트 및 관리 콘솔
Red Hat Single Sign-On에서는 기본적으로 관리 이외의 사용과 동일한 포트의 관리 REST API 및 웹 콘솔을 노출합니다. 외부 액세스가 필요하지 않은 경우 관리 끝점을 외부에 노출하지 마십시오. 관리 끝점을 외부에 노출해야 하는 경우 Red Hat Single Sign-On에 직접 노출하거나 프록시를 사용할 수 있습니다.
프록시를 사용하여 끝점을 노출하려면 프록시 설명서를 참조하십시오. /auth/admin
엔드포인트에 대한 요청에 대한 액세스를 제어해야 합니다.
Red Hat Single Sign-On에서는 두 가지 옵션을 사용하여 엔드포인트를 직접 노출할 수 있습니다. IP 제한 및 별도의 포트입니다.
Red Hat Single Sign-On의 프런트 엔드 URL에서 관리자 콘솔에 액세스할 수 없는 경우 기본 호스트 이름 공급자에 고정 관리자 URL을 구성합니다.
16.2.1. IP 제한
/auth/admin
에 대한 액세스를 특정 IP 주소로만 제한할 수 있습니다. 예를 들어 /auth/admin
에 대한 액세스를 10.0.0.1
범위의 IP 주소로 10.0.0.255
로 제한합니다.
<subsystem xmlns="urn:jboss:domain:undertow:12.0"> ... <server name="default-server"> ... <host name="default-host" alias="localhost"> ... <filter-ref name="ipAccess"/> </host> </server> <filters> <expression-filter name="ipAccess" expression="path-prefix('/auth/admin') -> ip-access-control(acl={'10.0.0.0/24 allow'})"/> </filters> ... </subsystem>
<subsystem xmlns="urn:jboss:domain:undertow:12.0">
...
<server name="default-server">
...
<host name="default-host" alias="localhost">
...
<filter-ref name="ipAccess"/>
</host>
</server>
<filters>
<expression-filter name="ipAccess" expression="path-prefix('/auth/admin') -> ip-access-control(acl={'10.0.0.0/24 allow'})"/>
</filters>
...
</subsystem>
다음 CLI 명령을 사용하여 특정 IP 주소에 대한 액세스를 제한할 수도 있습니다.
/subsystem=undertow/configuration=filter/expression-filter=ipAccess:add(,expression="path-prefix[/auth/admin] -> ip-access-control(acl={'10.0.0.0/24 allow'})") /subsystem=undertow/server=default-server/host=default-host/filter-ref=ipAccess:add()
/subsystem=undertow/configuration=filter/expression-filter=ipAccess:add(,expression="path-prefix[/auth/admin] -> ip-access-control(acl={'10.0.0.0/24 allow'})")
/subsystem=undertow/server=default-server/host=default-host/filter-ref=ipAccess:add()
프록시를 사용한 IP 제한의 경우 Red Hat Single Sign-On이 프록시 IP 주소가 아닌 클라이언트 IP 주소를 수신하도록 프록시를 구성합니다.
16.2.2. 포트 제한
/auth/admin
을 노출되지 않은 다른 포트에 노출할 수 있습니다. 예를 들어 포트 8444
에 /auth/admin
을 노출하고 기본 포트 8443
에 대한 액세스를 방지합니다.
<subsystem xmlns="urn:jboss:domain:undertow:12.0"> ... <server name="default-server"> ... <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/> <https-listener name="https-admin" socket-binding="https-admin" security-realm="ApplicationRealm" enable-http2="true"/> <host name="default-host" alias="localhost"> ... <filter-ref name="portAccess"/> </host> </server> <filters> <expression-filter name="portAccess" expression="path-prefix('/auth/admin') and not equals(%p, 8444) -> response-code(403)"/> </filters> ... </subsystem> ... <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> ... <socket-binding name="https" port="${jboss.https.port:8443}"/> <socket-binding name="https-admin" port="${jboss.https.port:8444}"/> ... </socket-binding-group>
<subsystem xmlns="urn:jboss:domain:undertow:12.0">
...
<server name="default-server">
...
<https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
<https-listener name="https-admin" socket-binding="https-admin" security-realm="ApplicationRealm" enable-http2="true"/>
<host name="default-host" alias="localhost">
...
<filter-ref name="portAccess"/>
</host>
</server>
<filters>
<expression-filter name="portAccess" expression="path-prefix('/auth/admin') and not equals(%p, 8444) -> response-code(403)"/>
</filters>
...
</subsystem>
...
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
...
<socket-binding name="https" port="${jboss.https.port:8443}"/>
<socket-binding name="https-admin" port="${jboss.https.port:8444}"/>
...
</socket-binding-group>
포트 8444
에 /auth/admin
을 노출하고 CLI 명령을 사용하여 기본 포트 8443
에 대한 액세스를 차단할 수 있습니다.
/socket-binding-group=standard-sockets/socket-binding=https-admin/:add(port=8444) /subsystem=undertow/server=default-server/https-listener=https-admin:add(socket-binding=https-admin, security-realm=ApplicationRealm, enable-http2=true) /subsystem=undertow/configuration=filter/expression-filter=portAccess:add(,expression="path-prefix('/auth/admin') and not equals(%p, 8444) -> response-code(403)") /subsystem=undertow/server=default-server/host=default-host/filter-ref=portAccess:add()
/socket-binding-group=standard-sockets/socket-binding=https-admin/:add(port=8444)
/subsystem=undertow/server=default-server/https-listener=https-admin:add(socket-binding=https-admin, security-realm=ApplicationRealm, enable-http2=true)
/subsystem=undertow/configuration=filter/expression-filter=portAccess:add(,expression="path-prefix('/auth/admin') and not equals(%p, 8444) -> response-code(403)")
/subsystem=undertow/server=default-server/host=default-host/filter-ref=portAccess:add()