Использование Active Directory в качестве внешней службы каталогов
1. Требования
-
Развернутый и настроенный домен
Active Directory
, в примере используетсяad.example.ru
; -
Создана сервисная учётная запись, в примере используется пользователь
zvirt
с паролемP@ssw0rd
; -
Настроенный DNS на разрешение SRV-записи
_ldap._tcp.gc._msdcs.example.ru
; -
Для настройки безопасного соединения между сервером LDAP и менеджером управления нужен подготовленный сертификат центра сертификации в формате
pem
; -
Если анонимный поиск по LDAP запрещен, то необходимо предоставить сервисному пользователю разрешения на просмотр всех пользователей и групп в Active Directory;
-
Если Active Directory охватывает несколько доменов, необходимо обратить внимание на ограничения описанные в файле
/usr/share/ovirt-engine-extension-aaa-ldap/profiles/ad.properties
; -
Установлен пакет
ovirt-engine-extension-aaa-ldap-setup
на менеджере управления.
Перейдите на менеджер управления виртуализацией и убедитесь в том, что в системе установлен пакет
Произведите установку, в случае его отсутствия:
|
2. Подключение Active Directory
2.1. Подключение Active Directory (на примере протокола plain
)
-
Перейдите на менеджер управления и запустите
ovirt-engine-extension-aaa-ldap-setup
для интерактивной установки:ovirt-engine-extension-aaa-ldap-setup
-
Выберите тип LDAP. Для
Active Directory
выбрать пункт3
.Available LDAP implementations: 1 - 389ds 2 - 389ds RFC-2307 Schema 3 - Active Directory 4 - IBM Security Directory Server 5 - IBM Security Directory Server RFC-2307 Schema 6 - IPA 7 - Novell eDirectory RFC-2307 Schema 8 - OpenLDAP RFC-2307 Schema 9 - OpenLDAP Standard Schema 10 - Oracle Unified Directory RFC-2307 Schema 11 - RFC-2307 Schema (Generic) 12 - RHDS 13 - RHDS RFC-2307 Schema 14 - iPlanet Please select:
-
Введите имя леса
Active Directory
.Please enter Active Directory Forest name: ad-example.zvirt.com [ INFO ] Resolving Global Catalog SRV record for ad-example.zvirt.com [ INFO ] Resolving LDAP SRV record for ad-example.zvirt.com
-
Выберите протокол подключения (в примере используется
plain
):NOTE: It is highly recommended to use secure protocol to access the LDAP server. Protocol startTLS is the standard recommended method to do so. Only in cases in which the startTLS is not supported, fallback to non standard ldaps protocol. Use plain for test environments only. Please select protocol to use (startTLS, ldaps, plain) [startTLS]: plain
-
Введите имя (DN) сервисного пользователя. Пользователь должен иметь разрешения для просмотра всех пользователей и групп на сервере каталогов. Если анонимный поиск разрешен, нажмите
Enter
без ввода.Enter search user DN (empty for anonymous): cn=user1,ou=Users,dc=test,dc=example,dc=com Enter search user password:
Рекомендуется использовать запись в формате
CN=zvirt,DC=example,DC=ru
.Получить данную строку можно, если перейти в оснастку
Active Directory
-пользователи и компьютеры
-Вид
-Дополнительные компоненты
. Затем найти необходимую учетную запись, открытьСвойства
-Редактор атрибутов
-distinguishedName
. Скопировать данное значение и указать его в сценарии подключения.При указании в формате
uid=zvirt,dc=example,dc=ru
возможно возникновение ошибки:ERROR otopi.plugins.ovirt_engine_extension_aaa_ldap.ldap.common common._customization_late:835 Cannot authenticate using 'uid=zvirt,dc=example,dc=ru
. -
Укажите использовать SSO для виртуальных машин или нет. Функция включена по умолчанию, но ее нельзя использовать, если используется SSO для входа на портал администрирования. Имя профиля должно совпадать с именем домена.
Are you going to use Single Sign-On for Virtual Machines (Yes, No) [Yes]:
-
Укажите имя профиля. Имя профиля доступно пользователям на странице входа. В этом примере используется
ar.local
.Please specify profile name that will be visible to users:ar.local
Пользователям необходимо выбрать нужный профиль из раскрывающегося списка при первом входе в систему. Затем информация сохраняется в файлах
cookie
браузера и используется при следующем входе пользователя в систему.Чтобы переименовать профиль после настройки домена, отредактируйте значение параметра
ovirt.engine.aaa.authn.profile.name
в файле/etc/ovirt-engine/extensions.d/example.com-authn.properties
.Перезапустите службу
ovirt-engine
, чтобы изменения вступили в силу. -
Протестируйте возможность поиска по LDAP и вход в систему, чтобы убедиться, что домен
Active Directory
правильно подключен к zVirt. Для проверки возможности входа (login) необходимо указать имя учетной записи и пароль. Для проверки возможности поиска по LDAP от имени пользователя необходимо выбратьPrincipal
, при использовании групп выбратьGroup
. В пунктеResolve Groups
ввестиYes
для получения информации о группе. ВвестиDone
для завершения настройки. По завершению настройки будут созданы три файла конфигурации.NOTE: It is highly recommended to test drive the configuration before applying it into engine. Login sequence is executed automatically, but it is recommended to also execute Search sequence manually after successful Login sequence. Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Login Enter search user name: testuser1 Enter search user password: [ INFO ] Executing login sequence... ... Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Search Select entity to search (Principal, Group) [Principal]: Term to search, trailing '*' is allowed: testuser1 Resolve Groups (Yes, No) [No]: [ INFO ] Executing login sequence... ... Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Done [ INFO ] Stage: Transaction setup [ INFO ] Stage: Misc configuration [ INFO ] Stage: Package installation [ INFO ] Stage: Misc configuration [ INFO ] Stage: Transaction commit [ INFO ] Stage: Closing up CONFIGURATION SUMMARY Profile name is: redhat.com The following files were created: /etc/ovirt-engine/aaa/redhat.com.properties /etc/ovirt-engine/extensions.d/redhat.com-authz.properties /etc/ovirt-engine/extensions.d/redhat.com-authn.properties [ INFO ] Stage: Clean up Log file is available at /tmp/ovirt-engine-extension-aaa-ldap-setup-20160114064955-1yar9i.log: [ INFO ] Stage: Pre-termination [ INFO ] Stage: Termination
-
После выполнения подключения Active Directory к zVirt перезапустите службу
ovirt-engine
:systemctl restart ovirt-engine
-
Созданный профиль теперь доступен на портале администрирования и на страницах входа. Чтобы назначить учетным записям пользователей соответствующие роли и разрешения, например, для входа на портал виртуальных машин, см. Предоставление прав пользователям Active Directory.
2.2. Дополнительные действия при подключении Active Directory с использованием протоколов startTLS или LDAPS
Необходимо:
-
Загрузить корневой сертификат центра сертификации или самоподписанный сертификат контроллера Active Directory в формате
.cer
(Base 64 encoded X.509) на менеджер управления в каталог/root
. -
Добавить сертификат в
доверенные корневые центры сертификации
:cp ca.cer /etc/pki/ca-trust/source/anchors/ update-ca-trust force-enable update-ca-trust extract
-
Убедиться, что SRV-записи успешно разрешается:
dig _ldap._tcp.gc._msdcs.example.ru SRV dig _ldap._tcp.example.ru SRV
Для настройки подключения с использованием
ldaps
контроллеру Active Directory должен быть выдан сертификатKerberos Authentication
. -
Запустить
ovirt-engine-extension-aaa-ldap-setup
, пройти процедуру подключения Active Directory и на вопросеPlease select protocol to use
выбрать протокол (в примереstartTLS
). Например:NOTE: It is highly recommended to use secure protocol to access the LDAP server. Protocol startTLS is the standard recommended method to do so. Only in cases in which the startTLS is not supported, fallback to non standard ldaps protocol. Use plain for test environments only. Please select protocol to use (startTLS, ldaps, plain) [startTLS]: startTLS Please select method to obtain PEM encoded CA certificate (File, URL, Inline, System, Insecure): System (1) Please enter the password:
1 Возможно указать следующие значения: -
File
- позволяет указать полный путь к сертификату. -
URL
- позволяет указать URL-адрес сертификата. -
Inline
- позволяет вставить содержимое сертификата в терминал. -
System
- позволяет указать расположение по умолчанию для всех файлов CA. -
Insecure
- пропускает проверку сертификата, но соединение по-прежнему шифруется с помощью TLS.
-
3. Предоставление прав пользователям Active Directory
По умолчанию пользователи домена не могут входить в систему, поэтому им необходимо назначить нужные права доступа.
-
Перейдите на портал администрирования с использованием учётной записи администратора.
-
Перейдите в
, нажмите Добавить. В выпадающем списке Поиск выберите имя добавленного домена. В пустом поле введите имя учетной записи которую требуется добавить и нажмите Поиск, выберите пользователя и нажмите Добавить или Добавить и закрыть. -
Выберите добавленного пользователя, нажав на его имя в поле Имя пользователя.
-
Перейдите в раздел Разрешения, нажмите Добавление системных разрешений.
-
Если назначенные права позволяют входить пользователю на портал, то выполните вход от имени пользователя, выбрав в поле Профиль имя домена.
4. Удаление подключения Active Directory
4.1. Удаление профиля
Перейдите в консоль менеджера управления и удалите конфигурационные файлы:
rm -f /etc/ovirt-engine/extensions.d/example.ru.properties
rm -f /etc/ovirt-engine/extensions.d/example.ru-authn.properties
rm -f /etc/ovirt-engine/aaa/example.ru.properties
Затем произведите перезапуск службы ovirt-engine
:
systemctl restart ovirt-engine
5. Дополнительные сведения
5.1. Проверка подключения к LDAP-серверу
При подключении к внешнему серверу аутентификации может возникнуть потребность в проверке, например, наличия в каталоге пользователя, от имени которого zVirt будет осуществлять подключение.
На менеджере управления следует установить пакет openldap-clients
:
dnf config-manager --enable baseos
dnf install openldap-clients
dnf config-manager --disable baseos
Сделать запрос:
ldapsearch -H ldap://name_server -x -W -D "<Тут_логин_Администратора_домена>@domain.name" -b "dc=domane,dc=name" "(sAMAccountName=zvirtadm)"
5.2. Диагностика и исправление ошибок при подключении Active Directory
Если попытка подключения к внешнему серверу аутентификации Active Directory заканчивается неудачно и в логе есть запись вида Cannot resolve principal 'ovirtadm@nprt.nn'
, то это может сигнализировать о том, что служба глобального каталога работает не на стандартном порту 3268
, а 389
. Следует проверить сервисные записи DNS:
dig _ldap._tcp.gc._msdcs.nprt.nn SRV
dig _ldap._tcp.nprt.nn SRV
Если действительно обе службы (и локальный контроллер домена тоже) работают на одном порту, то следует для глобального каталога установить порт 3268
.
5.3. Ограничения
Профиль LDAP_MATCHING_RULE_IN_CHAIN
используется для получения групп пользователей. На текущий момент в данном профиле есть проблема, которая заключается в том, что он не может разрешить локальное доменное имя группы принадлежащей нескольким доменам. Например:
Если пользователь user1
является членом group1
, а group1
является членом group2
, то этот профиль не разрешит данную конфигурацию. Профиль может разрешить конфигурацию, если user1
будет непосредственным членом group2
в AD2
. Шаблон LDAP_MATCHING_RULE_IN_CHAIN
используется, так как дает значительный прирост производительности по сравнению с рекурсивным обходом.
5.4. Долгий вход доменного пользователя
При большом количестве объектов в Active Directory и/или большом количестве доменных групп у пользователя, вход доменного пользователя может занимать продолжительное время, также при открытие окна разрешений пользователя может занимать длительное время или приводить к зависанию менеджера управления. Для решения данных проблем необходимо исправить файл конфигурации /etc/ovirt-engine/aaa/example.ru.properties
. Параметр include = <ad.properties>
заменить на include = <ad-recursive.properties>
.