헤더 인증기

헤더 인증기 (Header authenticator)

Trino는 커스텀 헤더 인증기를 통해 TLS 위에서 헤더 인증을 지원해요. 이 인증기는 미리 정의된 헤더에서 주체(principal)를 추출하고 필요한 검증을 수행한 뒤 인증된 주체를 만들어요.

출처: 문서

본문

구현 (Implementation)

HeaderAuthenticatorFactoryHeaderAuthenticator 인스턴스를 만드는 책임을 가져요. 그리고 관리자가 Trino 설정에서 사용하는 이 인증기의 이름도 정의해요.

HeaderAuthenticator에는 createAuthenticatedPrincipal() 메서드 하나가 있어요. 이 메서드는 Headers 인터페이스로 감싸진 요청 헤더를 검증해요. Headers 인터페이스에는 getHeader(String name) 메서드가 있고, 이 메서드는 검증 후 Principal을 반환하는데, 이 주체는 이후 시스템 접근 제어에서 인가돼요.

HeaderAuthenticatorFactory의 구현은 플러그인으로 감싸서 Trino 클러스터에 설치해야 해요.

설정 (Configuration)

HeaderAuthenticatorFactory를 구현한 플러그인을 코디네이터에 설치한 뒤에는 etc/header-authenticator.properties 파일로 설정해요. header-authenticator.name을 제외한 모든 속성은 HeaderAuthenticatorFactory 구현체별로 달라요.

header-authenticator.name 속성은 Trino가 HeaderAuthenticatorFactory.getName()이 반환하는 이름을 기준으로 등록된 팩토리를 찾는 데 사용해요. 나머지 속성은 맵으로 묶여 HeaderAuthenticatorFactory.create()에 전달돼요.

예제 설정 파일:

header-authenticator.name=custom
custom-property1=custom-value1
custom-property2=custom-value2

추가로, 코디네이터가 헤더 인증을 사용하도록 설정하고 HTTPS(또는 HTTPS 포워딩)를 활성화해야 해요.

더 알아보기 (Learn more)

시스템 접근 제어와 함께 인증기들이 어떻게 협력하는지는 시스템 접근 제어 문서를 살펴보세요.