7장. 공개 호스트 이름 사용
Red Hat Single Sign-On은 여러 가지 사항에 공개 호스트 이름을 사용합니다. 예를 들어, 암호 재설정 이메일에 전송된 토큰 발행자 필드 및 URL에서 다음을 수행합니다.
Hostname SPI는 요청에 대한 호스트 이름을 구성하는 방법을 제공합니다. 기본 공급자를 사용하면 요청 URI를 기반으로 백엔드 요청을 허용하는 동안 프런트 엔드 요청에 대한 고정 URL을 설정할 수 있습니다. 또한 기본 제공 공급자가 필요한 기능을 제공하지 않는 경우 자체 공급자를 개발할 수도 있습니다.
7.1. 기본 공급자 링크 복사링크가 클립보드에 복사되었습니다!
기본 호스트 이름 공급자는 구성된 frontendUrl 을 frontend 요청의 기본 URL(user-agents의 요청)으로 사용하고 요청 URL을 백엔드 요청(클라이언트의 직접 요청)으로 사용합니다.
프런트 엔드 요청은 Keycloak 서버와 동일한 컨텍스트 경로를 가질 필요가 없습니다. 즉, 내부 URL이 https://10.0.0.10:8080/auth 일 수 있는 반면, 예를 들어 https://example.org/keycloak 또는 https://example.org/keycloak 에 Keycloak을 노출할 수 있습니다.
이를 통해 내부 클라이언트가 내부 도메인 이름 또는 IP 주소를 사용할 수 있는 반면 사용자 에이전트(브라우저)에서 공개 도메인 이름을 통해 Red Hat Single Sign-On에 요청을 보낼 수 있습니다.
이는 authorization_endpoint 에서 프런트 엔드 URL을 사용하는 반면 token_endpoint 는 백엔드 URL을 사용하는 경우 OpenID Connect Discovery 끝점에 반영됩니다. 여기에 인스턴스의 공용 클라이언트가 공용 끝점을 통해 Keycloak에 문의하므로 authorization_endpoint 및 token_endpoint 의 기반이 동일합니다.
Keycloak에 대한 frontendUrl을 설정하려면 add -Dkeycloak.frontendUrl=https://auth.example.org 를 시작에 전달하거나 standalone.xml 에서 구성할 수 있습니다. 아래 예제를 참조하십시오.
jboss-cli로 frontendUrl 을 업데이트하려면 다음 명령을 사용합니다.
/subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=properties.frontendUrl,value="https://auth.example.com")
/subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=properties.frontendUrl,value="https://auth.example.com")
모든 요청이 공용 도메인 이름을 통과하도록 하려면 백엔드 요청에서 프런트 엔드 URL을 사용하도록 강제 적용하고 forceBackendUrlToFrontendUrl 을 true 로 설정하여 .
개별 영역에 대한 기본 프런트 엔드 URL을 덮어쓸 수도 있습니다. 이 작업은 관리자 콘솔에서 수행할 수 있습니다.
공용 도메인에 관리 끝점 및 콘솔을 노출하지 않으려면 속성 adminUrl 을 사용하여 frontendUrl 과 다른 관리자 콘솔의 고정 URL을 설정합니다. 또한 서버 관리 가이드를 참조하는 방법에 대한 자세한 내용은 외부에서 /auth/admin 에 대한 액세스를 차단해야 합니다.