12 KiB
LDAP
For context on getting started with ingestion, check out our metadata ingestion guide.
Setup
To install this plugin, run pip install 'acryl-datahub[ldap]'
.
Capabilities
This plugin extracts the following:
- People
- Names, emails, titles, and manager information for each person
- List of groups
Quickstart recipe
Check out the following recipe to get started with ingestion! See below for full configuration options.
For general pointers on writing and running a recipe, see our main recipe guide.
source:
type: "ldap"
config:
# Coordinates
ldap_server: ldap://localhost
# Credentials
ldap_user: "cn=admin,dc=example,dc=org"
ldap_password: "admin"
# Options
base_dn: "dc=example,dc=org"
# Optional: Map LDAP User Attributes to DataHub User Attributes
user_attrs_map:
urn: sAMAccountName # A unique, stable ID for the User
fullName: cn
lastName: sn
firstName: givenName
displayName: displayName
manager: manager
mail: mail
departmentNumber: departmentNumber
title: title
# Optional: Map LDAP Group Attributes to DataHub Group Attributes
group_attrs_map:
urn: cn # A unique, stable ID for the Group
admins: owner
members: uniqueMember
displayName: name
sink:
# sink configs
Config details
Note that a .
is used to denote nested fields in the YAML recipe.
Field | Required | Default | Description |
---|---|---|---|
ldap_server |
✅ | LDAP server URL. | |
ldap_user |
✅ | LDAP user. | |
ldap_password |
✅ | LDAP password. | |
base_dn |
✅ | LDAP DN. | |
filter |
"(objectClass=*)" |
LDAP extractor filter. | |
drop_missing_first_last_name |
True |
If set to true, any users without first and last names will be dropped. | |
page_size |
20 |
Size of each page to fetch when extracting metadata. | |
user_attrs_map.urn |
sAMAccountName |
An attribute to use in constructing the DataHub User urn. This should be something that uniquely identifies the user and is stable over time. | |
user_attrs_map.managerUrn |
manager |
Alternate attrs key representing same information as user's manager in the organization. | |
user_attrs_map.firstName |
givenName |
Alternate attrs key representing same information as user's givenName in the organization. | |
user_attrs_map.lastName |
sn |
Alternate attrs key representing same information as user's sn (surname) in the organization. | |
user_attrs_map.fullName |
cn |
Alternate attrs key representing same information as user's cn (common name) in the organization. | |
user_attrs_map.email |
mail |
Alternate attrs key representing same information as user's mail in the organization. | |
user_attrs_map.displayName |
displayName |
Alternate attrs key representing same information as user's displayName in the organization. | |
user_attrs_map.departmentId |
departmentNumber |
Alternate attrs key representing same information as user's departmentNumber in the organization. | |
user_attrs_map.departmentName |
departmentNumber |
Alternate attrs key representing same information as user's departmentName in the organization. It is defaulted to departmentNumber to not impact existing users. New users are recommended to use descriptive attributes like department or departmantName that may exist. |
|
user_attrs_map.title |
title |
Alternate attrs key representing same information as user's title in the organization. | |
user_attrs_map.countryCode |
countryCode |
Alternate attrs key representing same information as user's countryCode in the organization. | |
group_attrs_map.urn |
cn |
Alternate attrs key representing same information as the group's cn (common name) for the LDAP group. | |
group_attrs_map.email |
mail |
Alternate attrs key representing same information as group's mail in the organization. | |
group_attrs_map.admins |
owner |
Alternate attrs key representing same information as group's owner in the organization. | |
group_attrs_map.members |
uniqueMember |
Alternate attrs key representing same information as group's members in the organization. | |
group_attrs_map.displayName |
name |
Alternate attrs key representing same information as group's display name in the organization. | |
group_attrs_map.description |
info |
Alternate attrs key representing same information as group's description in the organization. |
The drop_missing_first_last_name
should be set to true if you've got many "headless" user LDAP accounts
for devices or services should be excluded when they do not contain a first and last name. This will only
impact the ingestion of LDAP users, while LDAP groups will be unaffected by this config option.
Configurable LDAP
Every organization may implement LDAP slightly differently based on their needs. The makes a standard LDAP recipe ineffective due to missing data during LDAP ingestion. For instance, LDAP recipe assumes department information for a CorpUser would be present in the departmentNumber
attribute. If an organization chose not to implement that attribute or rather capture similar imformation in the department
attribute, that information can be missed during LDAP ingestion (even though the information may be present in LDAP in a slightly different form). LDAP source provides flexibility to provide optional mapping for such variations to be reperesented under user_attrs_map
and group_attrs_map
. So if an organization represented departmentNumber
as department
and mail
as email
, the recipe can be adapted to customize that mapping based on need. An example is show below. If user_attrs_map
section is not provided, the default mapping will apply.
# in config section
user_attrs_map:
departmentNumber: department
mail: email
Compatibility
Coming soon!
Questions
If you've got any questions on configuring this source, feel free to ping us on our Slack!