Skip to main content
The integration enables AirMDR to:
  • Retrieve user identities, account status, and group memberships.
  • List directory users and groups for investigation.
  • Disable or administratively lock user accounts during incident response.
  • Restore account access using the Unlock skill.
  • An AD DS domain controller with LDAPS configured.
  • A dedicated service account with the required delegated permissions.
  • The domain controller hostname or IP address and directory Base DN.
  • An AirMDR Remote Agent that can reach the domain controller on TCP port 636.
  • Permission to create and manage integration connections in AirMDR.
Use an internal Remote Agent for private domain controllers. Do not expose a domain controller to the public internet to establish connectivity.
According to the SME requirements, the integration supports:
  • Microsoft Entra ID through LDAP.
  • StartTLS upgrade on port 389.
  • SASL authentication with Kerberos/GSSAPI or NTLM sign-and-seal.
    Integration compatibility does not establish whether a Windows Server version remains within Microsoft’s support lifecycle.
AirMDR authenticates using a dedicated AD service account and a simple LDAP bind.Use LDAPS to encrypt the connection before sending the bind credentials.

Accepted username formats

Do not enter a bare short username such as airmdr-service as the connection’s bind identity. Use the SME-supported UPN or full DN format.
Most Active Directory connection failures come down to this choice, so it is worth understanding rather than copying.

Port 389 — plaintext LDAP

The traditional LDAP port. A simple bind sends the service account password with no encryption and no integrity protection.On a current, patched domain controller this is normally refused. Microsoft hardening — delivered through Windows Update and governed by the policy Domain controller: LDAP server signing requirements — makes the domain controller reject unsigned simple binds:
Read that message carefully: the domain controller is rejecting the connection, not the credentials. A completely correct username and password still produces this error on port 389.
This is the usual explanation when a previously working Active Directory integration stops authenticating after a patch cycle. Nothing about the service account changed — the domain controller’s policy did.

Port 636 — LDAPS

TLS is negotiated the moment the connection opens, before any LDAP is exchanged. By the time the bind is sent the channel is already encrypted, which satisfies the signing requirement. This is the configuration to use.

Use SSL and Port must agree

These are two independent fields, and setting one without the other produces errors that look unrelated to the real cause:If Port is left blank it defaults to 636 when Use SSL is true, and 389 when it is not. Setting both explicitly is clearer.

Certificate validation

The domain controller’s TLS certificate is not validated — neither the issuing chain nor the hostname. The connection is encrypted, but it is not authenticated against a trusted certificate authority.
Domain controllers are usually issued certificates by an internal CA that AirMDR does not hold, and the Server field is frequently an IP address. A self-signed or internal-CA certificate on the domain controller therefore works without any import or trust configuration on the AirMDR side.

Why LDAPS is effectively mandatory

The other supported way to satisfy a signing requirement on port 389 is SASL sign-and-seal (Kerberos/GSSAPI or NTLM), which this integration does not implement — it performs simple binds only. StartTLS is likewise not implemented. If a domain controller cannot offer LDAPS on port 636, this integration cannot connect to it.
Delegate write permissions only on OUs containing accounts approved for response actions. Domain Admin membership is not required.

Values that silently fail

Each of these is accepted by the form and then misbehaves, usually with an error that points somewhere else:
Use SSL and Port are the pair that most often goes wrong. See LDAP ports: 389 vs 636 for every combination and the error each one produces.

Setup Steps

1

Identify the LDAP Server (Domain Controller)

  1. Obtain the domain controller hostname from your AD administrator.
  2. Alternatively, run the following command from a domain-connected Windows machine:
  3. Record the returned domain controller hostname.
    This command discovers a domain controller. It does not verify that LDAPS is listening on port 636.
2

Configure and test LDAPS

  1. Ask the AD administrator to configure an appropriate domain controller certificate for LDAPS.
  2. Ensure the certificate meets Microsoft’s LDAPS requirements, including the Server Authentication purpose.
  3. From the Remote Agent host, or a Windows machine with equivalent network access, run:
  4. Confirm that the result includes:
    This confirms TCP connectivity only. It does not verify the LDAP bind, TLS certificate identity, or delegated permissions.
3

Create a dedicated service account

A dedicated service account should be created for the integration.
  1. Navigate to open Server Manager → Tools → Active Directory Users and Computers.
  2. Click on “Create a new user in the current container”.
    Active Directory 2
  3. Enter the required Field Values.
    Active Directory1
  4. Click Next.
  5. Configure password settings:
    • Set a secure password
    • Uncheck User must change password at next logon
    • Enable Password never expires (recommended for service accounts)
    Active Directory2 1
  6. Click Finish.
    Active Directory3
    The service account will be used as the LDAP bind user.
4

Delegate the required permissions

  1. Identify the OUs containing users that AirMDR may investigate or modify.
  2. Have an AD administrator delegate read access for discovery skills.
  3. Delegate write access to userAccountControl for Disable and Lock.
  4. Delegate write access to userAccountControl and lockoutTime for Unlock.
  5. Validate the delegation using an approved test account.
    A successful LDAP bind does not confirm that the service account can modify user objects.
5

Retrieve the bind identity

Use the service account’s UPN, for example:
To retrieve its full DN:
  1. Open Active Directory Users and Computers.
  2. Enable View → Advanced Features.
  3. Open the service account’s Properties.
  4. Select Attribute Editor.
  5. Copy the value of distinguishedName.
    Example:
    The default Users container is CN=Users. Use OU=Users only if the account actually resides in an OU with that name.
6

Retrieve the Base DN

For the domain company.com, the domain Base DN is:
To confirm it using the Active Directory PowerShell module:
Use a narrower OU DN when appropriate:
7

Prepare the Remote Agent

  • Install and register an AirMDR Remote Agent using your approved deployment procedure.
  • Confirm the agent is online.
  • Confirm it can resolve the domain controller hostname.
  • Allow connectivity from the agent to the domain controller on TCP port 636.

Configure Active Directory in AirMDR Integrations Dashboard

  1. Navigate to AirMDR, provide the credentials and click Login.
  2. Navigate to the AirMDR Integrations Dashboard in the left navigation pane and select Integrations.
  3. Use the search option, enter the keyword “Active Directory”, select the Connections tab, and click + Add New Connection.
  4. Enter an unique name to the Instance (e.g., your org name-Active Directory) and brief Description to easily identify the user connection by AirMDR.
  5. Use the following values in the AirMDR integration configuration screen:
  6. Click Save.
  7. Reopen the settings and confirm the Remote Agent is still selected.
Re-check the Remote Agent after every edit. Saving a change to the connection can clear the attached agent. The agent still reports as online, because agent health is tracked independently of whether any connection references it — so nothing in the UI indicates the link was lost. The connection then falls back to a direct connection attempt and fails after roughly 10 seconds with no remote agent is linked to this connection.

Skills Provided by this Integration

The Active Directory integration provides skills to retrieve user and group information, contain compromised accounts, and unlock user accounts. Every skill also accepts an optional Instance input naming which Active Directory connection to use; leave it blank when only one is configured.
Use the group’s sAMAccountName for group_name. Direct membership does not represent recursively expanded nested membership.
Lock is an administrative disable action. It does not create a native AD lockout by writing a non-zero lockoutTime.
Important: Unlock can re-enable an account previously disabled for administrative or security reasons. Confirm authorization before execution.
To view the details of Input Parameters and Output for the respective skills

Validate Connectivity

  1. Select Verify Authentication.
  2. Confirm that the bind succeeds.
  3. Run Fetch Active Directory (Onprem) User against a known test user.
  4. Verify the returned identity and account attributes.
  5. Test response skills only against an approved test account.
  6. Fetch the user again to confirm the resulting account state.
Verify Authentication performs a bind only. It does not test the Base DN search scope or response permissions.
The following JSON illustrates the configuration values. It is not a documented import or API payload:

Additional Information

The message shown when Verify Authentication fails identifies the cause precisely. Match it here rather than assuming a credential problem.
Use the response time as a signal. A real answer from a domain controller arrives in well under a second. A verification that takes about 10 seconds never reached your domain controller at all — that is the no-Remote-Agent timeout, not a credential failure.
If a fetch skill returns User 'x' not found in Active Directory, the lookup matched nothing: the skills match sAMAccountName exactly (case-insensitive), so check the short logon name and confirm the object sits within the Base DN or the supplied search_base.
Monitor skill executions and Active Directory logs to identify connection failures, investigate errors, and track account changes.Where to Review Logs

Account Events to Monitor

Enable Audit User Account Management on domain controllers and monitor these Windows events.
The Lock Account skill does not write lockoutTime and therefore does not raise 4740. Lock and Disable both set ACCOUNTDISABLE, so they surface as 4725; Unlock re-enables the account and surfaces as 4722, plus 4767 only when a genuine domain-controller lockout was also cleared. Validate the exact events in your own environment, and use the skill execution record together with the resulting account attributes to confirm the outcome.
  • Alert on repeated authentication failures, connection timeouts, and insufficient-access errors.
  • Investigate unexpected disable, lock, or unlock actions, especially those affecting privileged accounts.
  • Correlate account changes with the AirMDR case or playbook, execution time, target account, and integration account.
  • After a response action, use Fetch Active Directory (Onprem) User to verify the resulting account status.
  • Retain logs according to your organization’s security and audit requirements.
Logging GuidelinesUse INFO for routine execution summaries, WARNING for recoverable issues, and ERROR for failed operations, where configurable. Enable DEBUG temporarily during troubleshooting, then restore the normal level.Avoid logging passwords, connection secrets, or complete user attribute responses containing personal information.


✅ Do’s
  • Use a dedicated integration account. Keep integration activity separate from personal administrator activity.
  • Apply least privilege. Grant directory read access for discovery skills and delegate only the permissions required for disable, lock, and unlock actions.
  • Scope access to approved OUs. Restrict delegated permissions to the intended objects. Use search_base to narrow supported queries; query filtering does not enforce authorization.
  • Encrypt directory connections. Use LDAPS on TCP port 636. StartTLS on port 389 is not supported by this integration, and AirMDR does not validate the domain controller’s certificate or hostname — treat the Remote Agent’s network path to the domain controller as part of your trust boundary. Microsoft Learn
  • Validate LDAP security compatibility. Test the integration against your domain’s LDAP signing and channel-binding requirements before enforcing policy changes. Microsoft Learn
  • Protect and rotate credentials. Store credentials in the integration’s credential configuration and update the connection after rotation.
  • Restrict response skills. Limit who can execute disable, lock, and unlock actions, and require approval where your response process demands it.
  • Review unlock requests. Confirm that the underlying security issue has been resolved before restoring access.
  • Audit access periodically. Review delegated permissions, integration account usage, and response activity.
❌ Don’t
  • Do not use Domain Admin or Enterprise Admin credentials for routine integration operations.
  • Do not grant write access across the entire directory when only specific OUs require response actions.
  • Do not send passwords through unencrypted LDAP simple binds or disable certificate validation to resolve connection errors.
  • Do not include credentials in screenshots, case notes, exported logs, or support tickets.
  • Do not automatically disable or lock privileged, service, or emergency access accounts without an approved response procedure.
  • Do not repeatedly retry authentication with invalid credentials; investigate the failure first.
  • Do not assume that unlocking an account re-enables a disabled account. Verify both account states separately.
  • 📧 Contact AirMDR Support through your designated support channel.
  • 🔁 Rotate credentials regularly in Microsoft Active Directory (AD).
  • 🔄 If a domain controller changes:
    • Update the LDAP Server hostname in the integration configuration.
  • 🔄 Reconnect with AirMDR immediately when secrets are changed.
Data Flow & SecurityData RetrievedThe integration typically queries:
  • User objects
  • Group memberships
  • Email addresses
  • Account state — userAccountControl, lockoutTime, badPwdCount, pwdLastSet, accountExpires
  • Logon timestamps — lastLogon, lastLogonTimestamp, whenCreated, whenChanged
  • Organizational unit placement, as implied by each object’s distinguishedName
objectSid and objectGUID are not requested or returned by any skill. Password material is never read.
EncryptionNetwork PortsConnectivity is outbound from the Remote Agent to the domain controller. No inbound connection to your network is required.