By NHI Mgmt Group Editorial TeamPublished 2026-03-20Domain: Governance & RiskSource: WorkOS

TL;DR: Azure Entra ID does not expand nested group membership over SCIM, so users inside child groups can disappear from app provisioning and login paths unless teams flatten membership, assign child groups directly, or reconcile through Microsoft Graph, according to WorkOS. The real issue is that authorization models often assume hierarchy will survive sync, but SCIM only carries what Entra explicitly sends.


At a glance

What this is: Azure Entra nested groups do not expand through SCIM Directory Sync, creating missing-user and silent authorization failures when apps expect inherited membership.

Why it matters: IAM teams need to treat directory hierarchy, provisioning transport, and application authorization as separate control points because nested groups behave differently across identity systems and can break access for NHI, autonomous, and human workflows.

👉 Read WorkOS's analysis of Azure Entra nested groups and Directory Sync limitations


Context

Azure Entra nested groups create an identity governance gap when teams assume inherited membership will survive provisioning into downstream applications. In SCIM-based directory sync, only the literal group membership sent by Entra is available to the target app, so nested membership disappears at the boundary.

That matters because many IAM and IGA programmes rely on group hierarchy as a simple abstraction for role assignment, entitlement review, and onboarding. When the sync mechanism does not preserve that hierarchy, authorization and recertification logic can fail silently even though the source directory looks correct.


Key questions

Q: What breaks when Azure Entra nested groups are synced through SCIM?

A: Inherited memberships do not survive the SCIM boundary, so users inside child groups may not be provisioned into the target application. The app receives the direct group membership Entra sends, not a recursive expansion of the directory tree. That can leave users visible in the source directory but absent from access decisions downstream.

Q: Why do nested groups complicate enterprise access governance?

A: They complicate governance because the source directory and the target application may not share the same membership model. Entra can preserve hierarchy internally, but SCIM provisioning often collapses that hierarchy into a flat payload. Recertification, role assignment, and onboarding all become unreliable if teams assume inherited membership will be transported intact.

Q: How can security teams tell whether missing access is caused by nested groups or something else?

A: Start by checking whether the group assigned to the Enterprise App contains child groups, then inspect Entra provisioning logs for the skipped users. If the user exists in the directory but arrives with an empty groups array, the issue is likely nested membership loss rather than a generic sync outage or login failure.

Q: What is the best way to handle nested groups in Directory Sync?

A: Use the simplest model that matches your operating reality. Flatten group membership when possible, assign child groups directly when hierarchy is limited, and use Microsoft Graph reconciliation only when you can support a second identity pipeline. The right choice depends on how much hierarchy the application truly needs.


Technical breakdown

Why SCIM provisioning does not expand nested groups

SCIM is a provisioning protocol, not a directory traversal engine. In Azure Entra, the application receives the exact membership set exposed to the Enterprise App assignment, which means a parent group containing child groups is not flattened into individual users. The receiving system sees a group reference, not recursive membership. That is why direct users may sync cleanly while inherited users vanish. The limitation is not a bug in the downstream app; it is a boundary between Entra's internal group semantics and what SCIM is designed to transport.

Practical implication: validate group assignment depth before relying on SCIM for entitlement-driven access.

Why application authorization breaks when groups arrive flattened

Many SaaS applications translate synced groups into roles, orgs, or policy buckets. If the source directory delivers only parent references or a partial flat list, downstream authorization logic can resolve to empty or incomplete membership sets. That creates silent failure, where the user exists in the directory but misses the role binding needed for access. The problem is especially sharp when teams use nested groups to represent regional, departmental, or function-based inheritance and expect the app to mirror that logic automatically.

Practical implication: test whether your app maps direct membership only or can safely union multiple flat groups.

Microsoft Graph as a reconciliation layer

Microsoft Graph can return transitive membership, which lets teams reconstruct nested group relationships outside SCIM. That makes Graph a separate reconciliation path, not a replacement for provisioning. Organisations that use it must manage authentication, scheduling, latency, and conflict handling between the SCIM feed and the recursive Graph result. The technical tradeoff is clear: SCIM gives bounded provisioning flow, while Graph gives richer membership visibility at the cost of additional operational complexity and timing drift.

Practical implication: use Graph only when you can operate a second identity data pipeline with explicit reconciliation logic.


  • Cisco DevHub NHI breach — IntelBroker exploited exposed Cisco credentials, API tokens and keys in DevHub.
  • DeepSeek breach — DeepSeek breach exposed 1M+ log lines and sensitive secret keys.

Read our 52 NHI Breaches Analysis report for a comprehensive view of breaches impacting Non-Human Identities including AI Agents.


NHI Mgmt Group analysis

Nested group expansion is a governance assumption, not just a connector feature. Entra-to-SCIM provisioning works only when teams assume group membership is already flat enough to transport. That assumption fails when access is inherited through child groups because the sync boundary strips the hierarchy away. The implication is that identity governance must distinguish between source-directory structure and provisioned entitlement state before it relies on either for access decisions.

Group inheritance becomes a hidden control gap when it is used as an authorisation model. Many teams treat nested groups as a clean proxy for least privilege and role inheritance, but SCIM exposes that proxy as lossy. When the app only receives direct memberships, recertification, role mapping, and onboarding checks can all report the wrong state. Practitioners should read this as a failure of entitlement transport, not a simple syncing issue.

Flat provisioning and recursive directory semantics are not interchangeable. Azure Entra can represent complex hierarchy internally, but downstream identity governance often operates on the simplified object that SCIM delivers. That mismatch creates what we call hierarchy loss at the provisioning boundary: a source-of-truth structure that is correct in the directory but incomplete in the consuming application. The practical conclusion is that teams need explicit design decisions about where hierarchy lives and where it is flattened.

Google Workspace and Entra expose the same governance pattern through different transport models. The contrast is not about one directory being better, but about whether the connector preserves transitive membership or collapses it. That means IAM teams cannot write generic onboarding or documentation language and expect it to hold across identity providers. The practitioner takeaway is to validate connector-specific semantics before declaring group-based access portable.

Directory Sync failures often surface as missing users, but the real issue is missing entitlement evidence. A user that exists in the directory but arrives with an empty groups array is telling you that the governance signal was lost in transit. That changes how support, audit, and access review teams should investigate incidents. Practitioners should treat empty membership payloads as a design signal, not just a provisioning error.

From our research:

  • Only 44% of developers are reported to follow security best practices for secrets management, exposing a significant developer behaviour gap, according to The State of Secrets in AppSec.
  • Another finding from the same research is that organisations maintain an average of 6 distinct secrets manager instances, which fragments control and makes policy consistency harder to prove.
  • For a related control perspective, see Azure Key Vault privilege escalation exposure for how mis-scoped access can turn an identity boundary into a control failure.

What this signals

Hierarchy loss at the provisioning boundary: teams should expect entitlement data to flatten when it crosses protocol boundaries, especially where SCIM is involved. That means directory design, connector semantics, and application role logic need to be validated together, not treated as separate workstreams.

The operational signal is simple: if your access model depends on inherited membership, test it in the connector, not just in the directory UI. The same control discipline applies across human, NHI, and autonomous programmes because the failure mode is the transport of identity state, not the identity subject itself.

For teams mapping this to broader identity architecture, the NIST Cybersecurity Framework 2.0 remains a useful lens for governance and access assurance, especially where identity data must stay consistent across multiple control planes.


For practitioners

  • Map every SCIM-assigned group for nesting depth Review whether the group assigned to the Enterprise App contains child groups, and document where inherited membership is expected to survive. If the answer is yes, do not assume the downstream application will see the same hierarchy.
  • Flatten application-facing groups where role mapping is simple Create dedicated provisioning groups for app access and add users directly when the hierarchy is only serving organisational convenience. Use this pattern for a small number of role groups so the target app receives unambiguous membership.
  • Use Microsoft Graph only as an explicit reconciliation layer When you cannot flatten hierarchy, build a separate process that queries transitiveMembers and reconciles it against SCIM output on a defined schedule. Record how conflicts are resolved so audit and support teams know which source wins.
  • Test nested groups during integration QA Include at least one parent group with child groups in every connector test plan, and verify the application receives the memberships you expect. Flat-group-only testing will miss the exact failure mode this article describes.

Key takeaways

  • Azure Entra nested groups can look correct in the source directory while still failing in downstream SCIM provisioning.
  • The practical risk is silent authorization loss, not just a sync defect, because inherited membership may never reach the application.
  • Teams should decide explicitly whether to flatten groups, assign child groups directly, or add Graph-based reconciliation before relying on directory sync for access control.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

OWASP Non-Human Identity Top 10 address the attack and risk surface, while NIST CSF 2.0 and NIST Zero Trust (SP 800-207) set the governance and control requirements practitioners need to meet.

FrameworkControl / ReferenceRelevance
NIST CSF 2.0PR.AC-4Access entitlements must stay aligned across directory and app boundaries.
NIST Zero Trust (SP 800-207)PR.AC-4Zero Trust depends on accurate authorization state, even when identity is federated.
OWASP Non-Human Identity Top 10NHI-03Provisioning gaps affect non-human identities and service access patterns too.

Treat provisioning accuracy as part of continuous access verification and test connector behaviour.


Key terms

  • Nested Group Expansion: Nested group expansion is the process of resolving child-group membership into individual users before access decisions are made. In identity governance, the distinction matters because some directories preserve hierarchy internally while provisioning protocols deliver only direct membership, which can change the effective entitlement state downstream.
  • SCIM Provisioning: SCIM provisioning is the automated exchange of users and groups between an identity source and an application. It standardises lifecycle updates, but it does not guarantee recursive directory semantics, so teams must confirm what membership structure the target system actually receives.
  • Hierarchy Loss At The Provisioning Boundary: Hierarchy loss at the provisioning boundary is the failure mode where a directory's nested structure is flattened or omitted as identity data moves into another system. It creates a false sense of continuity between source and destination, which can break role mapping, onboarding, and access review evidence.
  • Transitive Membership: Transitive membership means all users who belong to a parent group directly or through one or more nested child groups. It is essential when access depends on inherited structure, but it requires a retrieval method that explicitly computes recursion rather than relying on a flat sync payload.

Deepen your knowledge

Azure Entra nested group handling and Directory Sync edge cases are covered in our NHI Foundation Level course, the industry's only accredited NHI security programme. If you are designing provisioning controls for complex directory structures, it is worth exploring.

This post draws on content published by WorkOS: Azure Entra nested groups and Directory Sync limitations and workarounds. Read the original.

NHIMG Editorial Note
Published by the NHIMG editorial team on 2026-03-20.
NHI Mgmt Group — the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org