LDAP Synchronization
It’s possible to synchronize DataWarehouse groups with external LDAP groups by
enabling the FF_LDAP_GROUP_SYNC
feature flag.
Groups configured to be synced by the LDAP integration are completely managed by it. This means that users manually added to these Django groups will be removed when the cron task runs.
Changes to the LDAP group are reflected when the cron updater runs. Newly
added users to the LDAP group automatically get added to the Django group
and removed users from the LDAP group are automatically removed from the
Django group. This does not affect users added via extra_users
.
Configuration
For LDAP queries to work it’s necessary to setup a few configuration options using environment variables:
Name | Required | Description |
---|---|---|
FF_LDAP_GROUP_SYNC |
True |
Enable LDAP synchronization. |
LDAP_SERVER_URL |
True |
Address of the LDAP server. |
LDAP_BASE_SEARCH |
True |
Base DN for the search. |
LDAP_MEMBERS_FIELD |
False |
Name of the users in the result. Default: uniqueMember |
Mapping groups
To define the link between an LDAP search and a DataWarehouse group it’s
necessary to create LDAPGroupLink
objects, which can be done by an
administrator through the admin interface.
The LDAPGroupLink
object contains 2 required values: group
and
filter_query
plus an extra extra_users
to force users to be part of the
group if they’re not in the LDAP groups, which is useful for assigning service
accounts which are not linked to LDAP users.
For example:
- group:
policy_read_internal
- filter_query:
(&(objectClass=rhatRoverGroup)(cn=cki-datawarehouse-internal-read))
- extra_users: [
sa_reporter
]