Purpose
Purpose
- 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.
Pre-requisites
Pre-requisites
- 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.
Supported Versions
Supported Versions
Unsupported configurations
Unsupported configurations
- 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.
Authentication Method
Authentication Method
Accepted username formats
airmdr-service as the connection’s bind identity. Use the SME-supported UPN or full DN format.LDAP ports: 389 vs 636
LDAP ports: 389 vs 636
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 policyDomain controller: LDAP server signing requirements — makes the domain controller reject unsigned simple binds:389.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:636 when Use SSL is true, and 389 when it is not. Setting both explicitly is clearer.Certificate validation
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 port389 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.Required permissions
Required permissions
Credential reference table
Credential reference table
Values that silently fail
Each of these is accepted by the form and then misbehaves, usually with an error that points somewhere else:Setup Steps
Identify the LDAP Server (Domain Controller)
- Obtain the domain controller hostname from your AD administrator.
-
Alternatively, run the following command from a domain-connected Windows machine:
-
Record the returned domain controller hostname.
This command discovers a domain controller. It does not verify that LDAPS is listening on port
636.
Configure and test LDAPS
- Ask the AD administrator to configure an appropriate domain controller certificate for LDAPS.
- Ensure the certificate meets Microsoft’s LDAPS requirements, including the Server Authentication purpose.
-
From the Remote Agent host, or a Windows machine with equivalent network access, run:
-
Confirm that the result includes:
This confirms TCP connectivity only. It does not verify the LDAP bind, TLS certificate identity, or delegated permissions.
Create a dedicated service account
- Navigate to open Server Manager → Tools → Active Directory Users and Computers.
- Click on “Create a new user in the current container”.

- Enter the required Field Values.

- Click Next.
- Configure password settings:
- Set a secure password
- Uncheck User must change password at next logon
- Enable Password never expires (recommended for service accounts)

- Click Finish.
The service account will be used as the LDAP bind user.
Delegate the required permissions
- Identify the OUs containing users that AirMDR may investigate or modify.
- Have an AD administrator delegate read access for discovery skills.
- Delegate write access to
userAccountControlfor Disable and Lock. - Delegate write access to
userAccountControlandlockoutTimefor Unlock. - Validate the delegation using an approved test account.
A successful LDAP bind does not confirm that the service account can modify user objects.
Retrieve the bind identity
- Open Active Directory Users and Computers.
- Enable View → Advanced Features.
- Open the service account’s Properties.
- Select Attribute Editor.
- Copy the value of
distinguishedName.
Example:The default Users container isCN=Users. UseOU=Usersonly if the account actually resides in an OU with that name.
Retrieve the Base DN
company.com, the domain Base DN is: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
- Navigate to AirMDR, provide the credentials and click Login.
- Navigate to the AirMDR Integrations Dashboard in the left navigation pane and select Integrations.
- Use the search option, enter the keyword “Active Directory”, select the Connections tab, and click + Add New Connection.
- 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. - Use the following values in the AirMDR integration configuration screen:
Expand Advanced Configuration if required. (Optional)
- Click Save.
- Reopen the settings and confirm the Remote Agent is still selected.
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.User Discovery & Investigation
User Discovery & Investigation
Group Discovery & Membership Investigation
Group Discovery & Membership Investigation
sAMAccountName for group_name. Direct membership does not represent recursively expanded nested membership.Account Containment & Response
Account Containment & Response
Lock is an administrative disable action. It does not create a native AD lockout by writing a non-zero lockoutTime.
Account Recovery
Account Recovery
Important: Unlock can re-enable an account previously disabled for administrative or security reasons. Confirm authorization before execution.
Validate Connectivity
Verify authentication and skills
Verify authentication and skills
- Select Verify Authentication.
- Confirm that the bind succeeds.
- Run Fetch Active Directory (Onprem) User against a known test user.
- Verify the returned identity and account attributes.
- Test response skills only against an approved test account.
- Fetch the user again to confirm the resulting account state.
Configuration reference
Configuration reference
Additional Information
🧰 Error Handling
🧰 Error Handling
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.🔄 Monitoring & Logs
🔄 Monitoring & Logs
Account Events to Monitor
Enable Audit User Account Management on domain controllers and monitor these Windows events.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.Recommended Monitoring
- 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.
🛑 Security & Access Best Practices
🛑 Security & Access Best Practices
- 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_baseto narrow supported queries; query filtering does not enforce authorization. - Encrypt directory connections. Use LDAPS on TCP port 636. StartTLS on port
389is 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.
- 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.
👉 Support & Maintenance
👉 Support & Maintenance
- 📧 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 & Security
🛑 Data Flow & Security
- 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.
