Авторизация внешних пользователей и систем через 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 согласно инструкции.