Авторизация внешних пользователей и систем через LDAP
TDG поддерживает технологию единого входа (Single Sign-On)
- механизм аутентификации, позволяющий пользователям получать доступ к нескольким приложениям и сервисам c одним набором учетных данных. Это означает, что авторизоваться в TDG можно как через пользователей и токены приложений, так и с использованием такого внешнего инструмента, как LDAP.
LDAP (Lightweight Directory Service Protocol) - открытый протокол для хранения и получения данных из службы каталогов. LDAP позволяет централизованно настраивать права доступа к данным.
В TDG доступны три способа настройка протокола LDAP:
- в веб-интерфейсе TDG;
- через конфигурационный файл
config.yml; - через GraphQL API, в секции
account_provider.
В этом руководстве рассмотрим первые два способа настройки протокола.
Для выполнения примера требуются:
- настроенный кластер TDG;
- настроенный сервер 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 через веб-интерфейс 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в файлеconfig.yml); - в отдельном файле
ldap.yml.
Полное описание параметров LDAP приведено в разделе ldap справочника конфигурации.
Пример конфигурации с включенными TLS и Active Directory:
ldap:- domain: 'my.domain.ru'organizational_units: ['tarantool']hosts:- server.my.domain.ru:389use_active_directory: trueuse_tls: truesearch_timeout: 2options:- LDAP_OPT_X_TLS_CACERTFILE: /certs/CA_Root.crtroles:- domain_groups:- 'cn=tarantool,ou=groups,ou=other_groups,dc=my,dc=domain,dc=ru'role: 'admin'
Созданный yml-файл с настройками конфигурации нужно упаковать в
zip-архив и загрузить в TDG согласно
инструкции.