Синхронизировать пользователей и группы с Microsoft Active Directory
Примечание
Функциональность находится на стадии Preview.
Если для управления пользователями ваша компания использует Microsoft Active Directory
Подготовьте к синхронизации организацию Identity Hub
-
Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. -
На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVEилиTRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако. -
Создайте пул пользователей в Identity Hub и привяжите к нему домен, идентичный домену, который используется на контроллере домена
Active Directory.Привязывать ваш собственный домен к пулу пользователей не обязательно. Вместо этого вы можете привязать другой домен или выбрать домен по умолчанию. Но в этом случае в конфигурации агента синхронизации потребуется настроить подстановку домена в параметре
replacement_domain. Подробнее см. в разделе Конфигурация агента. -
Создайте сервисный аккаунт и назначьте ему следующие роли на организацию, в которой находится нужный пул пользователей:
-
Создайте и сохраните авторизованный ключ для вашего сервисного аккаунта.
Подготовьте контроллер домена Active Directory
-
Создайте пользователя домена, от имени которого агент будет выполнять синхронизацию.
-
Выдайте этому пользователю следующие разрешения:
Replicating Directory Changes;Replicating Directory Changes All.
-
На контроллере домена откройте сетевые TCP
-порты для входящего трафика, поступающего с IP-адреса сервера, на котором установлен агент Identity Hub AD Sync Agent:
Настройте и запустите агент синхронизации
Вы можете установить агент синхронизации на любой сервер под управлением ОС Linux
Прежде, чем приступать к синхронизации, откройте на сервере, где вы будете запускать агента, следующие TCP
-
Для обращения к API Yandex Cloud:
443— для HTTPS ;
-
Для обращения к контроллеру домена Active Directory:
Чтобы запустить синхронизацию пользователей и групп:
В терминале Linux:
-
Чтобы установить агент Identity Hub AD Sync Agent, выполните команду:
curl https://storage.yandexcloud.net/yc-identityhub-sync/install.sh | bashРезультат:
Example config file downloaded to /etc/yc-identityhub-sync-agent/config.yaml. Modify it with your values Service installed as yc-identityhub-sync-agent To start the service: sudo systemctl start yc-identityhub-sync-agent To enable the service to start on boot: sudo systemctl enable yc-identityhub-sync-agent To check service status: sudo systemctl status yc-identityhub-sync-agent yc-identityhub-sync-agent is installed to /usr/bin/yc-identityhub-sync-agent -
Скопируйте на ваш сервер файл с сохраненным ранее авторизованным ключом сервисного аккаунта.
Для этого вы можете воспользоваться командой
scpили любым другим подходящим инструментом. -
В любом текстовом редакторе откройте YAML
-файл с конфигурацией агента синхронизации. В примере ниже используется редакторnano:nano /etc/yc-identityhub-sync-agent/config.yaml -
В открывшемся файле задайте конфигурацию агента синхронизации:
# Default configuration for yc-identityhub-sync-agent # This is a template - please update with your actual values userpool_id: "<идентификатор_пула_пользователей>" cloud_credentials_file_path: "<путь_к_файлу_с_авторизованным_ключом>" replication_tokens_path: "<путь_к_директории_с_токенами_процессов>" working_directory: "<путь_к_рабочей_директории_агента>" # Active Directory replication API client settings drsr: host: "<IP-адрес_контроллера_домена>" username: "username" password: "password" # LDAP client settings ldap: host: "ldaps://<IP-адрес_контроллера_домена>:636" username: "<имя_пользователя_Active_Directory>" password: "<пароль_пользователя_Active_Directory>" certificate_path: "<путь_к_сертификату>" insecure_skip_verify: false|true # Logger configuration logger: level: "<уровень_логирования>" format: "plain|json" file: filename: "<путь_к_файлу_с_логами>" maxsize: 30 maxbackups: 10 # Sync settings sync_settings: interval: "600s" allow_to_capture_users: true|false allow_to_capture_groups: true|false # Remove the following line if you don't need to replace domain replacement_domain: "<домен_пула_пользователей>" filter: domain: "<имя_домена_в_Active_Directory>" organization_units: - OU=IdPUsersOU,DC=example,DC=com - OU=IdPGroupsOU,DC=example,DC=com remove_user_behavior: "remove|block"Где:
-
userpool_id— идентификатор пула пользователей в Identity Hub. -
cloud_credentials_file_path— путь к файлу, содержащему авторизованный ключ сервисного аккаунта в Yandex Cloud. Например:/etc/yc-identityhub-sync-agent/authorized_key.json(для Linux);C:\\ProgramData\\YcIdentityHubSyncAgent\\authorized_key.json(для Windows).
В параметре
cloud_credentials_file_pathвместо полного пути вы можете передать только имя файла. В этом случае файл будет сохранен в рабочей директории, заданной в параметреworking_directory, или, если рабочая директория не задана, — в директории, в которой расположен исполняемый файл агента. -
replication_tokens_path— путь к директории, в которой сохраняются токены с информацией о текущем прогрессе процессов полной синхронизации. Необязательный параметр.Если параметр не задан, токены сохраняются в рабочей директории агента, указанной в параметре
working_directory, или, если рабочая директория не задана, — в директории, в которой расположен исполняемый файл агента. -
working_directory— путь к директории, в которой сохраняются другие файлы, необходимые агенту для работы. Необязательный параметр.Если параметр не задан, в качестве рабочей директории используется директория, в которой расположен исполняемый файл агента. По умолчанию исполняемый файл агента располагается в следующих директориях:
/etc/yc-identityhub-sync-agent/(для Linux);C:\\ProgramData\\YcIdentityHubSyncAgent\\(для Windows).
Примечание
Если в параметрах
cloud_credentials_file_path,replication_tokens_pathи/илиlogger.levelзаданы пути, отличные от пути, заданного в параметреworking_directory, будут использоваться пути, указанные в параметрахcloud_credentials_file_path,replication_tokens_pathи/илиlogger.level. -
drsr— настройки протокола DRSR для аутентификации на стороне Active Directory пользователя с назначенными правами на выполнение репликации данных в каталоге. -
ldap— настройки протокола LDAPS /LDAP для аутентификации на стороне Active Directory:Важно
Вы можете подключаться к контроллеру домена по протоколу
LDAPSилиLDAP. Рекомендованным и безопасным протоколом являетсяLDAPS. ПротоколLDAPиспользуйте только при настройке и тестировании.-
host— IP-адрес контроллера домена Active Directory. В зависимости от используемого протокола указываются схема и номер порта:- при использовании
LDAPS— схемаldaps://и порт636; - при использовании
LDAP— схемаldap://и порт389.
- при использовании
-
username— имя пользователя домена Active Directory, которому назначены права на выполнение репликации данных. -
password— пароль пользователя домена Active Directory. -
certificate_path— путь к файлу с сертификатом открытого ключа, необходимого для расшифрования трафика от контроллера домена. Обязательный параметр при использовании протоколаLDAPS.Если в параметре
working_directoryзадан путь к рабочей директории, вместо пути к файлу сертификата достаточно указать имя этого файла. -
insecure_skip_verify— параметр, позволяющий игнорировать ошибки валидации сертификата открытого ключа при подключении к контроллеру домена. Необязательный параметр. Возможные значения:false— ошибки валидации сертификата не будут игнорироваться. Значение по умолчанию.true— агент синхронизации будет игнорировать ошибки валидации сертификата. Может быть полезно при настройке и тестировании синхронизации. Не рекомендуется использовать в рабочем режиме.
-
-
logger— настройки логирования процесса синхронизации:-
level— уровень логирования. Возможные значения:debuginfowarnerrordpanicpanicfatal
-
format— формат вывода информации о событиях. Необязательный параметр. Возможные значения:plain— информация выводится в простом текстовом виде. Значение по умолчанию.json— информация выводится в формате JSON .
-
file— настройки сохранения логов в файлы:-
filename— путь к файлу, в который будет сохраняться информация о событиях при синхронизации.В параметре
filenameвместо полного пути вы можете передать только имя файла. В этом случае файл будет сохранен в рабочей директории, заданной в параметреworking_directory, или, если рабочая директория не задана, — в директории, в которой расположен исполняемый файл агента.Необязательный параметр. Имя файла по умолчанию —
identity_hub.log. -
maxsize— максимальный размер одного файла с логами в мегабайтах. -
maxbackups— максимальное количество файлов с логами, которые агент будет хранить. При превышении максимального количества файлов наиболее старый файл будет удален.
Необязательный параметр. Если настройки в параметре
fileне заданы, информация не сохраняется в файлы, а выводится в потокstdout. -
-
-
sync_settings— настройки процесса синхронизации:-
interval— периодичность выполнения инкрементальной синхронизации. Необязательный параметр. Значение по умолчанию — 240 секунд.Примечание
Периодичность выполнения синхронизации паролей и состояний пользователей в Active Directory составляет несколько секунд, является константой и не зависит от значения, заданного в параметре
interval. -
allow_to_capture_users— параметр, позволяющий изменять существующего пользователя пула Identity Hub при совпадении его логина с логином пользователя Active Directory, которого требуется синхронизировать. Возможные значения:true— агент синхронизации будет изменять существующих пользователей Identity Hub, приводя их в соответствие с учетной записью в Active Directory.false— агент синхронизации не будет изменять существующих пользователей Identity Hub. При обнаружении совпадения логинов пользователя в пуле и в Active Directory процесс синхронизации выдаст ошибку.
-
allow_to_capture_groups— параметр, позволяющий изменять существующую группу пользователей Identity Hub при совпадении ее имени с именем группы в Active Directory, которую требуется синхронизировать. Возможные значения:true— агент синхронизации будет изменять существующие группы пользователей Identity Hub, приводя их в соответствие с группами в Active Directory.false— агент синхронизации не будет изменять существующие группы пользователей Identity Hub. При обнаружении совпадения имен групп в пуле и в Active Directory процесс синхронизации выдаст ошибку.
-
replacement_domain— домен, привязанный к пулу пользователей Identity Hub, в котором находятся синхронизируемые пользователи и группы. Например:newdomain.idp.yandexcloud.net.Необязательный параметр. Значение параметра
replacement_domainтребуется задавать только в том случае, если имя домена, привязанного к пулу пользователей, отличается от имени домена на контроллере домена Active Directory. -
filter— настройки фильтрации синхронизируемых объектов на стороне Active Directory:domain— имя домена на контроллере домена Active Directory, в котором агент будет синхронизировать пользователей и группы.organization_units— список Organization Units (OU) в каталоге Active Directory, в которых агент будет синхронизировать пользователей и группы.
Если не настроить фильтрацию синхронизируемых объектов, агент Identity Hub AD Sync Agent попытается синхронизировать все доступные объекты в каталоге Active Directory.
-
remove_user_behavior— позволяет управлять действием в отношении пользователей на стороне Yandex Cloud, если соответствующие пользователи на стороне Active Directory были удалены или перестали удовлетворять условиям, заданным в параметрахsync_settings.filter(например, они были перенесены в другой Organization Unit). Необязательный параметр. Возможные значения:remove— пользователи, удаленные или переставшие удовлетворять условиям фильтра, удаляются на стороне Identity Hub. Действие по умолчанию.block— пользователи, удаленные или переставшие удовлетворять условиям фильтра, деактивируются на стороне Identity Hub.
Примечание
Если в процессе синхронизации выясняется, что на стороне Active Directory группа пользователей была удалена или перестала удовлетворять заданным фильтрам (например, она была перенесена в другой Organization Unit), то на стороне Identity Hub такая группа удаляется.
-
-
-
Запустите сервис агента Identity Hub AD Sync Agent, чтобы начать процесс синхронизации:
sudo systemctl start yc-identityhub-sync-agent -
Чтобы убедиться, что процесс синхронизации идет, посмотрите файл с логами агента. Например:
sudo cat /etc/yc-identityhub-sync-agent/identity_hub.logРезультат синхронизации вы также можете посмотреть в интерфейсе сервиса Yandex Identity Hub
— в выбранном пуле пользователей должны создаться новые пользователи и группы, полученные из Active Directory. -
Чтобы остановить синхронизацию, остановите запущенный процесс агента синхронизации:
sudo systemctl stop yc-identityhub-sync-agentВ результате процесс синхронизации пользователей и групп будет остановлен.
В терминале PowerShell:
-
Чтобы установить агент Identity Hub AD Sync Agent, выполните команду:
iex (New-Object System.Net.WebClient).DownloadString('https://storage.yandexcloud.net/yc-identityhub-sync/install.ps1')Результат:
Example config file downloaded to C:\ProgramData\YcIdentityHubSyncAgent\config.yaml. Modify it with your values yc-identityhub-sync-agent is installed to C:\Program Files\YcIdentityHubSyncAgent\bin\yc-identityhub-sync-agent.exe Config file is located at C:\ProgramData\YcIdentityHubSyncAgent\config.yaml Status Name DisplayName ------ ---- ----------- Stopped yc-identityhub-... Yandex Identity Hub Sync Agent yc-identityhub-sync-agent installed as Windows service 'yc-identityhub-sync-agent' (not started automatically) 1. Modify the config file at C:\ProgramData\YcIdentityHubSyncAgent\config.yaml with your values 2. Run: Start-Service yc-identityhub-sync-agent -
Скопируйте на ваш сервер файл с сохраненным ранее авторизованным ключом сервисного аккаунта. Для этого вы можете воспользоваться любым подходящим инструментом.
-
В любом текстовом редакторе откройте YAML
-файл конфигурации агентаconfig.yaml, расположенный в папкеC:\ProgramData\YcIdentityHubSyncAgent\, и добавьте в него следующую конфигурацию:# Default configuration for yc-identityhub-sync-agent # This is a template - please update with your actual values userpool_id: "<идентификатор_пула_пользователей>" cloud_credentials_file_path: "<путь_к_файлу_с_авторизованным_ключом>" replication_tokens_path: "<путь_к_директории_с_токенами_процессов>" working_directory: "<путь_к_рабочей_директории_агента>" # Active Directory replication API client settings drsr: host: "<IP-адрес_контроллера_домена>" username: "username" password: "password" # LDAP client settings ldap: host: "ldaps://<IP-адрес_контроллера_домена>:636" username: "<имя_пользователя_Active_Directory>" password: "<пароль_пользователя_Active_Directory>" certificate_path: "<путь_к_сертификату>" insecure_skip_verify: false|true # Logger configuration logger: level: "<уровень_логирования>" format: "plain|json" file: filename: "<путь_к_файлу_с_логами>" maxsize: 30 maxbackups: 10 # Sync settings sync_settings: interval: "600s" allow_to_capture_users: true|false allow_to_capture_groups: true|false # Remove the following line if you don't need to replace domain replacement_domain: "<домен_пула_пользователей>" filter: domain: "<имя_домена_в_Active_Directory>" organization_units: - OU=IdPUsersOU,DC=example,DC=com - OU=IdPGroupsOU,DC=example,DC=com remove_user_behavior: "remove|block"Где:
-
userpool_id— идентификатор пула пользователей в Identity Hub. -
cloud_credentials_file_path— путь к файлу, содержащему авторизованный ключ сервисного аккаунта в Yandex Cloud. Например:/etc/yc-identityhub-sync-agent/authorized_key.json(для Linux);C:\\ProgramData\\YcIdentityHubSyncAgent\\authorized_key.json(для Windows).
В параметре
cloud_credentials_file_pathвместо полного пути вы можете передать только имя файла. В этом случае файл будет сохранен в рабочей директории, заданной в параметреworking_directory, или, если рабочая директория не задана, — в директории, в которой расположен исполняемый файл агента. -
replication_tokens_path— путь к директории, в которой сохраняются токены с информацией о текущем прогрессе процессов полной синхронизации. Необязательный параметр.Если параметр не задан, токены сохраняются в рабочей директории агента, указанной в параметре
working_directory, или, если рабочая директория не задана, — в директории, в которой расположен исполняемый файл агента. -
working_directory— путь к директории, в которой сохраняются другие файлы, необходимые агенту для работы. Необязательный параметр.Если параметр не задан, в качестве рабочей директории используется директория, в которой расположен исполняемый файл агента. По умолчанию исполняемый файл агента располагается в следующих директориях:
/etc/yc-identityhub-sync-agent/(для Linux);C:\\ProgramData\\YcIdentityHubSyncAgent\\(для Windows).
Примечание
Если в параметрах
cloud_credentials_file_path,replication_tokens_pathи/илиlogger.levelзаданы пути, отличные от пути, заданного в параметреworking_directory, будут использоваться пути, указанные в параметрахcloud_credentials_file_path,replication_tokens_pathи/илиlogger.level. -
drsr— настройки протокола DRSR для аутентификации на стороне Active Directory пользователя с назначенными правами на выполнение репликации данных в каталоге. -
ldap— настройки протокола LDAPS /LDAP для аутентификации на стороне Active Directory:Важно
Вы можете подключаться к контроллеру домена по протоколу
LDAPSилиLDAP. Рекомендованным и безопасным протоколом являетсяLDAPS. ПротоколLDAPиспользуйте только при настройке и тестировании.-
host— IP-адрес контроллера домена Active Directory. В зависимости от используемого протокола указываются схема и номер порта:- при использовании
LDAPS— схемаldaps://и порт636; - при использовании
LDAP— схемаldap://и порт389.
- при использовании
-
username— имя пользователя домена Active Directory, которому назначены права на выполнение репликации данных. -
password— пароль пользователя домена Active Directory. -
certificate_path— путь к файлу с сертификатом открытого ключа, необходимого для расшифрования трафика от контроллера домена. Обязательный параметр при использовании протоколаLDAPS.Если в параметре
working_directoryзадан путь к рабочей директории, вместо пути к файлу сертификата достаточно указать имя этого файла. -
insecure_skip_verify— параметр, позволяющий игнорировать ошибки валидации сертификата открытого ключа при подключении к контроллеру домена. Необязательный параметр. Возможные значения:false— ошибки валидации сертификата не будут игнорироваться. Значение по умолчанию.true— агент синхронизации будет игнорировать ошибки валидации сертификата. Может быть полезно при настройке и тестировании синхронизации. Не рекомендуется использовать в рабочем режиме.
-
-
logger— настройки логирования процесса синхронизации:-
level— уровень логирования. Возможные значения:debuginfowarnerrordpanicpanicfatal
-
format— формат вывода информации о событиях. Необязательный параметр. Возможные значения:plain— информация выводится в простом текстовом виде. Значение по умолчанию.json— информация выводится в формате JSON .
-
file— настройки сохранения логов в файлы:-
filename— путь к файлу, в который будет сохраняться информация о событиях при синхронизации.В параметре
filenameвместо полного пути вы можете передать только имя файла. В этом случае файл будет сохранен в рабочей директории, заданной в параметреworking_directory, или, если рабочая директория не задана, — в директории, в которой расположен исполняемый файл агента.Необязательный параметр. Имя файла по умолчанию —
identity_hub.log. -
maxsize— максимальный размер одного файла с логами в мегабайтах. -
maxbackups— максимальное количество файлов с логами, которые агент будет хранить. При превышении максимального количества файлов наиболее старый файл будет удален.
Необязательный параметр. Если настройки в параметре
fileне заданы, информация не сохраняется в файлы, а выводится в потокstdout. -
-
-
sync_settings— настройки процесса синхронизации:-
interval— периодичность выполнения инкрементальной синхронизации. Необязательный параметр. Значение по умолчанию — 240 секунд.Примечание
Периодичность выполнения синхронизации паролей и состояний пользователей в Active Directory составляет несколько секунд, является константой и не зависит от значения, заданного в параметре
interval. -
allow_to_capture_users— параметр, позволяющий изменять существующего пользователя пула Identity Hub при совпадении его логина с логином пользователя Active Directory, которого требуется синхронизировать. Возможные значения:true— агент синхронизации будет изменять существующих пользователей Identity Hub, приводя их в соответствие с учетной записью в Active Directory.false— агент синхронизации не будет изменять существующих пользователей Identity Hub. При обнаружении совпадения логинов пользователя в пуле и в Active Directory процесс синхронизации выдаст ошибку.
-
allow_to_capture_groups— параметр, позволяющий изменять существующую группу пользователей Identity Hub при совпадении ее имени с именем группы в Active Directory, которую требуется синхронизировать. Возможные значения:true— агент синхронизации будет изменять существующие группы пользователей Identity Hub, приводя их в соответствие с группами в Active Directory.false— агент синхронизации не будет изменять существующие группы пользователей Identity Hub. При обнаружении совпадения имен групп в пуле и в Active Directory процесс синхронизации выдаст ошибку.
-
replacement_domain— домен, привязанный к пулу пользователей Identity Hub, в котором находятся синхронизируемые пользователи и группы. Например:newdomain.idp.yandexcloud.net.Необязательный параметр. Значение параметра
replacement_domainтребуется задавать только в том случае, если имя домена, привязанного к пулу пользователей, отличается от имени домена на контроллере домена Active Directory. -
filter— настройки фильтрации синхронизируемых объектов на стороне Active Directory:domain— имя домена на контроллере домена Active Directory, в котором агент будет синхронизировать пользователей и группы.organization_units— список Organization Units (OU) в каталоге Active Directory, в которых агент будет синхронизировать пользователей и группы.
Если не настроить фильтрацию синхронизируемых объектов, агент Identity Hub AD Sync Agent попытается синхронизировать все доступные объекты в каталоге Active Directory.
-
remove_user_behavior— позволяет управлять действием в отношении пользователей на стороне Yandex Cloud, если соответствующие пользователи на стороне Active Directory были удалены или перестали удовлетворять условиям, заданным в параметрахsync_settings.filter(например, они были перенесены в другой Organization Unit). Необязательный параметр. Возможные значения:remove— пользователи, удаленные или переставшие удовлетворять условиям фильтра, удаляются на стороне Identity Hub. Действие по умолчанию.block— пользователи, удаленные или переставшие удовлетворять условиям фильтра, деактивируются на стороне Identity Hub.
Примечание
Если в процессе синхронизации выясняется, что на стороне Active Directory группа пользователей была удалена или перестала удовлетворять заданным фильтрам (например, она была перенесена в другой Organization Unit), то на стороне Identity Hub такая группа удаляется.
-
-
-
Запустите службу агента синхронизации:
Start-Service yc-identityhub-sync-agent -
Чтобы убедиться, что процесс синхронизации идет, посмотрите файл с логами агента. Например:
cat C:\ProgramData\YcIdentityHubSyncAgent\identity_hub.logРезультат синхронизации вы также можете посмотреть в интерфейсе сервиса Yandex Identity Hub
— в выбранном пуле пользователей должны создаться новые пользователи и группы, полученные из Active Directory. -
Чтобы остановить процесс синхронизации, остановите созданную службу:
Stop-Service yc-identityhub-sync-agentВ результате процесс синхронизации пользователей и групп будет остановлен.