메인 콘텐츠로 건너뛰기
이 페이지는 ClickHouse Cloud에는 적용되지 않습니다. 여기에서 설명하는 기능은 ClickHouse Cloud 서비스에서 지원되지 않습니다. 자세한 내용은 ClickHouse의 Cloud Compatibility 가이드를 참조하십시오.
HTTP server를 사용하여 ClickHouse 사용자를 인증할 수 있습니다. HTTP 인증은 users.xml 또는 로컬 access control 경로에 정의된 기존 사용자에 한해 외부 인증자로만 사용할 수 있습니다. 현재는 GET 메서드를 사용하는 Basic 인증 방식만 지원합니다.

HTTP 인증 서버 정의

HTTP 인증 서버를 정의하려면 config.xmlhttp_authentication_servers 섹션을 추가하십시오. 예시
<clickhouse>
    <!- ... -->
    <http_authentication_servers>
        <basic_auth_server>
          <uri>http://localhost:8000/auth</uri>
          <connection_timeout_ms>1000</connection_timeout_ms>
          <receive_timeout_ms>1000</receive_timeout_ms>
          <send_timeout_ms>1000</send_timeout_ms>
          <max_tries>3</max_tries>
          <retry_initial_backoff_ms>50</retry_initial_backoff_ms>
          <retry_max_backoff_ms>1000</retry_max_backoff_ms>
          <forward_headers>
            <name>Custom-Auth-Header-1</name>
            <name>Custom-Auth-Header-2</name>
          </forward_headers>

        </basic_auth_server>
    </http_authentication_servers>
</clickhouse>

참고로, http_authentication_servers 섹션 내에서 서로 다른 이름을 사용해 여러 HTTP 서버를 정의할 수 있습니다. 매개변수
  • uri - 인증 요청을 보낼 URI
server와 통신하는 데 사용하는 socket의 밀리초 단위 timeout:
  • connection_timeout_ms - 기본값: 1000 ms.
  • receive_timeout_ms - 기본값: 1000 ms.
  • send_timeout_ms - 기본값: 1000 ms.
재시도 매개변수:
  • max_tries - 인증 요청을 수행하는 최대 시도 횟수입니다. 기본값: 3
  • retry_initial_backoff_ms - 재시도 시 초기 백오프 인터벌입니다. 기본값: 50 ms
  • retry_max_backoff_ms - 최대 백오프 인터벌입니다. 기본값: 1000 ms
전달 헤더: 이 부분에서는 클라이언트 요청 헤더에서 외부 HTTP 인증자로 전달할 헤더를 정의합니다. 헤더는 설정에 지정된 항목과 대소문자를 구분하지 않고 일치 여부를 확인하지만, 전달될 때는 수정 없이 원래 형태 그대로 전달됩니다.

users.xml에서 HTTP 인증 활성화

사용자에 대해 HTTP 인증을 활성화하려면 사용자 정의에서 password 또는 이와 유사한 섹션 대신 http_authentication 섹션을 지정하십시오. 매개변수:
  • server - 앞서 설명한 대로 기본 config.xml 파일에 구성된 HTTP 인증 server의 이름입니다.
  • scheme - HTTP 인증 방식입니다. 현재는 Basic만 지원됩니다. 기본값: Basic
예시 (users.xml에 추가):
<clickhouse>
    <!- ... -->
    <my_user>
        <!- ... -->
        <http_authentication>
            <server>basic_server</server>
            <scheme>basic</scheme>
        </http_authentication>
    </test_user_2>
</clickhouse>
HTTP authentication은 다른 인증 메커니즘과 함께 사용할 수 없습니다. http_authentication과 함께 password 같은 다른 섹션이 있으면 ClickHouse가 강제 종료됩니다.

SQL을 사용한 HTTP 인증 활성화

ClickHouse에서 SQL 기반 액세스 제어 및 계정 관리가 활성화된 경우, HTTP 인증으로 식별되는 사용자도 SQL 문을 사용해 생성할 수 있습니다.
CREATE USER my_user IDENTIFIED WITH HTTP SERVER 'basic_server' SCHEME 'Basic'
…또는 명시적으로 스키마를 정의하지 않으면 Basic이 기본값으로 사용됩니다
CREATE USER my_user IDENTIFIED WITH HTTP SERVER 'basic_server'

세션 설정 전달

HTTP 인증 서버의 응답 본문이 JSON 포맷이며 settings 하위 객체를 포함하는 경우, ClickHouse는 해당 key: value 쌍을 문자열 값으로 파싱하여 인증된 사용자의 현재 세션 설정으로 설정하려고 시도합니다. 파싱에 실패하면 server의 응답 본문은 무시됩니다.
마지막 수정일 2026년 6월 10일