Аутентификатор сертификатов#

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

Реализация#

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

CertificateAuthenticator содержит единственный метод, authenticate(), который аутентифицирует клиентский сертификат и возвращает Principal, который затем авторизуется через Системный контроль доступа.

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

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

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

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

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

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

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