Сопоставление групп#
Провайдеры групп в Trino сопоставляют имена пользователей с группами для более простого контроля доступа и управления группами ресурсов.
Настройте провайдер групп, создав файл etc/group-provider.properties
на координаторе:
group-provider.name=file
Значение group-provider.name должно быть file или ldap, а
конфигурация выбранного провайдера групп должна быть включена в тот же файл.
Имя свойства |
Описание |
|---|---|
|
Имя используемого провайдера групп. Поддерживаемые значения:
|
|
Необязательное преобразование регистра имени группы. Поддерживаемые значения:
По умолчанию: |
Интеграция с контролем доступа#
Группы, разрешенные провайдером групп, передаются в движок системного контроля доступа Trino. Правила контроля доступа могут ссылаться на эти имена групп, чтобы предоставлять или ограничивать разрешения.
Файловый провайдер групп#
Файловый провайдер групп разрешает членство в группах по конфигурации в файле group-provider.properties на координаторе.
Конфигурация#
Включите файловый провайдер групп, создав файл
etc/group-provider.properties на координаторе:
group-provider.name=file
file.group-file=/path/to/group.txt
Доступны следующие свойства конфигурации:
Имя свойства |
Описание |
|---|---|
|
Путь к файлу групп. |
|
Интервал времени между обновлениями конфигурации
сопоставления групп из файла. По умолчанию: |
Формат файла групп#
Файл групп содержит список групп и участников, по одной записи на строку, разделенных двоеточием. Пользователи разделяются запятой.
group_name:user_1,user_2,user_3
LDAP-провайдер групп#
LDAP-провайдер групп разрешает членство пользователей в группах из конфигурации, полученной с LDAP-сервера. Это позволяет определять правила доступа на основе LDAP-групп, а не отдельных пользователей.
Конфигурация#
Включите LDAP-провайдер групп, создав файл etc/group-provider.properties
на координаторе, и добавьте дальнейшую конфигурацию для подключения к
LDAP-серверу и другую информацию, как описано в следующих разделах.
group-provider.name=ldap
Имя свойства |
Описание |
|---|---|
|
URI LDAP-сервера. Например, |
|
Разрешить небезопасное соединение с LDAP-сервером. По умолчанию: |
|
Путь к хранилищу ключей PEM или JKS. |
|
Пароль для хранилища ключей. |
|
Путь к хранилищу доверенных сертификатов PEM или JKS. |
|
Пароль для хранилища доверенных сертификатов. |
|
Referrals позволяют находить записи на нескольких LDAP-серверах.
Игнорируйте их, чтобы искать только в одном LDAP-сервере. По умолчанию: |
|
Таймаут длительности на установление соединения.
По умолчанию: |
|
Таймаут длительности на чтение данных из LDAP.
По умолчанию: |
|
Bind distinguished name для пользователя-администратора. Например,
|
|
Bind-пароль, используемый для пользователя-администратора. |
|
Базовый distinguished name для пользователей. Например, |
|
LDAP-фильтр для поиска записей пользователей; |
|
Атрибут для извлечения имени группы из записи группы. Например, |
|
Использовать ли разрешение групп на основе поиска. По умолчанию: |
Поведение разрешения групп управляется свойством ldap.use-group-filter.
При разрешении групп на основе поиска Trino ищет записи групп, которые
включают DN пользователя. Для этого требуются следующие свойства:
Имя свойства |
Описание |
|---|---|
|
Базовый distinguished name для групп. Например, |
|
Фильтр поиска для групповых документов. Например, |
|
Атрибут из групповых документов, используемый для фильтрации по участнику. Например,
|
В случае разрешения групп на основе атрибутов Trino считывает список групп напрямую из атрибута пользователя. Для этого требуется следующее свойство:
Имя свойства |
Описание |
|---|---|
|
Атрибут членства в группе в пользовательских документах. Например, |
Примеры конфигураций#
Следующая конфигурация - пример OpenLDAP (на основе поиска) провайдера групп:
group-provider.name=ldap
group-provider.group-case=lower
ldap.url=ldap://ldap.example.com:389
ldap.admin-user=cn=admin,dc=example,dc=com
ldap.admin-password=your_password
ldap.group-name-attribute=cn
ldap.user-base-dn=ou=users,dc=example,dc=com
ldap.user-search-filter=(uid={0})
ldap.use-group-filter=true
ldap.group-base-dn=ou=groups,dc=example,dc=com
ldap.group-search-filter=(cn=trino_*)
ldap.group-search-member-attribute=member
Следующая конфигурация - пример Active Directory (один запрос, на основе атрибутов) провайдера групп:
group-provider.name=ldap
group-provider.group-case=lower
ldap.url=ldaps://ad.example.com:636
ldap.admin-user=cn=admin,dc=example,dc=com
ldap.admin-password=your_password
ldap.group-name-attribute=cn
ldap.user-base-dn=ou=users,dc=example,dc=com
ldap.user-search-filter=(sAMAccountName={0})
ldap.use-group-filter=false
ldap.user-member-of-attribute=memberOf