Syncing users and groups with Microsoft Active Directory
Note
This feature is at the Preview stage.
If your company uses Microsoft Active Directory
Prepare Identity Hub for synchronization
-
Navigate to the management console
and log in to Yandex Cloud or create a new account. -
On the Yandex Cloud Billing
page, make sure you have a billing account linked and its status isACTIVEorTRIAL_ACTIVE. If you do not have a billing account, create one and link a cloud to it. -
Create a user pool in Identity Hub and associate with it a domain identical to the one used in the Active Directory domain controller
.Associating your own domain with a user pool is optional. You can choose to associate another domain or the default one instead. In which case you will have to set up domain replacement in the
replacement_domainparameter when configuring the synchronization agent. Learn more in Agent configuration. -
Create a service account and assign to it the following roles for the organization the user pool is in:
-
Create and save an authorized key for your service account.
Prepare your Active Directory domain controller
-
Create a domain user your agent will use to run synchronization.
-
Grant the following permissions to this user:
Replicating Directory ChangesReplicating Directory Changes All
-
On the domain controller, open the TCP
network ports for incoming traffic from the IP address of the server hosting Identity Hub AD Sync Agent:
Configure and start the synchronization agent
You can install the synchronization agent on any Linux
Before you start syncing, open the following TCP
-
To access the Yandex Cloud API:
443: For HTTPS .
-
To access the Active Directory domain controller:
To start syncing users and groups:
In the Linux terminal:
-
To install the Identity Hub AD Sync Agent, run this command:
curl https://storage.yandexcloud.net/yc-identityhub-sync/install.sh | bashResult:
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 -
Copy to your server the file with service account's authorized key you saved earlier.
Do it using the
scpcommand or any other suitable tool. -
Use any text editor to open the YAML
file containing the synchronization agent's configuration. This example uses thenanoeditor:nano /etc/yc-identityhub-sync-agent/config.yaml -
Specify the synchronization agent's configuration in the YAML file:
# Default configuration for yc-identityhub-sync-agent # This is a template - please update with your actual values userpool_id: "<user_pool_ID>" cloud_credentials_file_path: "<path_to_file_with_authorized_key>" replication_tokens_path: "<path_to_directory_with_process_tokens>" working_directory: "<path_to_agent_working_directory>" # Active Directory replication API client settings drsr: host: "<domain_controller_IP_address>" username: "username" password: "password" # LDAP client settings ldap: host: "ldap://<domain_controller_IP_address>:389" username: "ldap_username" password: "ldap_password" # Logger configuration logger: level: <logging_level> format: <output_format> file: filename: "<log_file_path>" maxsize: 30 maxbackups: 10 # Sync settings sync_settings: interval: "600s" allow_to_capture_users: true allow_to_capture_groups: true # Remove the following line if you don't need to replace domain replacement_domain: "<user_pool_domain>" filter: domain: "<Active_Directory_domain_name>" organization_units: - OU=IdPUsersOU,DC=example,DC=com - OU=IdPGroupsOU,DC=example,DC=comWhere:
-
userpool_id: ID of the user pool in Identity Hub. -
cloud_credentials_file_path: Path to the file containing the authorized key of the service account in Yandex Cloud. Here is an example:/etc/yc-identityhub-sync-agent/authorized_key.json(for Linux)C:\\ProgramData\\YcIdentityHubSyncAgent\\authorized_key.json(for Windows)
In the
cloud_credentials_file_pathparameter, you can provide only the file name instead of the full path. In this case, the system will save that file in the working directory specified inworking_directoryor, if none is specified, in the directory the agent's executable is in. -
replication_tokens_path: Path to the directory storing tokens with info about the current progress of full synchronization processes. This is an optional parameter.If this parameter is not set, the system will be saving the tokens in the agent's working directory specified in
working_directoryor, if none is specified, in the directory the agent's executable is in. -
working_directory: Path to the directory for other files the agent needs to operate. This is an optional parameter.If this parameter is not set, the system will use the directory containing the agent's executable as the working directory. By default, the agent's executable resides in the following directories:
/etc/yc-identityhub-sync-agent/(for Linux)C:\\ProgramData\\YcIdentityHubSyncAgent\\(for Windows)
Note
If the
cloud_credentials_file_path,replication_tokens_path, and/orlogger.levelparameters specify paths other than that specified inworking_directory, the system use the paths specified incloud_credentials_file_path,replication_tokens_path, and/orlogger.level. -
drsr: DRSR protocol settings for Active Directory authentication of a user with permissions to replicate folder data. -
ldap: LDAP protocol settings for Active Directory authentication of a user with permissions to replicate folder data. -
logger: Synchronization logging settings:-
level: Logging level. The possible values are:debuginfowarnerrordpanicpanicfatal
-
format: Event info output format. This is an optional parameter. The possible values are:plain: Output the info as plain text. This is a default value.json: Output the info in JSON format.
-
file: Settings for saving logs to files:-
filename: Path to the file for logging synchronization events.In the
filenameparameter, you can provide only the file name instead of the full path. In this case, the system will save that file in the working directory specified inworking_directoryor, if none is specified, in the directory the agent's executable is in.This is an optional parameter. The default file name is
identity_hub.log. -
maxsize: Maximum size of a single log file, in MB. -
maxbackups: Maximum number of log files the agent will retain. When this limit is exceeded, the oldest file will be deleted.
This is an optional parameter. If you do not provide the
filesettings, logs will be output to thestdoutstream and not saved to files. -
-
-
sync_settings: Synchronization settings:-
interval: Incremental synchronization frequency. This is an optional parameter. The default value is 240 seconds.Note
Password and user status synchronization in Active Directory takes place every few seconds at a fixed interval which does not depend on the
intervalvalue. -
allow_to_capture_users: Enables updating an existing user in the Identity Hub user pool if their login matches that of a Active Directory user being synchronized. The possible values are:true: Synchronization agent will update existing Identity Hub users to match their corresponding Active Directory accounts.false: Synchronization agent will not update existing Identity Hub users. If it detects matching logins in the user pool and Active Directory, the synchronization will throw an error.
-
allow_to_capture_groups: Enables updating an existing Identity Hub user group if its name matches that of a Active Directory group being synchronized. The possible values are:true: Synchronization agent will update existing Identity Hub user groups to match their corresponding Active Directory groups.false: Synchronization agent will not update existing Identity Hub groups. If it detects matching group names in the pool and Active Directory, the synchronization will throw an error.
-
replacement_domain: Domain associated with the Identity Hub user pool to which synchronized users and groups belong, e.g.,newdomain.idp.yandexcloud.net.This is an optional parameter. Specify the
replacement_domainvalue only if the domain name associated with the user pool does not match the domain name on the Active Directory domain controller. -
filter: Settings for filtering objects to synchronize on the Active Directory side:domain: Domain name in the Active Directory domain controller where the agent will synchronize users and groups.organization_units: List of organizational units (OUs) in the Active Directory folder in which the agent will synchronize users and groups.
If object filtering is not configured, Identity Hub AD Sync Agent will attempt to synchronize all available objects in the Active Directory folder.
Note
If a user or group no longer matches the specified filters during synchronization, e.g., if moved to a different organizational unit within Active Directory, such a user or group will be removed from Identity Hub.
-
-
-
Run the Identity Hub AD Sync Agent to start syncing:
sudo systemctl start yc-identityhub-sync-agent -
To make sure syncing is in progress, look up the agent's log file, e.g.,
sudo cat /etc/yc-identityhub-sync-agent/identity_hub.logYou can also view the synchronization results in the Yandex Identity Hub
interface: new users and groups from Active Directory should appear in the selected user pool. -
To stop syncing, stop the synchronization agent's process:
sudo systemctl stop yc-identityhub-sync-agentThis will stop user and group syncing.
In the PowerShell terminal:
-
To install the Identity Hub AD Sync Agent, run this command:
iex (New-Object System.Net.WebClient).DownloadString('https://storage.yandexcloud.net/yc-identityhub-sync/install.ps1')Result:
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 -
Copy to your server the file with service account's authorized key you saved earlier. You can do it using any suitable tool.
-
Use any text editor to open the agent's YAML
configuration file (config.yaml) located atC:\ProgramData\YcIdentityHubSyncAgent\and add the following configuration to it:# Default configuration for yc-identityhub-sync-agent # This is a template - please update with your actual values userpool_id: "<user_pool_ID>" cloud_credentials_file_path: "<path_to_file_with_authorized_key>" replication_tokens_path: "<path_to_directory_with_process_tokens>" working_directory: "<path_to_agent_working_directory>" # Active Directory replication API client settings drsr: host: "<domain_controller_IP_address>" username: "username" password: "password" # LDAP client settings ldap: host: "ldap://<domain_controller_IP_address>:389" username: "ldap_username" password: "ldap_password" # Logger configuration logger: level: <logging_level> format: <output_format> file: filename: "<log_file_path>" maxsize: 30 maxbackups: 10 # Sync settings sync_settings: interval: "600s" allow_to_capture_users: true allow_to_capture_groups: true # Remove the following line if you don't need to replace domain replacement_domain: "<user_pool_domain>" filter: domain: "<Active_Directory_domain_name>" organization_units: - OU=IdPUsersOU,DC=example,DC=com - OU=IdPGroupsOU,DC=example,DC=comWhere:
-
userpool_id: ID of the user pool in Identity Hub. -
cloud_credentials_file_path: Path to the file containing the authorized key of the service account in Yandex Cloud. Here is an example:/etc/yc-identityhub-sync-agent/authorized_key.json(for Linux)C:\\ProgramData\\YcIdentityHubSyncAgent\\authorized_key.json(for Windows)
In the
cloud_credentials_file_pathparameter, you can provide only the file name instead of the full path. In this case, the system will save that file in the working directory specified inworking_directoryor, if none is specified, in the directory the agent's executable is in. -
replication_tokens_path: Path to the directory storing tokens with info about the current progress of full synchronization processes. This is an optional parameter.If this parameter is not set, the system will be saving the tokens in the agent's working directory specified in
working_directoryor, if none is specified, in the directory the agent's executable is in. -
working_directory: Path to the directory for other files the agent needs to operate. This is an optional parameter.If this parameter is not set, the system will use the directory containing the agent's executable as the working directory. By default, the agent's executable resides in the following directories:
/etc/yc-identityhub-sync-agent/(for Linux)C:\\ProgramData\\YcIdentityHubSyncAgent\\(for Windows)
Note
If the
cloud_credentials_file_path,replication_tokens_path, and/orlogger.levelparameters specify paths other than that specified inworking_directory, the system use the paths specified incloud_credentials_file_path,replication_tokens_path, and/orlogger.level. -
drsr: DRSR protocol settings for Active Directory authentication of a user with permissions to replicate folder data. -
ldap: LDAP protocol settings for Active Directory authentication of a user with permissions to replicate folder data. -
logger: Synchronization logging settings:-
level: Logging level. The possible values are:debuginfowarnerrordpanicpanicfatal
-
format: Event info output format. This is an optional parameter. The possible values are:plain: Output the info as plain text. This is a default value.json: Output the info in JSON format.
-
file: Settings for saving logs to files:-
filename: Path to the file for logging synchronization events.In the
filenameparameter, you can provide only the file name instead of the full path. In this case, the system will save that file in the working directory specified inworking_directoryor, if none is specified, in the directory the agent's executable is in.This is an optional parameter. The default file name is
identity_hub.log. -
maxsize: Maximum size of a single log file, in MB. -
maxbackups: Maximum number of log files the agent will retain. When this limit is exceeded, the oldest file will be deleted.
This is an optional parameter. If you do not provide the
filesettings, logs will be output to thestdoutstream and not saved to files. -
-
-
sync_settings: Synchronization settings:-
interval: Incremental synchronization frequency. This is an optional parameter. The default value is 240 seconds.Note
Password and user status synchronization in Active Directory takes place every few seconds at a fixed interval which does not depend on the
intervalvalue. -
allow_to_capture_users: Enables updating an existing user in the Identity Hub user pool if their login matches that of a Active Directory user being synchronized. The possible values are:true: Synchronization agent will update existing Identity Hub users to match their corresponding Active Directory accounts.false: Synchronization agent will not update existing Identity Hub users. If it detects matching logins in the user pool and Active Directory, the synchronization will throw an error.
-
allow_to_capture_groups: Enables updating an existing Identity Hub user group if its name matches that of a Active Directory group being synchronized. The possible values are:true: Synchronization agent will update existing Identity Hub user groups to match their corresponding Active Directory groups.false: Synchronization agent will not update existing Identity Hub groups. If it detects matching group names in the pool and Active Directory, the synchronization will throw an error.
-
replacement_domain: Domain associated with the Identity Hub user pool to which synchronized users and groups belong, e.g.,newdomain.idp.yandexcloud.net.This is an optional parameter. Specify the
replacement_domainvalue only if the domain name associated with the user pool does not match the domain name on the Active Directory domain controller. -
filter: Settings for filtering objects to synchronize on the Active Directory side:domain: Domain name in the Active Directory domain controller where the agent will synchronize users and groups.organization_units: List of organizational units (OUs) in the Active Directory folder in which the agent will synchronize users and groups.
If object filtering is not configured, Identity Hub AD Sync Agent will attempt to synchronize all available objects in the Active Directory folder.
Note
If a user or group no longer matches the specified filters during synchronization, e.g., if moved to a different organizational unit within Active Directory, such a user or group will be removed from Identity Hub.
-
-
-
Start the synchronization agent's service:
Start-Service yc-identityhub-sync-agent -
To make sure syncing is in progress, look up the agent's log file, e.g.,
cat C:\ProgramData\YcIdentityHubSyncAgent\identity_hub.logYou can also view the synchronization results in the Yandex Identity Hub
interface: new users and groups from Active Directory should appear in the selected user pool. -
To stop the syncing process, stop the service you created:
Stop-Service yc-identityhub-sync-agentThis will stop user and group syncing.