Enabling LDAP Authentication
If your company uses Lightweight Directory Access Protocol (LDAP), you can use the LDAP provider to authenticate Control Hub users. LDAP authenticates a user using the credentials stored in the LDAP server.
LDAP authentication is configured by the default system administrator - the admin@admin user account - for the entire Control Hub system. After LDAP authentication is enabled, all organizations must use LDAP authentication. Users log in to Control Hub using their Control Hub user ID and their LDAP password.
To use LDAP authentication, the Control Hub system administrator configures LDAP connection information for Control Hub and then maps organization administrator accounts to LDAP users. Organization administrators then create Control Hub user accounts for their organization, mapping the Control Hub user accounts to LDAP users.
Control Hub can also retrieve group membership from the LDAP provider. To group users, organization administrators create Control Hub groups, and then map the Control Hub groups to LDAP groups.
You can enable LDAP authentication during the installation or after the installation.
Synchronization between Control Hub and LDAP
Once you enable LDAP authentication, Control Hub automatically adds and removes existing users from groups as changes occur in the LDAP provider. Control Hub takes up to a minute to reflect such changes in the LDAP provider.
- Creates Control Hub users when necessary to match users in the LDAP groups.
- Deactivates but does not delete users from Control Hub when those users are removed from all LDAP groups linked to Control Hub.
If these same users are added back to one of the LDAP groups linked to Control Hub, the users remain deactivated in Control Hub. An organization administrator must activate the user accounts in Control Hub.
Alternatively, you can manually delete deactivated users. If these same users are added back to one of the LDAP groups, Control Hub creates the users again with an active status.
Note: Control Hub never deactivates an organization administrator.
Control Hub checks for users to create and deactivate at most every five minutes. You can configure a longer period between checks.
To accurately create and deactivate users, Control Hub requires that the Control Hub user IDs match the LDAP user names. Control Hub records created and deactivated users as actions, and administrators can see the changes from the Action Audit view.
System Administrator and LDAP Authentication
When LDAP authentication is enabled, the default system administrator - the admin@admin user account - continues to log in using the password for the account stored in the Control Hub relational database.
The system administrator account cannot be mapped to an LDAP user account. If LDAP authentication is incorrectly configured within Control Hub, users will not be able to log in using LDAP authentication. However, the system administrator can use Control Hub credentials to log in, troubleshoot LDAP-related issues, and then re-enable access to Control Hub.
Step 1. Configure LDAP Connection Information
To enable LDAP authentication, configure LDAP connection information in the Control Hub security configuration file, $DPM_CONF/security-app.properties.
Example for Active Directory
ldap.automaticResolutionEnabled=true
ldap.resolutionFrequencyMillis=300000
#userGroupProvider.id=embedded
userGroupProvider.externalProvider.principalCache.expiration.secs=60
userGroupProvider.id=M
userGroupProvider.M.providerClass=
com.streamsets.apps.security.authentication.MultiUserGroupProvider
userGroupProvider.M.multi.ids=AD
userGroupProvider.M.multi.fetchGroups=true
userGroupProvider.M.multi.allGroupsProviderId=AD
userGroupProvider.M.multi.AD.providerClass=
com.streamsets.apps.security.authentication.ldap.LdapUserGroupProvider
userGroupProvider.M.multi.AD.ldap.poolMinConnections=3
userGroupProvider.M.multi.AD.ldap.poolMaxConnections=10
userGroupProvider.M.multi.AD.ldap.poolValidateConnections=true
userGroupProvider.M.multi.AD.ldap.connectionTimeoutMillis=5000
userGroupProvider.M.multi.AD.ldap.responseTimeoutMillis=5000
userGroupProvider.M.multi.AD.ldap.hostname=abc01.mycompany.net
userGroupProvider.M.multi.AD.ldap.port=636
userGroupProvider.M.multi.AD.ldap.ldaps=true
userGroupProvider.M.multi.AD.ldap.startTLS=false
userGroupProvider.M.multi.AD.ldap.userBaseDn=OU=MyCompany,DC=mycompany,DC=net
userGroupProvider.M.multi.AD.ldap.userObjectClass=organizationalPerson
userGroupProvider.M.multi.AD.ldap.userNameAttribute=sAMAccountName
userGroupProvider.M.multi.AD.ldap.userEmailAttribute=mail
userGroupProvider.M.multi.AD.ldap.userFullNameAttribute=cn
userGroupProvider.M.multi.AD.ldap.userFilter=%s={user}
userGroupProvider.M.multi.AD.ldap.bindDn=admin@mycompany.net
userGroupProvider.M.multi.AD.ldap.bindPassword=******
userGroupProvider.M.multi.AD.ldap.fetchGroups=true
userGroupProvider.M.multi.AD.ldap.groupBaseDn=OU=MyCompany,DC=mycompany,DC=net
userGroupProvider.M.multi.AD.ldap.groupObjectClass=group
userGroupProvider.M.multi.AD.ldap.groupMemberAttribute=member
userGroupProvider.M.multi.AD.ldap.groupNameAttribute=cn
userGroupProvider.M.multi.AD.ldap.groupFullNameAttribute=description
userGroupProvider.M.multi.AD.ldap.groupFilter=%s={dn}
Example for OpenLDAP
ldap.automaticResolutionEnabled=true
ldap.resolutionFrequencyMillis=300000
#userGroupProvider.id=embedded
userGroupProvider.externalProvider.principalCache.expiration.secs=60
userGroupProvider.id=M
userGroupProvider.M.providerClass=
com.streamsets.apps.security.authentication.MultiUserGroupProvider
userGroupProvider.M.multi.ids=OpenLDAP
userGroupProvider.M.multi.fetchGroups=true
userGroupProvider.M.multi.allGroupsProviderId=OpenLDAP
userGroupProvider.M.multi.OpenLDAP.providerClass=
com.streamsets.apps.security.authentication.ldap.LdapUserGroupProvider
userGroupProvider.M.multi.OpenLDAP.ldap.poolMinConnections=3
userGroupProvider.M.multi.OpenLDAP.ldap.poolMaxConnections=10
userGroupProvider.M.multi.OpenLDAP.ldap.poolValidateConnections=true
userGroupProvider.M.multi.OpenLDAP.ldap.connectionTimeoutMillis=5000
userGroupProvider.M.multi.OpenLDAP.ldap.responseTimeoutMillis=5000
userGroupProvider.M.multi.OpenLDAP.ldap.hostname=abc02.mycompany.net
userGroupProvider.M.multi.OpenLDAP.ldap.port=389
userGroupProvider.M.multi.OpenLDAP.ldap.ldaps=false
userGroupProvider.M.multi.OpenLDAP.ldap.startTLS=false
userGroupProvider.M.multi.OpenLDAP.ldap.userBaseDn=ou=employees,dc=example,dc=org
userGroupProvider.M.multi.OpenLDAP.ldap.userObjectClass=inetOrgPerson
userGroupProvider.M.multi.OpenLDAP.ldap.userNameAttribute=uid
userGroupProvider.M.multi.OpenLDAP.ldap.userEmailAttribute=mail
userGroupProvider.M.multi.OpenLDAP.ldap.userFullNameAttribute=cn
userGroupProvider.M.multi.OpenLDAP.ldap.userFilter=%s={user}
userGroupProvider.M.multi.OpenLDAP.ldap.bindDn=cn=admin,dc=example,dc=org
userGroupProvider.M.multi.OpenLDAP.ldap.bindPassword=******
userGroupProvider.M.multi.OpenLDAP.ldap.fetchGroups=true
userGroupProvider.M.multi.OpenLDAP.ldap.groupBaseDn=ou=departments,dc=example,dc=org
userGroupProvider.M.multi.OpenLDAP.ldap.groupObjectClass=groupOfNames
userGroupProvider.M.multi.OpenLDAP.ldap.groupMemberAttribute=member
userGroupProvider.M.multi.OpenLDAP.ldap.groupNameAttribute=cn
userGroupProvider.M.multi.OpenLDAP.ldap.groupFullNameAttribute=description
userGroupProvider.M.multi.OpenLDAP.ldap.groupFilter=%s={dn}
Step 2. Configure Secure Connections (Optional)
- LDAP over SSL (LDAPS)
- LDAPS uses SSL to encrypt LDAP connections. LDAPS uses the
ldaps://
scheme. - StartTLS
- StartTLS can wrap an unencrypted connection with TLS during the
connection process. This allows the same port to handle both unencrypted
and encrypted connections. StartTLS uses the
ldap://
scheme.
For either encryption method, if the LDAP server certificate is signed by a private Certificate Authority (CA) or not trusted by the default Java truststore, you must create a custom truststore file or modify the default Java truststore file to add the CA to the file. Then configure Control Hub to use the modified truststore file.
Use the same procedure to configure either secure method.
Step 3. Map Organization Administrators to LDAP Users
As the system administrator, you must map each StreamSets Control Hub organization administrator to an LDAP user account.
- New organizations
- When you create new organizations, you simply enter the name of the LDAP user account to map to the organization administrator created with the organization, as described in Creating Organizations.
- Existing organizations
- If you have existing organizations created before LDAP authentication was
enabled, edit the organization administrator user accounts as follows:
- In the Navigation panel, click .
- Click the Toggle Filter Column icon (
) to filter the users by organization.
- Select an organization and then click the existing organization administrator to display the account details.
- Enter the name of the LDAP user account to map to the organization administrator in the LDAP User Name property.
- Click Save.
Step 4. Map Users and Groups to LDAP Users and Groups
Organization administrators must map StreamSets Control Hub users and groups to LDAP users and groups for their organization.
When using LDAP authentication with Control Hub, we recommend that organization administrators follow these best practices:
- If you did not configure Control Hub
to automatically create
users, create Control Hub
user accounts for the organization and map them to LDAP user accounts by entering
the name of the LDAP user in the LDAP User Name property.Tip: Create Control Hub user IDs that match LDAP user names. For example, to add the LDAP user
Amy
to the Control Hub organizationMyOrg
, create a Control Hub user IDAmy@MyOrg
. By doing so, you can later configure Control Hub to automatically create users.Assign the Organization User role to each Control Hub user account, and then clear all other roles.
- Create Control Hub
groups and map them to LDAP groups by entering the name of the LDAP group in the
LDAP Group Name property. LDAP group names are case
sensitive.
When LDAP authentication is enabled, you cannot assign Control Hub users to Control Hub groups. Control Hub retrieves the group memberships from the LDAP provider.
- Assign Control Hub roles to the Control Hub groups.
To more efficiently manage user accounts, assign roles to groups rather than individually to each user account.