Аутентификатор заголовков#

Trino поддерживает аутентификацию по заголовкам поверх TLS через пользовательский аутентификатор заголовков, который извлекает principal из заранее определенного заголовка(ов), выполняет необходимую проверку и создает аутентифицированный principal.

Реализация#

HeaderAuthenticatorFactory отвечает за создание экземпляра HeaderAuthenticator. Он также определяет имя этого аутентификатора, которое администратор использует в конфигурации Trino.

HeaderAuthenticator содержит единственный метод, createAuthenticatedPrincipal(), который валидирует заголовки запроса, обернутые интерфейсом Headers; имеющим метод getHeader(String name), и возвращает Principal, который затем авторизуется через Системный контроль доступа.

Реализация HeaderAuthenticatorFactory должна быть упакована как плагин и установлена в кластере Trino.

Конфигурация#

После установки на координатор плагина, реализующего HeaderAuthenticatorFactory, он настраивается с помощью файла etc/header-authenticator.properties. Все свойства, кроме header-authenticator.name, специфичны для реализации HeaderAuthenticatorFactory.

Свойство header-authenticator.name используется Trino для поиска зарегистрированного HeaderAuthenticatorFactory по имени, возвращаемому HeaderAuthenticatorFactory.getName(). Остальные свойства передаются в виде map в HeaderAuthenticatorFactory.create().

Пример файла конфигурации:

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

Дополнительно координатор должен быть настроен на использование аутентификации по заголовкам и иметь включенный HTTPS (или включенную переадресацию HTTPS).