Zero Trust fails in predictable ways when the organization can’t answer basic questions like: “What assets exist, who touches them, and what paths connect them?” In enterprises that still run Active Directory Domain Services (AD DS), that question is trickier than it looks—because AD is not just an identity store. It is a dependency map for your environment: devices, service accounts, group nesting, delegated administration, policy scope (OUs/GPOs), trusts, and authentication flows.
NIST’s Zero Trust Architecture frames ZT as moving security from perimeter assumptions to decisions based on users, assets, and resources—and explicitly calls out discovery and cataloging as foundational work before you “do Zero Trust.” :contentReference[oaicite:0]{index=0}
What “asset mapping” really means in a Zero Trust program
Asset mapping is not a spreadsheet of servers. In a Zero Trust context, asset mapping is the process of building a living, queryable model of:
- Assets: users, service identities, devices, servers, apps, data stores, network segments, security controls.
- Relationships: who can authenticate where, what depends on what, which policies scope which assets.
- Exposure: what is reachable, what is overly trusted, and what creates blast radius.
- Criticality: what constitutes “crown jewels,” and what would be catastrophic if modified or accessed.
Think of the output as an asset graph, not an inventory. Your Zero Trust controls (conditional access, device compliance, PAWs, segmentation, privileged access workflows) become effective only when they can be targeted precisely and validated against real dependencies.
Why Active Directory is central to the asset graph (even if you’re “cloud-first”)
Even with Microsoft Entra ID (Azure AD) and SaaS everywhere, AD often remains the “source of truth” for:
- Join state (domain-joined devices), on-prem authentication paths (Kerberos/NTLM), and legacy app auth.
- Authorization primitives: groups (and nesting), ACLs on directory objects, and delegated admin.
- Policy scope: OU design, GPO links, security filtering, and WMI filters define “who gets what.”
- Service identity sprawl: SPNs, service accounts, gMSAs, scheduled tasks, IIS app pools, middleware.
- Trust boundaries: forests/domains, external trusts, SID filtering posture, and cross-forest exposure.
Zero Trust identity guidance emphasizes explicit verification of identities and devices with strong auth and posture checks. :contentReference[oaicite:1]{index=1} To apply those controls in the real world, you need to know which identities and devices are actually in play, and which resources they touch.
A practical model: the “Zero Trust asset graph” for AD environments
Treat your environment as a graph where nodes are entities and edges are relationships:
- Identity nodes: users, admins, service accounts, gMSAs, break-glass accounts.
- Group/role nodes: AD groups, local admin groups (modeled), app roles, Entra roles.
- Device nodes: workstations, servers, DCs, admin workstations, jump hosts, appliances (if represented).
- Resource nodes: file shares, databases, apps, hypervisors, management planes, PKI, DNS/DHCP, backup systems.
- Control nodes: GPOs, Conditional Access policies, EDR enrollment states, segmentation rules.
Edges answer the questions Zero Trust cares about:
- Can authenticate to (Kerberos, NTLM, LDAP binds, RDP/WinRM access paths)
- Is member of (group nesting, token expansion, dynamic inclusion)
- Has effective rights on (ACLs, delegated rights, local admin, “Modify GPO” paths)
- Is scoped by (GPO links to OUs, security filtering, device/user targeting)
- Depends on (service-to-service dependencies, certificates, DNS, time, replication)
Once you can query the graph, Zero Trust becomes operational: you can segment safely, tighten authentication without breaking apps, and prioritize remediation by blast radius rather than by CVE count.
Asset mapping strategy 1: start with authoritative sources, then enrich
The fastest way to build a trustworthy asset map is to start from systems that are already authoritative:
Authoritative core
- AD DS: identities, computers, groups, OUs, GPO links, trusts, delegation, SPNs.
- DNS & DHCP: hostnames/IP history, stale naming, shadow systems, subnet reality vs. documentation.
- Certificate services (if present): templates, enrollment agents, EKUs, issuance to machines/users.
Enrichment sources
- Endpoint management: ConfigMgr/Intune, MDM, patch tools (real device posture, ownership, last seen).
- EDR/XDR: observed processes, lateral movement indicators, device identity consistency.
- Network telemetry: firewall logs, proxy logs, NetFlow, VPN/RADIUS accounting.
- Cloud identity signals: sign-in logs, device compliance, conditional access outcomes.
Microsoft Defender for Identity is an example of how modern tools build entity profiles from AD plus observed traffic and Windows events, and can even ingest VPN/RADIUS accounting—useful signals for mapping “who accessed what from where.” :contentReference[oaicite:2]{index=2}
Asset mapping strategy 2: map AD “tiers” first to contain blast radius
If you do one thing early, do this: classify assets into administrative tiers and map the admin paths between them. In AD security practice, Tier 0 (identity systems and control plane) is special because compromise there is typically domain/forest compromise.
Practical Tier 0 usually includes: domain controllers, PKI (AD CS), identity sync (Entra Connect), federation (AD FS if used), DNS where it impacts auth, privileged admin workstations, and identity/security tooling that can modify directory state.
Build your first asset graph slice around Tier 0, then expand outward. This is how you prevent “Zero Trust” from becoming a blanket policy change that breaks production.
If you already have related material on your site, this is a good place to link readers to your tiering and containment work, for example: AD tiering model and protecting Tier 0 assets.
Asset mapping strategy 3: make service identities first-class assets
Service identities are where asset mapping gets real. They are often:
- Over-privileged (“it needed admin once in 2017 and nobody touched it again”)
- Shared across multiple hosts (breaking attribution and containment)
- Configured with risky delegation or Kerberos settings
- Hard-coded into apps and scripts (making remediation fragile)
In the asset graph, each service account should connect to:
- Its owning application/service and owner team
- Hosts where it runs (observed via logons, scheduled tasks, services, app pools)
- SPNs registered to it (Kerberos-facing surface)
- Groups/rights it inherits (including nested groups)
- Data/resources it can access (shares, DBs, APIs)
This is where you can safely introduce gMSA adoption, service account rotation workflows, and least-privilege redesign— because you can see the dependency web before you cut it.
Asset mapping strategy 4: inventory “policy scope” to avoid blind spots
In AD environments, policies are not global. They are scoped by OU structure, security filtering, and sometimes WMI filters. If you can’t answer “which assets are impacted by this control?”, you’ll either deploy controls too weakly or cause outages.
Map these as assets too
- OUs: containment boundaries (who can create/move objects, who can link GPOs)
- GPOs: settings, links, security filtering, delegation on the GPO object
- Authentication policy: Kerberos policy, NTLM restrictions, legacy protocols
- Local admin pathways: Restricted Groups, Group Policy Preferences (especially passwords), LAPS/Windows LAPS
A practical output is a “policy-to-asset” index: for any GPO/control, list the devices/users it can affect. This becomes your change-safety net as you tighten authentication, introduce device compliance gates, or reduce admin rights.
Asset mapping strategy 5: build identity-to-asset attribution from observed activity
Directory objects show what should be true. Logs show what is true. For Zero Trust, observed access is gold: it reveals hidden dependencies and “unknown critical” systems.
Start with these high-signal observations:
- Interactive admin logons (RDP/console): who administers what, and from where.
- Kerberos service tickets: which clients request tickets to which SPNs (real app usage mapping).
- LDAP bind patterns: apps still binding with legacy auth, anonymous binds, insecure binds (if any).
- VPN/RADIUS accounting: remote access sources and identity context. :contentReference[oaicite:3]{index=3}
The goal is to attach “last observed” edges to your graph (Identity → Device → Resource), so you can prioritize based on reality, not on stale CMDB entries.
Asset mapping strategy 6: unify identifiers (or your map will lie)
“John.Smith” is not an identifier. In modern environments, the same entity can appear under multiple names across systems. Your mapping strategy needs stable keys.
Recommended keys to anchor the graph
- Users: objectGUID, SID, UPN (and immutable cloud anchor if hybrid)
- Computers: objectGUID, SID, and device IDs from endpoint tools
- Groups: objectGUID, SID (and clearly labeled purpose/owner metadata)
- Services: service account objectGUID + SPN list + owning application ID
Add normalization rules early: name casing, domain suffix changes, mergers (UPN renames), and multi-forest collisions. It’s boring work, but it’s the difference between “Zero Trust rollout” and “six months of exceptions.”
Concrete AD discovery: an opinionated baseline checklist
Here’s a baseline “first pass” that is usually safe, fast, and high value:
- Forest topology: domains, trusts, sites/subnets, DC inventory (and where DCs live).
- Privileged groups & delegation: who can modify what (not just “Domain Admins”).
- Computers: active vs stale, server vs workstation, OS distribution, where unmanaged devices exist.
- Service identities: SPNs, gMSAs, high-privilege service accounts, delegation settings.
- Policy scope: OU map, GPO links, inheritance blocks, security filtering.
- Attack paths: group nesting chains, ACL-based escalation, local admin distribution.
Tools like PingCastle are commonly used to rapidly assess AD security posture and produce reports that help prioritize fixes, which can be a useful “seed” for your asset graph. :contentReference[oaicite:4]{index=4}
PowerShell starters: extracting the raw ingredients for the asset graph
These examples aren’t a full solution—they’re building blocks you can combine into your mapping pipeline.
1) Computer inventory with staleness signals
Get-ADComputer -Filter * -Properties OperatingSystem,LastLogonTimestamp,Enabled,DNSHostName |
Select-Object Name,DNSHostName,OperatingSystem,Enabled,
@{n='LastLogon';e={[DateTime]::FromFileTime($_.LastLogonTimestamp)}} |
Sort-Object OperatingSystem,Name
2) Service account surface: SPNs and delegation-related flags
# Accounts with SPNs (Kerberos service surface)
Get-ADUser -LDAPFilter "(servicePrincipalName=*)" -Properties servicePrincipalName,Enabled |
Select-Object SamAccountName,Enabled,servicePrincipalName
# Computers trusted for delegation (high-risk if unconstrained)
Get-ADComputer -LDAPFilter "(userAccountControl:1.2.840.113556.1.4.803:=524288)" -Properties userAccountControl |
Select-Object Name,OperatingSystem
3) Group nesting (a frequent “hidden access” source)
# Expand nested membership for a given group (be careful in huge environments)
Get-ADGroupMember -Identity "Your-Group-Here" -Recursive |
Select-Object ObjectClass,Name,SamAccountName
4) OU and GPO scope mapping (conceptual start)
# OUs (structure and containment)
Get-ADOrganizationalUnit -Filter * -Properties DistinguishedName |
Select-Object Name,DistinguishedName
# Linked GPOs per OU requires GroupPolicy module and parsing GPlink
# (Often implemented as a separate script that expands gPLink attributes.)
A strong next step is to store this data in a graph-friendly shape (even a simple set of CSVs), then continuously enrich it with observed logon and ticketing activity.
How to prioritize: “crown jewels” plus “blast radius” beats generic risk lists
Most organizations can’t fix everything at once. Asset mapping helps you pick the work that changes outcomes. Use two scores:
- Crown jewel score: business impact if confidentiality/integrity/availability is lost. (DCs, PKI, identity sync, backups, finance systems, source control, hypervisors, security tooling.)
- Blast radius score: how far compromise spreads from this node. (Is it Tier 0-adjacent? Does it grant admin to many systems? Is it a shared service account?)
The “best first wins” are usually high blast radius reductions: removing accidental Tier 0 exposure, fixing dangerous delegation, reducing local admin sprawl, and breaking shared service identities into least-privilege units.
Common pitfalls that quietly break Zero Trust rollouts in AD environments
- Stale objects treated as real: old computer accounts inflate scope and hide unmanaged devices. Solve with “last seen” signals from endpoint tools and logs, not only AD timestamps.
- Group sprawl and unclear ownership: without owner metadata and purpose tags, authorization mapping becomes political.
- Service account ambiguity: “this account runs something somewhere” is not acceptable for ZT. You need host attribution and observed usage.
- Policy scope misunderstandings: teams deploy controls assuming global impact, but OU/GPO scope is partial. Your map must reflect scoping rules.
- Trusts ignored: cross-forest/domain relationships can reintroduce implicit trust through the side door.
A good rule: if your asset map can’t explain why access exists (and who owns it), you’ll end up with a brittle exception-based architecture—Zero Trust in name only.
What “done” looks like: outputs you can operationalize
Aim for outputs that change daily operations:
- A tiered asset inventory (Tier 0/1/2) that is accurate and continuously updated.
- An access path map showing effective admin paths (group nesting + ACLs + local admin distribution).
- A policy-to-asset index so every control has a known scope and owner.
- An “unknown critical” detector: systems that suddenly appear in auth/traffic patterns.
- Dashboards for drift: new privileged accounts, new SPNs, changes to high-impact groups, new trusts.
Once you have that, Zero Trust controls become targeted engineering changes, not sweeping mandates. You can verify explicitly, enforce least privilege, and assume breach—because you can see what’s actually connected.
