Zero Trust means checking every request instead of trusting it because
of where it came from. The ability to connect, a person's sign-in and
the identity used by an application answer different security questions
and must be checked separately.
Use managed identities for applications instead of storing keys or connection strings.
Give each role access only to the service, operation and environment it needs.
Check permission again in every service that receives a request instead of trusting the caller or AI model.
Treat incoming public access, service administration and access to stored data as separate controls.
Record deliberate exceptions with an owner, expiry condition and verification step.
Fictional Security Examples
Illustrative Identity and Access Examples
Illustrative only - not an engagement finding
One Application Identity Can Access Too Many Parts of the System
A broadly privileged application identity allows one compromised service to become a stepping stone into settings, processing and data systems that should remain separate.
Assessment profile
Ease of attack
Requires compromise of one workloadOne application identity holds broad permissions across ingress, configuration, processing and data services.
Impact
Cross-zone access and privilege escalation
A compromise in one application could spread into parts of the system with different levels of trust.
It could expose administration, credentials, personally identifiable information (PII) and other protected customer data.
Detection difficulty
Visible in role-assignment review across services
List every Entra ID role assignment.
List permissions to stored data in Storage, Cosmos DB and App Configuration.
List reachable services and the effective access available to each application identity.
Pattern
Example least-privilege pattern
Expected fixVerification
1
Expected fixGive each application service its own managed identitydo not share identities or reusable credentials.
VerificationEach application service must complete its approved function through its own managed identity
2
Expected fixScope each Azure role to the smallest resource and set of operations the service needs
VerificationEach identity must be denied resources, configuration values and data assigned to another service
3
Expected fixPrevent one service identity from reading another service's App Configuration values, secrets or customer data
VerificationThe deployed configuration must contain no reusable credential that substitutes for the managed identity
4
Expected fixRestrict network paths between services with different trust levels
VerificationNetwork tests must block service paths outside the approved trust boundary
5
Expected fixReview role assignments regularly and alert on unexpected privilege changes
VerificationAn unexpected role assignment must be detected by the access review or alerting control
The public web app should expose the least information and authority. Private backend settings in that app can turn a web compromise into access to more privileged services.
Assessment profile
Ease of attack
Requires frontend identity compromiseA public-facing web workload can read configuration values intended only for APIs, workers or data services.
Impact
Backend credentials and service discovery
A compromise of the public web app could reveal private service addresses.
It could reveal reusable credentials or access details for more privileged services.
Detection difficulty
Visible in a review of who can read which configuration
Review App Configuration roles and key prefixes.
Review Key Vault secret references.
Review the effective values available to the web app's identity.
Pattern
Example configuration-separation pattern
Expected fixVerification
1
Expected fixTreat every value delivered to the browser as public information
VerificationThe browser bundle and runtime configuration must contain only the approved public-setting allowlist
2
Expected fixPublish only an explicit allowlist of browser-safe settings
VerificationA planted secret, private backend setting or Key Vault path must fail the build or startup check
3
Expected fixGive the web workload its own limited App Configuration area and identity
VerificationThe web workload's identity must be denied every private backend setting and secret path
4
Expected fixRemove access to private backend settings, Key Vault secret paths and reusable credentials
VerificationThe browser must be unable to retrieve a backend-only setting through an application endpoint
5
Expected fixMake the build or startup fail when an unapproved setting would be exposed to the browser
VerificationThe application must continue to operate using only its explicitly approved public settings
Every unnecessary public connection creates another route that must be defended continuously and makes the system more dependent on sign-in and firewall settings remaining correct.
Assessment profile
Ease of attack
Depends on a valid identity or keyData, configuration or build services still accept public connections even though only known applications need access.
Impact
Expanded reachability and attack surface
Extra connection paths give attackers more routes to test.
They increase reliance on identity and firewall settings remaining perfect.
Detection difficulty
Visible in public-network exposure review
Inspect public-network settings, firewall rules and private endpoints across Storage, Cosmos DB, App Configuration and Container Registry.
Inspect name resolution and documented exceptions.
Pattern
Example private-connectivity pattern
Expected fixVerification
1
Expected fixUse private endpoints for Storage, Cosmos DB and App Configuration, and explicitly disable their public network access
VerificationConnections from an external test location must fail for Storage, Cosmos DB, App Configuration and internal Container Apps
2
Expected fixKeep backend Container Apps on internal ingressexpose only the web entry point that users require.
VerificationApproved private workloads must continue to connect through private endpoints and private DNS
3
Expected fixConfigure private DNS and network rules so approved workloads use the private paths
VerificationOnly the intended web entry point may remain publicly reachable
4
Expected fixDeny unnecessary outbound traffic from application workloads
VerificationAn unapproved outbound destination must fail at the network boundary
5
Expected fixGive every required public exception a named owner, narrow scope, documented purpose and expiry condition
VerificationEvery permitted public exception must show an owner, purpose, narrow scope and expiry date
6
Expected fixUse deployment policy to prevent an expired or unapproved public path from returning
VerificationDeployment policy must reject an expired or unapproved public path