Авторизация внешних пользователей и систем через LDAP¶
TDG поддерживает технологию единого входа (Single Sign-On) – механизм аутентификации, позволяющий пользователям получать доступ к нескольким приложениям и сервисам c одним набором учетных данных. Это означает, что авторизоваться в TDG можно как через пользователей и токены приложений, так и с использованием такого внешнего инструмента, как LDAP.
LDAP (Lightweight Directory Service Protocol) – открытый протокол для хранения и получения данных из службы каталогов. LDAP позволяет централизованно настраивать права доступа к данным.
В TDG доступны три способа настройка протокола LDAP:
в веб-интерфейсе TDG;
через конфигурационный файл
config.yml;через GraphQL API, в секции
account_provider.
В этом руководстве рассмотрим первые два способа настройки протокола.
Для выполнения примера требуются:
настроенный сервер LDAP.
Примечание
Для локального тестирования LDAP-авторизации можно использовать сервер GLAuth. Гарантируется работа с версией GLAuth 2.0.0
Руководство включает в себя следующие шаги:
Особенности конфигурации LDAP¶
По умолчанию, логин в систему – это строка вида user@domain, где:
user– пользователь LDAP, который состоит в определенном домене и организационном подразделении;domain– домен LDAP.
Пример: tdguser@my.domain.ru.
Если подключена Active Directory, служба каталогов Microsoft,
для входа в систему используется адрес электронной почты пользователя LDAP.
В качестве фильтра при этом используется атрибут Active Directory userprincipalname=email,
где email – адрес электронной почты пользователя.
Каждый пользователь LDAP состоит в одной или нескольких группах LDAP (domain group).
Группе LDAP задается определенная роль (например, admin), которая определяет
права доступа для пользователя из этой группы.
Если пользователь LDAP состоит сразу в нескольких группах, он получает разрешения на действия из всех ролей, заданных
для этих групп.
Настройка LDAP в веб-интерфейсе¶
Добавим новую конфигурацию LDAP через веб-интерфейс TDG.
На вкладке Settings > LDAP нажмите кнопку Add Configuration.
В диалоговом окне LDAP укажите параметры, необходимые для вашей конфигурации:
Domain– доменное имя, используемое в доменном логине пользователя (tdguser@my.domain.ru). Пример:my.domain.ru;Hosts– адрес подключения к серверу LDAP. Пример:server.my.domain.ru:389;Organizational units(опционально) – названия организационных подразделений или групп пользователей. Параметр будет пропущен, если для него не задано явное значение. Пример:tarantool;Options(опционально) – настройки LDAP. Параметр будет пропущен, если для него не задано явное значение;Roles– описание ролей, которые будут назначаться пользователю в зависимости от групп LDAP, в которых он состоит. Для каждой роли описаны название роли и соответствующие ей LDAP-группы. Описание LDAP-группы состоит из общего имени (CN), названия организационного подразделения или LDAP-группы (OU) и компонентов домена (DC).Пример: добавьте роль
admin. Для нее в полеDomain Groupsукажите значениеCN=tarantool, OU=groups, OU=other_groups, DC=my, DC=domain, DC=ru;Search timeout(опционально) – время ожидания ответа от сервера LDAP в секундах. Значение по умолчанию:2;Use TLS(опционально) – использование TLS. Значение по умолчанию:false;Use Active Directory(опционально) – использование Active Directory. Значение по умолчанию:false.
При настройке обратите внимание на параметры
domainиorganizational_units. Эти параметры используются при аутентификации для поиска пользователя в соответствующем домене и организационном подразделении.Полное описание параметров LDAP приведено в разделе ldap справочника конфигурации.
Нажмите кнопку Submit, чтобы добавить конфигурацию LDAP.
Чтобы войти в систему как пользователь LDAP, нажмите кнопку Log in в правом верхнем углу. В диалоговом окне Authorization введите логин (вида
user@domain) и пароль пользователя LDAP, затем нажмите кнопку Login.
Настройка LDAP в файле конфигурации¶
Указать конфигурацию LDAP можно:
в общем конфигурационном файле (секция
ldapв файлеconfig.yml);в отдельном файле
ldap.yml.
Полное описание параметров LDAP приведено в разделе ldap справочника конфигурации.
Пример конфигурации с включенными TLS и Active Directory:
ldap:
- domain: 'my.domain.ru'
organizational_units: ['tarantool']
hosts:
- server.my.domain.ru:389
use_active_directory: true
use_tls: true
search_timeout: 2
options:
- LDAP_OPT_X_TLS_CACERTFILE: /certs/CA_Root.crt
roles:
- domain_groups:
- 'cn=tarantool,ou=groups,ou=other_groups,dc=my,dc=domain,dc=ru'
role: 'admin'
Созданный yml-файл с настройками конфигурации нужно упаковать в zip-архив и загрузить
в TDG согласно инструкции.