Helix TeamHub LDAP Sync application
Integrating the corporate LDAP directory to Helix TeamHub is straightforward. Follow the steps below to setup synchronization. On-premises installations of TeamHub can also be configured to use LDAP Authentication. In such case the LDAP Sync application can still be used to keep existing TeamHub accounts up to date.
Requirements
- Java runtime (1.6+)
- Read access to the source
- The source must provide at least the following user attributes: (first_name, last_name, username, email)
Create Company Admin bot
Log in to TeamHub App with a Company Admin account (On-premises users: log in to your instance). Click the company name on the top navigation and select Bots from the left menu. Create a new Company Admin bot and take a note of the API keys, they'll be used later when configuring synchronization.
Set up and configure LDAP Sync
Download Helix TeamHub LDAP Sync application from the LDAP Sync app download page and extract it. The application is configured using a YAML file. Copy one of the example config files and use it as a base for configuration. Use the example_ad.yml if the source is Active Directory or example_ldap.yml
if the source is some other OpenLDAP compliant server.
Configure General and Helix TeamHub API settings
Uncomment and set a unique name for the source. The source is used to identify which users in TeamHub are synchronized from this LDAP source. Make sure to use the same value for the source that was used in TeamHub Admin authentication preferences if using LDAP Authentication. For synchronization strategy, choose either to sync all the users from LDAP to TeamHub, or only keep existing TeamHub users in sync. In both cases deactivated or deleted LDAP users will also be deleted from TeamHub. The keep_in_sync strategy is recommended for LDAP Authentication.
Using the sync_all strategy will sync all the users found from LDAP to TeamHub and new users will receive a registration/welcome email.
Set value for company_key and account_key previously noted. If using TeamHub On-premises, set the api_url to point to the TeamHub instance API. You can enable certificate verification with TeamHub API requests by setting a path to the root certificate of the certificate used in TeamHub for the api_server_certificate attribute. The path can be either relative to where hth-ldapsync.jar is executed or an absolute path.
Configure your LDAP settings
Set the LDAP host, port, auth_username and auth_password for a user with read access for the source, and choose the encryption method for LDAP connection. Then set the LDAP base tree to where to sync the users from. Users can be ignored from synchronization by adding the short_name to the ignored_users list.
Starting from
Finally configure the attribute mappings between the LDAP schema and TeamHub.
Configure groups (optional)
Starting from
Attribute mappings between the directory and TeamHub can be configured using ldap_group_attributes. The default mapping will work for most users, but revise the value of the source attribute. The source defines whether the LDAP groups are linked to TeamHub groups by common name cn or distinguished name (dn).
Group synchronization can be enabled by using the group-sync switch:
java -jar hth-ldapsync.jar --config myconfig.yml --group-sync
Test configurations
Try out the configurations by running the LDAP Sync application and giving it the configuration file as a parameter. By default no modifications are made, shown instead are details of what the synchronization would do. For example:
java -jar hth-ldapsync.jar --config myconfig.yml
If there are already users in TeamHub that need to be synchronized from the source, use the --force-sync switch with the first run. It will map the existing TeamHub users to the source and update them instead of creating new users.
Users from source: 2
Users from Acme: 0
Users to create: 1
Users to update: 0
Users to deactivate: 0
create users
[{:short_name=>"norris",
:first_name=>"Chuck",
:last_name=>"Norris",
:email=>"chuck@norris.com",
:password=>"***FILTERED***",
:id=>"norris",
:active=>true,
:pre_hash=>:ldap_sha1,
:synchronized_fields=>
["short_name", "first_name", "last_name", "email", "password", "pre_hash"],
:source=>"ad-2012"}]
Run the LDAP Sync
Once the configuration is ready, run the actual synchronization by adding the --apply switch. This will synchronize users to TeamHub.
java -jar hth-ldapsync.jar --config config.yml --apply
The LDAP Sync application can also be setup to run at intervals like once per hour, by using a scheduler.