Аутентификатор заголовков#
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).