Настройка поддержки LDAP¶
Содержание
Особенности интеграции Microsoft Active Directory с OpenStack¶
- Пользователь, который используется для подключения в OpenStack Keystone до AD по протоколу LDAP должен:
- обладать правами на чтение информации из каталога AD и смену пароля, которые можно выставить с помощью делегирования на OU;
- иметь права администратора домена OpenStack.
- Необходимый протокол взаимодействия - LDAPS (порт 636). Для активации LDAPS в AD можно воспользоваться статьей;
- При передачи пароль должен быть в Unicode. Указывать пароль необходимо в кавычках. Подробнее - «Изменение пароля пользователя Windows Active Directory и LDS с помощью LDAP».
Дополнительно¶
- Инструкция по интеграции LDAP и OpenStack - - «Integrate Identity with LDAP» .
- Драйвер
tnx_ldap
, обеспечивающий изменение пароля в AD, устанавливается вместе с модулей TIONIX.Client (python3-tionix_client). Подробнее в разделе «Авторизация».
Настройка драйвера для работы с OpenLDAP¶
Для возможности смены пароля пользователя авторизованного через LDAP реализован драйвер tnx_ldap
, который расширяет встроенный ldap
. Драйвер корректно воспринимает ответ от сервера Active Directory, когда у пользователя выставлена принудительная смена пароля при первом входе. Также драйвер корректно сохраняет измененный пароль в Active Directory, ранее драйвер Keystone некорректно обрабатывал запросы с сервера Active Directory (был реализован под общепринятый LDAP). Теперь в данной ситуации в VDI клиенте появляется форма смены пароля. Аналогично, при подключении VDI клиента в консольном режиме, через запрос нового пароля в консоли. Если пароль не соответствует требованиям безопасности LDAP сервера, то выводится соответствующее сообщение. Аналогично если не совпадают введенные новые пароли.
Важно
Для корректной работы драйвера с OpenLDAP необходим пакет python-ldap
версии 2.4.15-2.
Пример конфигурационного файла для OpenLDAP:
[identity]
driver = tnx_ldap
[ldap]
url = ldap://10.35.129.67:389
user = cn=admin,dc=test,dc=loc
password = ******
suffix = dc=test,dc=loc
use_dumb_member = False
allow_subtree_delete = False
user_tree_dn = ou=Users,dc=test,dc=loc
user_objectclass = person
group_tree_dn = ou=Groups,dc=test,dc=loc
group_objectclass = groupOfNames
user_allow_create = True
user_allow_update = True
user_allow_delete = True
group_allow_create = True
group_allow_update = True
group_allow_delete = True
user_id_attribute = uid
user_name_attribute = cn
user_mail_attribute = mail
user_pass_attribute = userPassword
user_filter = (&(objectClass=person)(memberOf=cn=group8,ou=Groups,dc=test,dc=loc))
group_id_attribute = cn
group_name_attribute = cn
group_member_attribute = member
group_desc_attribute = description
group_filter =
use_auth_pool = False
Примечание
Значения атрибутов для параметров user
и group
зависят от настроек OpenLDAP и могут отличаться от значений из примера.
Настройка драйвера для работы с Samba¶
Для возможности смены пароля пользователя авторизованного через LDAP реализован драйвер tnx_ldap
, который расширяет встроенный ldap
. Драйвер корректно воспринимает ответ от сервера Active Directory, когда у пользователя выставлена принудительная смена пароля при первом входе. Также драйвер корректно сохраняет измененный пароль в Active Directory, ранее драйвер Keystone некорректно обрабатывал запросы с сервера Active Directory (был реализован под общепринятый LDAP). Теперь в данной ситуации в VDI клиенте появляется форма смены пароля. Аналогично, при подключении VDI клиента в консольном режиме, через запрос нового пароля в консоли. Если пароль не соответствует требованиям безопасности LDAP сервера, то выводится соответствующее сообщение. Аналогично если не совпадают введенные новые пароли.
Пример конфигурационного файла для Samba:
[identity]
driver = tnx_ldap
[ldap]
url = ldap://10.35.20.130:389
user = "CN=Mitaka User,OU=users,OU=tionix,DC=tionix,DC=loc"
password = *******
suffix = dc=tionix,dc=loc
use_dumb_member = False
allow_subtree_delete = False
user_tree_dn = ou=users,ou=tionix,dc=tionix,dc=loc
user_objectclass = person
group_tree_dn = ou=groups,ou=tionix,dc=tionix,dc=loc
group_objectclass = group
user_allow_create = False
user_allow_update = True
user_allow_delete = False
group_allow_create = False
group_allow_update = False
group_allow_delete = False
user_id_attribute = cn
user_name_attribute = sAMAccountName
user_mail_attribute = mail
user_pass_attribute = unicodePwd
group_id_attribute = cn
group_name_attribute = cn
group_member_attribute =
group_desc_attribute = description
group_filter =
Примечание
Значения атрибутов для параметров user
и group
зависят от настроек OpenLDAP и могут отличаться от значений из примера.
Настройка маппинга полей в зависимости от сервера LDAP¶
В разных LDAP серверах сущности пользователя и его поля называются по-разному. Поэтому универсальной настройки нет, настраивается в зависимости от типа подключенного сервера. Примеры настройки:
[ldap]
user = dc=Manager,dc=example,dc=org
password = samplepassword
suffix = dc=example,dc=org
user_tree_dn = ou=Users,dc=example,dc=org
user_objectclass = inetOrgPerson
group_tree_dn = ou=Groups,dc=example,dc=org
group_objectclass = groupOfNames
Поля сущности пользователя и групп сопоставляются отдельно:
[ldap]
user_id_attribute = cn
user_name_attribute = sn
user_mail_attribute = mail
user_pass_attribute = userPassword
user_enabled_attribute = userAccountControl
user_enabled_mask = 2
user_enabled_invert = false
user_enabled_default = 512
user_default_project_id_attribute =
user_additional_attribute_mapping =
group_id_attribute = cn
group_name_attribute = ou
group_member_attribute = member
group_desc_attribute = description
group_additional_attribute_mapping =
Описывать все атрибуты необязательно, достаточно указать лишь необходимые.
Обратите внимание на разницу указание параметров в зависимости от типа сервера:
Windows Server AD:
user_pass_attribute = unicodePwd
OpenLdap и Samba:
user_pass_attribute = userPassword
Также важно учитывать перечень устаревших параметров:
user_allow_create = False
user_allow_update = False
user_allow_delete = False
Указывать данные параметры не нужно.