MachPanel ADSync
MachPanel ADSync module is the directory synchronization tool that consolidates one Active Directory with another. It performs one-way synchronization and keeps your cloud user accounts updated.
Summary
This article provides you information regarding the configuration of ADSync.
Applies To
-
Applies to ADSync v4.2 - v6.
- ADSync latest version is 6.0.
- Latest MachPanel Build v7.2.35 supports latest ADSync v6
You need following information:
- You have to Enable ADSync from MachPanel before configuring your ADSync at the local Active Directory.
- Navigate to the following path: Home » Service Director » Active Directory » Active Directory Organizations
- Click on Enable ADsync link as shown in the snapshot below:
- Service Username and Service Password i.e. Login Name and Password to Access the Control Panel customer account who is owner of Hosted Organization which needs to be synced with Client-AD. This can either be a Customer Account or a Contact of Customer in control panel.
- MachPanel Service URL should be accessible from Client-AD.
Yes, it is required to Reboot ALL Client Domain Controllers (Primary and Additional) at least once where ADSync tool is installed.
ADSync is a utility consisting of multiple components used to
synchronize local active directory objects with Hosted/Cloud Active
Directory objects. ADSync utility v6.0 will sync Multiple OU's in a client/local AD with Hosted OU.
Types of object(s) which are currently synchronized.
The data fields which are being synchronized through this utility for User Accounts are:
- Description
- Display Name
- First Name
- Last Name
- Email
- Initials
- Middle Name
- UserPrincipalName(UPN)
- Direct Manager
- Home Phone
- Mobile Phone
- Business Phone
- Pager
- Home Page
- Fax
- Address
- City
- Country
- State
- Zip Code
- Company
- Job Title
- Department
- Office Location
- Password
- Notes
- Proxy Addresses [
- SIP Address
- EUM Address
- SMTP Address ]
- AD User Enabled
- Thumbnail Image
- Logon Hours
- Use email to generate UPN {'Use Email to Generate UPN' is not attribute rather a configuration setting to to set user's UPN on hosted side using 'Email' attribute at the time of creation.}
The data fields which are being synchronized through this utility for Groups are:
- Name
- Display Name
- Type
- Members
MachSol ADSync utility is a one way synchronization tool, that enables the synchronization of AD users from local/on-premises to the hosted/cloud AD and vice versa is not currently possible. Editing through MachPanel is disabled for a mailbox enabled for ADSync.
The reason to disable the AD user editing in MachPanel for those organizations which are selected to be synchronized with on-premises ADs is that the information updated on MachPanel shall not be available on client’s on-premises AD. And also as ADSyncSvc periodically updates data from local to hosted AD, the changes done through MachPanel will be voided with the synchronization process.
-
When installation finishes on Primary Domain Controller, ADSync Configuration Studio appears, fill form according to instructions below and save settings.
- From the Home page you can click settings
Terms used to reference ADs are as under: Please note the difference between Two AD’s:
- Local-AD / Client-AD / On-Premises:
This is the AD where you have installed MachPanel ADSync Utility. Once
ADSync is enabled you can access this local AD and modify user
properties on this AD. These changes will automatically replicate/sync
with the Provider’s AD (hosted AD).
- Provider AD / Hosted AD / Cloud AD: This is the AD that is managed directly by MachPanel Control Server via MachPanel Remote Servers.
Settings:
Settings will show General & Advanced Setting of ADSync:
General Settings:
Fields of the above screen are described below:
- Control Panel Url: This is the URL to Control Panel Web Service (provided
by host). This can be a Web or IP based address. Check "Tooltip" next to input field for example.
- Domain NetBios name: Local-AD domain NetBios name input field.
- Service Account: Local-AD administrator account with permissions to perform local operations.
- Password: Password for local-ad admin user provided in above field.
Advanced Settings:
- Sync Data Attribute:
Sync Data Attribute’ is used to capture the updating password info and
store its hash in this attribute. Previously this was fixed to
‘division’ attribute of Active Directory User, but now can be customized
to any valid writable Active Directory User attribute. Note
that this attribute is used to temporarily store (encrypted hash)
password before syncing it to hosted user and as soon as user
password/info is synced in next sync cycle it is cleared from the active
directory attribute.
- Sync Data every: You can specify Sync interval or use Sync Now option.
- Logging Enabled: Enable/Disable logging. Simple check/uncheck input to whether to enable logging or not.
- Logs Folder: This is Log Path. Select
log folder to create log files in there if logging is required. The log
folder path of ADSync logs should not be of PDC desktop, and the
provided log path should also be present on all ADC.
- Purge Logs after: Select number of days after which logs are cleared from the ADSync folder.
Then under Profiles you can click 'Add Profile' to add a new profile.
Profiles:
Add Profile will display following fields:
Local Organization
- Organization: Input field to set Local-AD/On-Premises
organization LDAP, or use Icon on the right to list all
local organizations and select one of the organizations. This
field is editable so you can even specify the ROOT so that ALL USERS
under this AD get listed all at once. You can specify the ROOT if users
are under different OUs and you want to list all of them in a single
go. In case of large ADs it is recommended to use specific OUs only to
keep this quick as it will take long time to load all users in case of
large ADs.
- User custom filter: Define a filter for Users.
- Sync Security Groups: In order to Sync security Groups from MachPanel for ADSync Enabled organization check option Sync Security Groups.
- Group custom filter: Define a custom filter for security groups.
- Auto Create New User: Allows you to enable / disable auto creation of Local-AD user on the Hosted AD.
This option enables the customer that any new user created in local OU
for this profile will be automatically created on hosted.
- Enable Auto Mapping: Enable/Disable Auto Mapping of all Existing users.
This option enables the customer that all the existing users will be
auto mapped to selected hosted organization on the basis of UPN and
DisplayName respectively.
Hosted Organization
- User Name: Login Name to access the customer account in MachPanel in format: user@domain.com. This is owner of
Hosted Organization which needs to be synced with Client-AD. This can
either be a Customer Account or a Contact of Customer. (In
ADSync we need Customer credentials not Reseller/Provider credentials
to fetch list of OU’s. List of all OU’s related to Customer are fetched.)
- Password: Password for user login provided in service user name.
- Target OU: Once
above service credentials are
provided then hosted organizations enabled for ADSync are listed in
the selection input box, select one of the organizations to
synchronize its contents. Only the organization(s) owned by single
customer (whose credentials are provided) are shown.
Add: Adds a profile to the below profiles listing and is saved in configuration file on pressing the Save button on the configuration screen.
Click Save to save all settings.
Add Custom Filters
In "Custom Filter" for user and groups we need to specify sync group and sync user in the group and users description (Any attribute can be used). Below are examples to use Custom Filter for Users and Group which uses "sync user" and "sync group" description. In below snapshot UserA, UserB, UserC, GroupA and GroupB, GroupC are created in Active Directory.
Example 1:
In this example we have specified "sync user" and "sync group" description in custom filter and as a result UserA, UserB and GroupA and GroupB (which have description set accordingly) will get synced. See below snapshots:
Filter settings
Users custom filter: (description=sync user)
Groups custom filter: (description=sync group)
Example 2:
When we specify below custom filter settings in sync group and sync user description that we need not to sync (any number of attributes can be used) for e.g.
- Specify something in company for users that I don’t want to sync
- Specify something in display name for groups that I don’t want to sync
only UserA and GroupA will get synced as shown below:
Filter settings
Users custom filter: (&(description=sync user)(!(company=*)))
Groups custom filter: (&(description=sync group)(!(displayName=*)))
Example 3:
To Show and Sync Active Users only, the Attribute that will be used is userAccountControl. This attribute has following properties.
- 512 -> Enabled
- 514 -> Disabled
- 66048 -> Enabled, password never expires
- 66050 -> Disabled, password never expires
You can use this attibute in a way if you want to extract only active users, example given below will extract only active users.
Filter settings
User custom filter: (|(userAccountControl=512)(userAccountControl=66048))
Filter expressions guides:
https://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx
https://docs.microsoft.com/en-us/windows/win32/adsi/search-filter-syntax
- Under the Profiles click Mapping
Enable ADSync for the Hosted Organization in MachPanel. Choose Users from interface below to enable ADSync for users in the parent container i.e: OU selected in profile.
- Click Mapping to choose mapping between Hosted and Local User, click check-box to enable sync for selected users.
- For users which exist in Local domain but have no counterparts on the hosted AD, you can "Enable Sync" and then auto create them in Hosted platform by choosing "--Create New--".
Important Note:
- ADSync needs to be installed on Primary and all Additional Domain Controllers.
- After installation on all Additional Domain Controllers, configure basic information in ADSync Tool on Primary ADSync Server, then copy SyncConfigurations.xml from installation folder on Primary Domain Controller to each Additional Domain Controller. Registry on both types of servers will tell you correct location for configuration file. For old clients the path will be C:\Windows\System32 folder, and for new clients the path to place this file will be C:\Program Files\ADSync. You can confirm/fix the Registry for correct location of SyncConfigurations.xml.
- Make sure “Password must meet Complexity Requirements” is Enabled in Local domain policy. Describe any symptoms for a particular problem.
- To start ADSync to function you need to force all
users to change password on On-Premises (Local/Client) AD, please do expire all
user passwords and restart all domain controllers.
Below is a step by step process how shall this utility be operated.
- Save Basic configurations in utility on Primary DC.
- Copy SyncConfigurations.xml file from
PDC installation folder to all ADC(s) to appropriate folder. Registry on
both types of servers will tell you correct location for configuration
file. For old clients the path will be C:\Windows\System32 folder, and
for new clients the path to place this file will be C:\Program
Files\ADSync. You can confirm/fix the Registry for correct location of
SyncConfigurations.xml.
- Provide On-Premises to Hosted user mapping using the ADSync config studio.
- After providing the mapping, modify the On-Premises Active Directory user account information (Including password). ADSIEdit is not supported, other than that, all other mechanisms (OWA, or Exchange, Locked screen of desktop etc.) are supported. Change in password via any medium (except ADSIEdit.msc) is captured. Only thing to note is that all the Domain Controllers should have the ADSync module installed on them (one primary and others as secondary) so that the password change actioned by any of the domain controllers gets captured.
- To force the sync process to start immediately, Press Click to Sync Now
from ADSync Configuration tool, or simply restart the ADSyncSvc using
Services.MSC (Windows Services Manager) on PDC.
- This shall update the information to the control server.
- From there, control server uses its Provisioning Service to
update the data on associated backend Hosted active directory server.
You can also force the control server to process records instantly by
restarting provisioning service on control panel server.
- You can set Time in "Sync Interval" to start sync or Click to Sync now to force an immediate sync.
This should update the On-Premises active directory user information to the Hosted active directory user.
In case of any issues, you should Enable Logging from configuration
studio of ADSync Tool and review that for any problems. Similar logs
need to be review on MachPanel Control Server to see if there is any
issue in processing of ADSync related data. You can also send the log
files generated from inside the selected folder to us for review.
Let’s assume Hosted AD having the following user.
- User.one@livead.com
- User.two@livead.com
- User.xzy@livead.com Display Name:Gorge John
And local AD having the following Users.
- User.abc@localad.com Display Name: Gorge John
- User.One@localad.com
- User.new@Localad.com
- User.lmn@Localad.com
#3 from LiveAD will be matched with #1 on LocalAD based on Display Name.
#1 from Live AD will be matched with #2 of LocalAD based on UPN.
Recommended Scenario:
It is recommended that for SSO (Same Sign On) the UPN should be fully matched in both LocalAD and LiveAD.
ADSync is a separate module and costs may apply. Kindly contact sales for further information.
Troubleshooting Notes:
Detailed troubleshooting notes are available here:
http://kb.machsol.com/Knowledgebase/Article/53477
- Ensure logging is enabled in ADSync Client Configuration Screen. In
case of any issues, you should Enable Logging from configuration studio
of ADSync Tool and review that for any problems. Similar logs need to
be review on MachPanel Control Server to see if there is any issue in
processing of ADSync related data. You can also send the log files
generated from inside the selected folder to us for review.
- Check to confirm if “ADSyncPolicy, ADSync.ClientHelper, ADSync.PolicyLogger” dll files exist in “$windir\System32” folder.
- Ensure the client enabled “Password Must meet complexity requirements” in user account policy after completing configuration of ADSync and restarted and ADs.
- Ensure that there exist an entry for “ADSyncPolicy” in [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Notification Packages]
- Ensure that ADSync utility is installed on Primary Domain Controller and all Additional Domain Controllers.
- See if "Password Intercept Log" is being generated/updated for each password update on C:\ drive on any/all of the ADs if client is using “ADSiEdit.msc” to change the password.
- See if "Password Intercept Log" is being generated/updated for each password update on C:\ drive on any/all of the ADs if client using “DSA.msc” to change the password.
- See if ADSync is working fine for all the attributes other than password.
- Ensure that user provided in ADSync Config Studio for “Local Admin” field has sufficient permissions in local AD (Should be Member of: Administrators, Domain Admins, Domain Users, Enterprise Admins, Organization Management. Check reference below).
- Ensure the Operating user of ADSync Utility (User logged in with while configuring ADSync) has read/write permissions on installation directory and the directory specified for logging.
- Ensure LDAP URL is correct.
- The service account in ADSync (“Admin Login” / “Admin Password”) is used to read the values of attributes that need to be synced from local AD. The service account only writes to Sync Data attribute ( any other Attribute you specify) of Synced User/Group for tracking purpose on local AD. However, to read the AD attributes, the service account needs to be made member of Domain Admins group in the Local AD.
The "Admin User" specified in ADsync should be member of following. See snapshot below (Schema Admin is optional):
Security and Password Policy:
Please note that password policy shall remain consistent between source (client) AD and Hosted (Cloud) AD, meaning that both ADs should have similar password policies. Best to have Complex Password Policy. Also there is no need to select the ‘reversible password’ option in source (client) AD for syncing password.
Password for a user account is secured by modern encryption schemes and is stored in a secured place.
To make communication even more secure, one must apply/enable SSL certificate for MachPanel Control Panel website and use the ADSync Web Service address as https:// (like https://cp.providerdomain.com/webservices/Adsyncsvc.asmx)
Running a test case:Create an AD user in local/client/On-Premises AD under one of the configured Sync Profile.
- Open ADSync Configuration Studio and provide mapping for this newly created user (you can use ‘Create New’ option) or if you have enabled ‘Auto Create New user’ option for the selected Sync Profile then leave this step.
- Restart ADSync-Svc on local/client/On-Premises AD machine
- Now get to hosted MachPanel Control server
- Open the database and check ‘Hb_tblTempData’ table, whether it has a pending entry in it or not ?
- If there are pending records in ‘Hb_TblTempData’ then restart Provisioning-Svc on Control server
- Check in MachPanel whether the user is created on hosted or not. You can use following navigation path. Home > Service Director > Active Directory > Users
- Also you can check the Audit logs in the MachPanel interface for sync process. (for filtering select ‘ADSync’ in event groups and press search button)