What Is AD and Azure Compliance?
AD and Azure Compliance becomes useful only when framework requirements are translated into production evidence. In estates built on Active Directory and Microsoft Entra ID, that means proving how password policy, privileged access, MFA, audit logging, lifecycle governance, and third-party access controls are actually enforced.
The hard part is translation. Framework text is intentionally high level, while the technical evidence an auditor or security lead actually needs is specific: which password policy is active, which admin accounts still hold standing privilege, which sign-in protections are enforced, which logs are retained, and which guest or cross-tenant paths remain open.
This article maps common compliance requirements to technical identity controls that can be checked in AD and Azure without turning the exercise into a spreadsheet-only audit.
ℹ️ Note: Compliance is not the same thing as security. A compliant tenant can still be compromised. The value of the mapping is that it forces teams to review a baseline of controls that materially changes attacker effort.
How It Works
Identity-focused compliance reviews usually examine five areas:
- Authentication policy such as password length, complexity, MFA, and legacy protocol exposure
- Privileged access control such as admin role scope, just-in-time access, and break-glass governance
- Audit and monitoring such as Advanced Audit Policy on Domain Controllers, Entra audit logs, and review cadence
- Access lifecycle such as provisioning, stale account cleanup, and deprovisioning
- External and application access such as guest governance, app consent, and cross-tenant trust
Each area can be translated into a set of technical checks and supporting evidence.
AD and Azure Compliance Framework Mapping
NIS2 Directive
NIS2 requires essential and important entities to implement appropriate technical and organizational measures. For identity, that usually maps to the following controls:
| NIS2 Requirement | AD / Azure Control | EtcSec Check |
|---|---|---|
| Multi-factor authentication | MFA for privileged accounts and sensitive cloud access | CA_NO_MFA_REQUIREMENT, PA_GLOBAL_ADMIN_NOT_MFA |
| Access control policies | Least privilege, privileged access review, role governance | EXCESSIVE_PRIVILEGED_ACCOUNTS, PA_PIM_NOT_ENABLED |
| Password hygiene | Strong password policy and removal of non-expiring exceptions | PASSWORD_POLICY_WEAK, PASSWORD_NEVER_EXPIRES |
| Incident detection | Audit logging, alert coverage, and evidence retention | Monitoring category checks |
| Third-party access control | Guest governance and cross-tenant restrictions | GUEST_INVITATION_UNRESTRICTED, B2B_CROSS_TENANT_OPEN |
CIS Controls v8
The CIS Controls turn identity hardening into prioritized defensive actions:
| CIS Control | Requirement | Technical Interpretation |
|---|---|---|
| CIS 5 | Account Management | Disable stale accounts, review role assignments, enforce lifecycle cleanup |
| CIS 6 | Access Control Management | Least privilege, dedicated admin accounts, privileged workstation strategy |
| CIS 12 | Network Infrastructure Management | Restrict weak authentication paths such as NTLMv1 and outdated Kerberos crypto where possible |
| CIS 17 | Incident Response Management | Preserve audit coverage and alerting for identity abuse |
ISO 27001:2022
The ISO 27001 Annex A controls most often mapped to directory security include:
| Control | Description | Example Identity Evidence |
|---|---|---|
| A.5.15 | Access control | Role design, group governance, scope review |
| A.5.16 | Identity management | Joiner / mover / leaver process and stale account cleanup |
| A.5.17 | Authentication information | Password policy, MFA configuration, phishable method review |
| A.5.18 | Access rights | Periodic privileged access review and exception handling |
| A.8.2 | Privileged access rights | PIM, dedicated admin accounts, break-glass controls |
| A.8.5 | Secure authentication | Strong authentication methods and reduction of legacy protocols |
ANSSI-Style Directory Hardening Expectations
For organizations aligning with ANSSI-style guidance, the practical identity themes are consistent:
- reduce legacy authentication and legacy cryptography where application compatibility allows it
- isolate or harden privileged accounts rather than letting daily-use identities keep standing privilege
- document exceptions for legacy systems instead of quietly carrying them forward indefinitely
- validate that monitoring, privileged access, and password controls are enforced in production rather than only declared in policy
The Compliance Gap Assessment
Step 1 - Baseline Your Current State
# Password policy baseline
Get-ADDefaultDomainPasswordPolicy |
Select-Object MinPasswordLength, ComplexityEnabled, MaxPasswordAge
# Entra Conditional Access baseline
Connect-MgGraph -Scopes "Policy.Read.All"
Get-MgIdentityConditionalAccessPolicy |
Where-Object {$_.State -eq "enabled"} |
Select-Object DisplayName, State
# Audit policy baseline on a domain controller
auditpol /get /category:"Account Logon","DS Access","Account Management" |
Select-String "Success|Failure"
Step 2 - Map Gaps to Named Controls
$checks = @{
"Min password length >= 12" = (Get-ADDefaultDomainPasswordPolicy).MinPasswordLength -ge 12
"Password complexity enabled" = (Get-ADDefaultDomainPasswordPolicy).ComplexityEnabled
"Max password age <= 90 days" = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge.Days -le 90
"DS Changes audit enabled" = (auditpol /get /subcategory:"Directory Service Changes") -match "Success"
"Kerberos audit enabled" = (auditpol /get /subcategory:"Kerberos Authentication Service") -match "Success"
}
$checks.GetEnumerator() | ForEach-Object {
[PSCustomObject]@{
Control = $_.Key
Status = if ($_.Value) { "PASS" } else { "FAIL" }
}
} | Format-Table -AutoSize
Step 3 - Prioritize by Exposure, Not by Checkbox Count
- Critical: No MFA for privileged identities, no control over high-risk role assignments, unconstrained delegation, DCSync-capable principals
- High: Weak password policy, missing audit coverage, too many standing admins, weak guest governance
- Medium: Stale accounts, missing LAPS, incomplete role review process, missing fine-grained controls where needed
- Low: Documentation gaps, naming inconsistency, non-material presentation issues
Detection
Compliance evidence is weak if it exists only at audit time. The controls that matter should be continuously reviewable.
Continuous Compliance Checks
# Privileged group drift in the last 7 days
$cutoff = (Get-Date).AddDays(-7)
Get-ADGroup "Domain Admins" -Properties Members, whenChanged |
Where-Object {$_.whenChanged -gt $cutoff} |
Select-Object Name, whenChanged
# Enabled accounts inactive for 90+ days
Get-ADUser -Filter {Enabled -eq $true -and LastLogonDate -lt (Get-Date).AddDays(-90)} |
Select-Object SamAccountName, LastLogonDate
Remediation
💡 Quick Win: Pick one control family at a time and gather production evidence for it. Password policy, privileged access, and audit coverage usually produce the fastest compliance uplift.
Priority Remediation Sequence
- Enforce MFA for privileged accounts and sensitive cloud access
- Reduce standing privilege by reviewing role assignments and using just-in-time elevation where available
- Enable audit coverage on Domain Controllers and in Entra so control failures are reviewable
- Fix password hygiene including length, complexity, age, and exception sprawl
- Clean stale and orphaned identities in AD and Azure
- Review guest and cross-tenant access so third-party access is governed
- Document justified exceptions with owner, reason, and review date
How EtcSec Detects This
EtcSec maps technical findings to the control families most often referenced in compliance work.
Each relevant finding helps answer three practical questions:
- which identity control is missing or weak
- which accounts, roles, or objects are affected
- what evidence the security team should collect to prove the gap is closed
The Compliance category is useful when you want to turn raw technical findings into an actionable remediation backlog rather than a generic framework spreadsheet.
ℹ️ Note: The value is in the mapping plus the evidence. A framework label is not a substitute for proving the tenant or domain was actually corrected.
AD and Azure Compliance Evidence Package
A strong compliance review usually fails for two reasons: the control was never implemented in production, or the team cannot prove that it was. Build an evidence package that survives both an internal challenge and an external audit:
- current password-policy output and any approved fine-grained exceptions
- privileged role and privileged group membership exports, including permanent assignments
- Conditional Access or Security Defaults state for the tenant in scope
- Domain Controller audit-policy output for the subcategories you rely on for detection
- guest, cross-tenant, and application access settings for the populations covered by the review
- owner, exception reason, and review date for anything that still cannot meet the target state
That evidence package is what turns AD and Azure Compliance from a presentation exercise into a repeatable control review.
Common Gaps That Reappear Every Quarter
Even mature teams tend to reopen the same identity compliance gaps:
- legacy application exceptions that quietly preserve weak authentication
- stale privileged identities that were never removed after a project or staff change
- Conditional Access exclusions added during an incident and never reviewed
- guest access paths that remain broader than the written policy allows
- monitoring controls that were documented once but are no longer validated on current Domain Controllers or current tenant scope
If those gaps are not tracked as operational debt with ownership, the framework mapping will look healthy while the attack surface remains largely unchanged.
Related Reading
For the technical side of the same control families, review Azure Privileged Access: Too Many Global Admins, Azure Identity Protection: Blocking Leaked Credentials, How to Audit Active Directory Security: Practical Checklist for Internal Teams, and Azure App Registrations: Over-Privileged Tenant Apps. Those articles help turn framework language into concrete hardening and validation steps.
Continue Reading
Kerberos RC4 Fallback in Active Directory: How to Detect It, Why It Still Happens, and How to Remove It
CVE-2026-31431 (Copy Fail): What the Linux Kernel Vulnerability Affects and How to Mitigate It


