This document is intended to walk you through the installation of User Sync tool to automate the user management process.

The User Sync tool is a command-line utility that moves user and group information from your organization’s enterprise directory system (such as an Active Directory or other LDAP systems) to your organization’s directory in the Adobe Admin Console. Each time you run the User Sync tool, it looks for differences between the user and group information in the two systems and updates the Adobe directory to match the information in your directory.

This document provides step-by-step instructions to interface an Active Directory system with the Adobe Admin Console. This is one of the most popular combinations that our customers use in the K-12 and SMB segments. The User Sync tool is flexible and can be used to interface with most LDAP and directory systems. If you're using a directory system other than Active Directory, the instructions in this document do not apply directly; modify as required. For more information, see the Setup and Success Guide.

Before you begin

You need the following information about your LDAP system. If you do not have this information, contact your IT administrator.

  • Domain controller name (or its IP, if fixed) and port.
  • User name and password to a service account that the tool can use to extract users from your LDAP (read-only access).
  • Base DN, which is the point from where the server searches for users; it should be wide enough to allow the discovery of all users and groups requiring to be synced.
  • Group names that are a part of the synchronization.
  • The best suited LDAP attribute for mail/username for all users needing to be created in Admin Console.
  • (Optional) You might also require a custom LDAP query that selects the set of users to be synced with Adobe if the default filters don't cover the requirements.
Active directory

The key pair is used to sign a JWT and verify its legitimacy in obtaining the access_token process. To assist you on this process, contact your security team, if necessary.

Certificate tips:

  • Public certificate can be signed by your own CA (raise a CSR if necessary); self signed ones are accepted too
  • Private key should be RSA: 2048 bits at min
  • The public certificate should have a .crt extension
  • Sign using SHA-256
  • Public key validity: three years recommended but your internal security policy will dictate

Create a self-signed certificate

For testing and setting up, you can also use a self-signed certificate using openssl. For Mac OS/Linux, openssl might come by default. For Windows, add openssl support separately (for example, Cygwin
To create a self-signed certificate follow these steps:

  1. For macOS/Linux, open Terminal. 
    For Windows open the program that offers openssl support (Cygwin, cmd, other...).

  2. Run the following command:

    openssl req -x509 -sha256 -nodes -days 1095 -newkey rsa:2048 -keyout private.key -out certificate_pub.crt
    Digital certificate
  3. When the private key generation is complete, you are prompted to enter additional information to create a Distinguished Name for the public key. You can accept default values, or enter a relevant one. To leave a field blank, enter "." (a dot character).

    Digital certificate

The public certificate and the private key files are stored in the following default locations:

Windows: C:\cygwin64\home\<your_user_name>

macOS: /Users/<your_user_name>

If you plan to install User Sync on your machine, ensure that it meets the following requirements:

  • Has access to the Internet, and your directory service such as LDAP or AD.
  • Is protected and secure (your administrative credentials are stored or accessed there).
  • Stays up, is reliable, and has a backup and recovery capability.
  • Can send emails so User Sync can send reports to administrators.
  • If it is a Windows machine, it has a 64-bit processor.

Otherwise, work with your IT department to identify such a server and get access to it.

Ensure that you have claimed the domain for your organization, and the Product Profiles and User Groups are created in the Adobe Admin Console.

Set up the server

To set up an adobe.io integration, do the following:

  1. Sign in to the Adobe I/O Console, select your organization from the drop-down list, and click New Integration.

    New Integration
  2. In the Create a New Integration wizard, select Access an API, and click Continue.

    Screenshot_3
  3. Select User Management API under Adobe Services, and click Continue. On the screen that appears next, click Continue again.

    Untitled-2
  4. Enter a name and description for the integration, and upload the Public key certificate file. Click Create integration.

    The integration is created.

    Create integration
  5. To view the integration details, click Continue to Integration Details.

    Integration Details

These integration details are required to configure the User Sync files later.

  1. Create a folder named user_sync_tool in a location on the drive where users with required permissions can access its contents.

  2. Access GitHub and locate the Latest release tag.

    Inside this release, find and expand the Assets. Then, locate and download:

    • The examples.zip file
    • The .zip of the User Sync Tool in the list that matches your OS type and Python version

    Megjegyzés:

    The name of the archive contains the OS type it works on and also with what Python version it was built. For example, user-sync-vX.Y-win64-py368.zip is a Windows release, built with Python 3.6.8 (64 bit). 
    If you don't have a Python version installed on the system, try to match/install the one the tool was built with.

  3. Unzip examples.zip, navigate to config files - basic, and copy these files to user_sync_tool folder: connector-ldap.yml, connector-umapi.yml, and user-sync-config.yml.

  4. From the other zip file, extract the user-sync.pex file and place it inside same user_sync_tool folder.

  5. Locate the private.key that came along with the public certificate and move it to same user_sync_tool folder. So now, the entire list of files becomes:

    • connector-ldap.yml
    • connector-umapi.yml
    • private.key
    • user-sync.pex
    • user-sync-config.yml

  1. Let's go for the Python 3.6.8 installation (download Windows x86-64 executable installer and run it).

  2. Enable the check box Add Python 3.6 to PATH and select Customize Installation.

    Install Python
  3. On the Optional Features screen, click Next. On the Advanced Options screen, select the Install for all users check box, and click Install.

    Install Python
  4. After the installation is complete, if you see an option to disable path length limit, select it before closing the install window.

  5. Open Command Prompt and run the following command:

    python --version

    If Python is successfully added to PATH, the above command line returns the version, otherwise an error.

Configure User Sync

  1. Edit the file connector-ldap.yml with a specialized text editor.

  2. Enter the user name, password, host, and base_dn values.

    Directory Access configuration file
  3. Set search_page_size to 200.

  4. Although most of the times the default filters would do. If you need a custom LDAP query to extract a set of users, modify the all_users_filter config parameter.

  5. Verify the rest of the uncommented settings and what LDAP attributes they point to. Change them according to your needs.

    Some deployments have username-based login set up (Username field in Admin Console for a given user is not an email type of value). 

    In this case, enable the following line too (remove the # char):
    user_username_format: {sAMAccountName}

    Replace the sAMAccountName with the right attribute if it's not the one you need to use.

  1. Edit the connector-umapi.yml. This file has access information to your Adobe organization.

  2. Enter the following information from the adobe.io integration you created earlier:

    • org_id
    • api_key
    • client_secret
    • tech_acct
  3. Make sure that the priv_key_path contains the exact name of the private key inside the  user_sync_tool folder. 
    If the private key is inside same folder with the rest of the UST files, priv_key_path can contain only the name of the file; it works as a relative path.

    Adobe UMAPI credentials

If your directory does not list a country for each user, you can set a default country.

  1. Edit the user-sync-config.yml file.

  2. Remove # from the default country code line, and enter the appropriate country code. For example:

    default_country_code: US

    Megjegyzés:

    A country code is required for Federated IDs and recommended for Enterprise IDs. If not supplied for Enterprise IDs, the users are prompted to choose a country when they first log in.

This section defines what groups from LDAP should have a corresponding user-group or PLC in Admin Console.

The target here is to give the tool a source of groups/users so that it can match the same members in Admin Console side groups/PLCs.

  1. Edit group mapping in the user-sync-config.yml file. 

  2. For each directory group that must map to an Adobe Product Profile or user group, add an entry inside the groups section. For example:

    groups:
        - directory_group: LDAP_group_name_goes_here
          adobe_groups:
            - Adobe_group_name_goes_here
        - directory_group: LDAP_group_name_goes_here
          adobe_groups:
            - Adobe_group_name_goes_here

    Megjegyzés:

    Group mapping can be done using Adobe User Groups or Product Profiles, not to Product names. And, you can map one directory group to more than one Adobe User Groups or Product Profiles.

To prevent accidental account removal if there is a misconfiguration or another problem, you can decide a limit of maximum number of account removals you'd expect in your daily sync.

  1. To change the limit, find  max_adobe_only_users in the user-sync-config.yml file.

  2. If you expect the number of account removals to be more than the set max_adobe_only_users value between User Sync runs, raise the value to cover all account removals.

    Megjegyzés:

    If the number of accounts to be removed is more than the max_adobe_only_users value, the tool would not process any account removal. A critical entry appears in the log that announces reaching that limit.

    This limit does not impact the create actions.

There are situations where some accounts must be excluded from the synchronization. This can be achieved by editing the user-sync-config.yml file.
The tool offers three exclude features: by identity type, by group name and by regular expression.
Any account found in Admin Console that fits in at least one of the mentioned criteria is protected from remove actions (from group, from Org).

It's a good practice to have AdobeIDs for System Administrators in Admin Console and exclude them via exclude by exclude_identity_types: adobeID

Here is a sample:

adobe_users:
  exclude_identity_types:
    - adobeID           # adobeID, enterpriseID, or federatedID
  exclude_adobe_groups:
    - adobe_group_name  # its members are not to be removed by User Sync
    - other_group_name  # you can exclude multiple groups
  exclude_users:
    - ".*@example.com"
    - important_user@domain.com

User Sync produces log entries that are printed to standard output and also written to a log file. The logging set of configuration settings control details of where and how much log information is output.

  1. To turn the file log on or off, edit the log_to_file value in the user-sync-config.yml file.

  2. Review the settings for logs and make any desired changes. For the initial setup it's recommended to use 
    log_to_file: True 
    file_log_level: debug

Alternatively, if you have a Windows server, you can use the User Sync Tool Configuration wizard to configure User Sync.

The User Sync Tool Configuration wizard is a GUI tool that helps you easily configure the User Sync tool with User Management API (Adobe.io), Enterprise Directory (LDAP), and sync settings. It provides context-based help and links to User Sync tool documentation. For more information, see Adobe User Sync Tool Configuration wizard.

Deploy and automate

Now that the User Sync tool is set up on your server or machine, you can check if it works as expected. To troubleshoot the common issues while running the User Sync Tool, see tips to resolve common errors.

  1. Open Command Prompt.
  2. Using the following command, navigate to the user_sync_tool folder.

    cd path/to/user_sync_tool
  3. To verify that your configuration is complete, run the following commands:

    For Windows:

    python user-sync.pex -v
    python user-sync.pex -h

    For UNIX:

    ./user-sync –v
    ./user-sync –h

    -v reports the version, -h provides help on command-line args.

  4. In test mode, run a sync limited to the mapped groups named in the config file, excluding the existing Adobe side accounts.

    python user-sync.pex -t --users mapped --process-groups --adobe-only-user-action exclude

    The command above syncs only the users in the mapped group specified in user-sync-config.yml. If the users don't exist in the Admin Console, it results in an attempt to create the users and add them to any groups that are mapped from their directory groups.

    Running user-sync in test mode (-t) only attempts to create the user and not actually do it. The --adobe-only-user-action exclude option prevents removal of any existing user account in the Adobe organization.

  5. Although the invocation_defaults sets the default arguments the tool runs with, you can override them by mentioning them in command line. In test mode, run a sync limited to the mapped groups named in the config file, removing the extra accounts found on Adobe side and not found in the LDAP extraction.

    python user-sync.pex -t --users mapped --process-groups --adobe-only-user-action remove

    -t

    run a simulation not an actual sync and see what would happen.

    --users-mapped

    extract users from LDAP that are results of both all_user_filter and member of the provided directory_group names in the config file.

    --process-groups

    add/remove users to/from the Adobe side user-groups or PLCs, based on account being or not member of the LDAP mapped groups.

    --adobe-only-user-action remove

    any account found on Adobe side is removed from Users menu and entitlements stripped off if not found in the LDAP extraction and not being excluded from sync.

    Read more about command parameters here.

    Read about some other usage scenarios here.

If all the tests run as expected, you are ready to make a full run (without the test-mode flag).

Megjegyzés:

  • The provided command lines are just examples and might not cover the entirety of use-cases.
  • Initial sync can take from seconds to hours depending on the number of accounts to sync. Roughly 250 users get created every 1.5-2 minutes (including time-out).
  • The UMAPI timeout warning code 429 messages are expected. The tool handles the retry mechanism.

User Sync can be run manually, or you can set up automation where it runs once to a few times per day automatically.

Megjegyzés:

If you have a log analysis and alerting system available, arrange for the log from User Sync to be sent to the log analysis system. And, set up alerts for any Error or Critical messages that appear in the log.

  1. To pull out relevant log entries for a summary, create a batch file in the user_sync_tool folder with the invocation of user-sync piped to a scan. For example, create a file run_sync.bat with contents like:

    cd path/to/user-sync-folder
    python user-sync.pex --users file example.users-file.csv --process-groups | findstr /I "==== ----- WARNING ERROR CRITICAL Number" > temp.file.txt
    rem email the contents of temp.file.txt to the user sync administration
    your-mail-tool –send file temp.file.txt
  2. Optionally, set up an email command-line tool.

    There is no standard email command-line tool in Windows, but several are available commercially, where you can fill in your specific command-line options.

  3. Set up the Windows task scheduler to run the User Sync tool.

    For example, the below code runs the User Sync tool every day starting at 4:00 PM:

    C:\> schtasks /create /tn "Adobe User Sync" /tr path_to_bat_file/run_sync.bat /sc DAILY /st 16:00

Ez a munka a Creative Commons Nevezd meg!-Ne add el!-Így add tovább! 3.0 Unported licenc alatt lett közzétéve.  A Twitter™ és Facebook közzétételeket a Creative Commons jogi feltételei nem szabályozzák.

Jogi közlemények   |   Online adatvédelmi nyilatkozat