Enterprise Identity & Access Management Platform  ·  View 04 of 27  ·  Structure

Layered Architecture

What depends on what, and the one dependency that points the wrong way.

Editable source SVG draw.io All views
Experience
Experience
Workforce apps
browser · desktop · mobile
Workforce apps...
Admin portals
Azure · Entra · M365
Admin portals...
Customer web & mobile
Customer web & mobile
My Access self-service
request · review · attest
My Access self-service...
Access enforcement
Access enforcement
Front Door + WAF
Front Door + WAF
API Management
validate-jwt policy
API Management...
Entra Private Access
legacy app access
Entra Private Access...
Application Proxy
on-prem web apps
Application Proxy...
Identity authority
Identity authority
Microsoft Entra ID
OIDC · OAuth2 · SAML
Microsoft Entra ID...
Entra External ID
Entra External ID
Conditional Access
policy decision point
Conditional Access...
ID Protection
user & sign-in risk
ID Protection...
Authorization
Authorization
Azure RBAC
MG · sub · RG · resource
Azure RBAC...
App roles & scopes
carried in the token
App roles & scopes...
Entra PIM
eligible, not active
Entra PIM...
Application policy engine
tenant + row decisions
Application policy engine...
Governance & secrets
Governance & secrets
Entra ID Governance
packages · reviews · LCW
Entra ID Governance...
Azure Key Vault
secrets · keys · certs
Azure Key Vault...
Azure Policy
deny · audit · DINE
Azure Policy...
Identity as code
Bicep + Terraform
Identity as code...
Resource plane
Resource plane
Azure subscriptions
22 · 4 environments
Azure subscriptions...
AKS clusters
workload identity
AKS clusters...
Data services
SQL · Cosmos · Storage
Data services...
SaaS applications
SSO + SCIM
SaaS applications...
Telemetry
Telemetry
Azure Monitor
Azure Monitor
Log Analytics
90-day interactive
Log Analytics...
Microsoft Sentinel
identity analytics
Microsoft Sentinel...
Defender for Cloud
posture & CIEM
Defender for Cloud...
OIDC metadata, JWKS
OIDC metadata, JWKS
authorized principal
authorized principal
eligibility & reviews
eligibility & reviews
role assignments
role assignments
diagnostic settings
diagnostic settings
group lookup on the request path
group lookup on the request path
Layered Architecture — what depends on what
Layered Architecture — what depends on what
Application we own
Application we own
Interface / broker
Interface / broker
Security / platform
Security / platform
Data store
Data store
External / third party
External / third party
synchronous
synchronous
event / async
event / async
failure / alternate
failure / alternate
Dependencies point downward. The single upward call, an application resolving group membership from Graph while serving a request, is drawn red because it turns the identity service into a runtime dependency; view 27 carries its mitigation.
Dependencies point downward. The single upward call, an application resolving group membership from Graph while serving a request, is drawn red because it turns the identity service into a runtime dependency; view 27 carries its mitigation.
v 1.0 · owner Data & AI Global Practice · date 2026-08
v 1.0 · owner Data & AI Global Practice · date 2026-08
Text is not SVG - cannot display

The layering rule

  • A layer may call the layer below it and must never call the layer above. Enforcement calls identity; identity calls authorization; nothing calls back up to experience.
  • Telemetry is the bottom layer rather than a sidebar because every layer emits into it and none of them reads from it — that is exactly what a bottom layer is.
  • Governance and secrets sit above the resource plane deliberately: an entitlement decision is made before a resource is touched, never reconciled after.

The red arrow

  • One application resolves group membership from Microsoft Graph while serving a request. That turns a control-plane service into a runtime dependency on the hot path.
  • Mitigation is in flight: groups move into the token as a roles claim, with the Graph call kept as a cold fallback behind a 10-minute cache and a circuit breaker.
  • It is drawn rather than removed because a hidden violation is a defect, while a visible one is a decision with an owner and a date.

Assumptions

  • Group claims stay under the token size limit. Above roughly 150 groups Entra emits an overage claim and the application must call Graph anyway — which is why the group model is flat by policy.
  • Every application in the estate can consume OIDC or SAML. The residue goes behind Application Proxy or Entra Private Access rather than being granted a direct network path.
  • Application-level authorization is the product team's responsibility; the platform supplies roles, scopes and claims, not the product's own permission semantics.