Capabilities
The LDAP connector supports automatic account provisioning and deprovisioning.
POSIX account provisioning
The LDAP connector supports provisioningposixAccount entries with automatic UID number assignment. When creating a new POSIX account, the connector can look up the highest uidNumber currently in use across all existing posixAccount entries in your directory and automatically assign the next available value.
To use this feature, configure the following account provisioning mappings:
Automatic UID number calculation assigns
uidNumber only. You must provide gidNumber manually in the Additional Attributes mapping. If you set Calculate the next valid UID Number to true, any uidNumber value provided in Additional Attributes is ignored.Connector actions
Connector actions are custom capabilities that extend C1 automations with app-specific operations. You can use connector actions in the Perform connector action automation step. Global actions (connector-level):To use
create_ou, the connector’s bind account must have permission to add child entries under the target parent DN (by default, the configured base DN). For OpenLDAP and similar servers, this is write/add access on the parent container; for Active Directory, delegate the Create Organizational Unit objects right on the parent OU.
The
update_profile action returns success (bool), updated_user (the user resource after the update, best-effort re-fetched; absent if the read-back failed, though the write itself still succeeded), applied (the number of attributes changed), and skipped (named fields or custom_attributes entries that were not written).
update_profile is intended for generic LDAP directories (Active Directory and FreeIPA have their own connectors). It applies the following rules:- Named fields:
first_name→givenName,last_name→sn,display_name→displayName,email→mail. A named field is applied only when present and non-empty; a present-but-empty named field cannot clear the attribute and is instead reported inskipped. inetOrgPersonrequirement: onlylast_name(sn) is universal — it’s a MUST attribute of the basepersonobject class.first_name(givenName),display_name(displayName), andemail(mail) are only defined by RFC 2798’sinetOrgPersonobject class, so writing one of them to an entry that doesn’t carryinetOrgPersonfails loudly with LDAP result code 65 (“Object Class Violation”) — an atomic, clearly-signaled failure with no partial write, not a silent no-op.- Custom attributes:
custom_attributesmaps arbitrary raw LDAP attribute names to values; an empty value clears the attribute (unlike the named fields above, where empty just means “not supplied”). Keys are used verbatim as attribute names — the named-field mapping above applies only to the named arguments, never tocustom_attributes.{"user_id": "x"}therefore writes an attribute literally nameduser_id(failing with LDAP result code 17, “Undefined Attribute Type”, if the directory has no such attribute); it does not writeuid. The same goes for baton profile field names such asloginandpath: they are attempted as literal attribute names rather than skipped. - Collisions: a
custom_attributeskey is dropped (never merged with, or overwriting, a named field’s slot) and reported once inskippedwhen it case-insensitively matches either one of the four named field names, or the LDAP attribute a supplied named field is writing (givenName,sn,displayName,mail). The latter only applies when that named field was actually supplied and non-empty; otherwise{"givenName": "Jane"}is an ordinary raw write. - Not modifiable: password attributes (
userPassword, or any name containingpassword— use credential rotation instead) andobjectClassare rejected; the user’s RDN attribute (for examplecnwhen the DN iscn=jdoe,...) is skipped, since renaming requires a different operation. - Multi-valued attributes: setting (not clearing) a value on an attribute that currently holds more than one value returns an error instead of silently discarding the extra values; clearing (an empty value) still removes all values.
- Scope: only entries within the configured user search scope (
user-search-dn, falling back tobase-dn) can be modified; out-of-scope or non-user DNs are rejected.
Gather LDAP credentials
Configuring the connector requires you to pass in credentials for LDAP. Gather these credentials before you move on. Here’s the set of credentials you’ll need when setting up the connector:- The username and password of an LDAP account
- URL of the LDAP server, which can use either
ldap:orldaps:schemes, and optionally includes a port number
Configure the LDAP connector
- Cloud-hosted
- Self-hosted
Follow these instructions to use a built-in, no-code connector hosted by C1.Cloud-hosted connector not currently available.