Skip to main content

Capabilities

The Active Directory connector supports automatic account provisioning and deprovisioning. When a new account is created by C1, the account’s password is sent to a vault. Notes:
  • The connector syncs each user’s primary group membership (for example, Domain Users) via the primaryGroupID attribute. AD does not include primary groups in memberOf, so the connector resolves these automatically.
  • The connector supports syncing across multiple AD domains and forests in a single run via additional-domains configuration.
  • gMSA sync is opt-in and requires the enable-gmsa-sync flag. gMSA provisioning modifies the msDS-GroupMSAMembership security descriptor ACL.
  • The connector supports two connection modes: LDAP (default on Linux) and WinLDAP (default on Windows, uses wldap32.dll for Kerberos/GSSAPI).
  • Account provisioning (create/delete) requires LDAPS (ldaps: true).
  • When sync-scope is set to GlobalCatalog, provisioning is not supported and some profile fields may be unavailable.

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): Resource actions (on user resources): Resource actions (on group resources): Custom PowerShell actions: You can define additional actions backed by PowerShell scripts in the config file. See Custom PowerShell Actions below.

Resources

Gather Active Directory credentials

To configure the Active Directory connector, you need an Active Directory service account with appropriate permissions. The specific permissions depend on your intended use:
  • Sync only: Read access to AD objects
  • Entitlement provisioning: Delegated rights to modify group membership
  • Account provisioning: Delegated rights to create, delete, and manage user accounts, plus LDAPS enabled
  • gMSA provisioning: Permission to modify msDS-GroupMSAMembership on gMSA objects
The service account also needs Log on as a service permission and Modify access to C:\ProgramData\ConductorOne.

Create a service account

1
Create a dedicated AD service account for the connector (for example, svc-baton). A standard domain user account with read access is sufficient for sync-only operation.
2
Grant the service account Log on as a service permission via local or domain Group Policy, depending on your environment.

Entitlement provisioning permissions

For entitlement provisioning support, the service account needs delegated rights to manage group membership.
1
Open Active Directory Users and Computers (ADUC) or run dsa.msc from the command line.
2
Right-click on your forest root (or a specific OU if you only want to provision into groups in that OU) and select Delegate Control.
3
Add the service account running the baton-active-directory service.
4
From the tasks to delegate, check the box for Modify the membership of a group.
5
Click Next, then Finish.
This delegation grants the service account the ability to provision and deprovision access from Active Directory groups, but it excludes special built-in groups like Administrators, Domain Admins, Enterprise Admins, and Schema Admins. To manage those protected groups, you must grant explicit Write Members permission on each group and update AdminSDHolder to prevent the permission from being removed:
1
For each protected group: right-click the group, click the Security tab, click Advanced, click Add, select the service account as the principal, and grant Write Members permission.
2
Run the following PowerShell script from a domain controller with domain admin credentials to ensure AdminSDHolder does not remove the permission after 60 minutes:

Account provisioning permissions

User account provisioning requires ldaps: true in your config.
1
Open ADUC or run dsa.msc from the command line.
2
Right-click on your forest root (or a specific OU) and select Delegate Control.
3
Add the service account running the baton-active-directory service.
4
From the tasks to delegate, check the box for Create, delete, and manage user accounts.
5
Click Next, then Finish.
Done. Next, move on to the connector configuration instructions.

Configure the Active Directory connector

To complete this task, you’ll need:
  • The Connector Administrator or Super Administrator role in C1
  • An Active Directory service account with the appropriate permissions (see above)
The Active Directory connector is self-hosted only. It runs on a Windows or Linux server in your environment with direct network access to your domain controllers.To get started, follow the Self-hosted tab instructions.

What’s next?

Once your Active Directory connector is synced, you can use C1 to run user access reviews on AD group memberships, enable just-in-time access requests for AD groups and gMSAs, and automate provisioning workflows using connector actions.

Set up account provisioning

The Active Directory connector supports automatic account provisioning and deprovisioning. When C1 creates a new AD user account, the generated password is automatically sent to a vault. Before you begin, confirm:
  • The connector config has ldaps: true and provisioning: true
  • A vault is configured in C1 to receive the generated password
  • The service account has delegated rights to create, delete, and manage user accounts (see Account provisioning permissions above)

Configure provisioning mappings

1
In C1, navigate to Apps > Managed apps and click the name of your Active Directory application.
2
Under Accounts management, click Edit next to Provisioning.
3
From the Connector dropdown, select your Active Directory connector.The mapping fields defined by the connector’s schema appear below the dropdown.
4
Enter a CEL expression for each field. See Provisioning field reference below for guidance.Click Test next to any field to validate the expression against an existing C1 user.
5
Under Password storage, select the vault where generated passwords should be stored.
6
Click Save.

Provisioning field reference

The fields below are defined by the AD connector’s account creation schema. CEL expressions reference profile attributes accumulated from connected directory and HR apps using the pattern subject.attributes.<attribute_name>. To see which attributes are available for a given user, navigate to that user’s profile page in C1. The DN of the new account is assembled by the connector as: CN=<commonName>,<organizationalUnit>,<domain>

Required fields

Organizational Unit and Domain are almost always static strings — they don’t vary per user. Enter them as quoted literals unless your organization places users in different OUs based on a profile attribute such as department.

Optional fields

Additional attributes

The Additional Attributes field accepts a map of raw LDAP attribute names to CEL expressions. Use this to set user attributes beyond what the named fields cover. Common examples:
The manager attribute must be the full Distinguished Name of the manager’s AD account — for example, CN=Jane Doe,OU=Users,DC=example,DC=com. If your source directory exposes the manager’s DN directly, you can map it here. Otherwise, omit it at creation time and set it later using the set_manager connector action.

Tips and gotchas

  • sAMAccountName has a 20-character limit and cannot contain these characters: / \ [ ] : ; | = , + * ? < > @. If your naming convention could produce values longer than 20 characters, truncate or use an alternative expression.
  • userPrincipalName must be unique across the entire AD forest. A duplicate UPN causes provisioning to fail with an LDAP constraint violation error.
  • Accounts are created disabled by default. Setting Enabled to false is intentional — C1 sets the account password in a separate LDAP operation after creation. If you set Enabled to true, the account will be enabled at creation but will still have a system-generated password sent to your vault.
  • The target OU must already exist. C1 will not create missing OUs. If the OU specified in Organizational Unit doesn’t exist when provisioning runs, the request will fail.
  • objectClass order matters in LDAP. For standard AD users, ["user"] is sufficient. If your schema requires additional classes, list them in structural hierarchy order (for example, ["top", "person", "organizationalPerson", "user"]).
  • Global Catalog scope disables provisioning. If the connector’s sync-scope is set to GlobalCatalog, account provisioning is not supported. Use the default scope instead.