Architecture diagram
One brokered session to one private application
A user on an untrusted network asks for a named application. The broker presents the request for a policy decision, then joins the user's outbound session to a connector that dialled outbound from the private network. No listener is published, the neighbouring application stays unreachable, and every verdict reaches security operations.
Step 1 / 6Ask for an application, not for the network
Architectural planes
Annotations
The same architecture, read top to bottom
Public and untrusted networks
UNTRUSTEDNot controlled and not trusted; anyone may be present on itContractor · Laptop with access agent · Adversary on the internet
- PersonContractorNeeds one finance application
- DeviceLaptop with access agentPosture reported at connect and during the session
- AdversaryAdversary on the internet
Reaches this boundary
- BlockedAdversary on the internet stopped at Application connectorNothing listens inbound to be found
- BlockedAdversary on the internet stopped at ZTNA brokerRefused: unknown device, no posture signal
- BlockedLaptop with access agent stopped at ZTNA brokerThe grant names one application only
Within this boundary
- RequestContractor to Laptop with access agentAsks for the finance application by name
Provider-operated access service
MANAGEDOperated or administered on the enterprise's behalfZTNA broker
- API or gatewayZTNA brokerJoins two outbound connections into one session
Policy control
MANAGEDOperated or administered on the enterprise's behalfPolicy engine · Continuous evaluation
- Policy decisionPolicy engineAllow this application, step up, or refuse
- Security controlContinuous evaluation
- Identity and group claims
- Device posture and patch state
- The application actually requested
- Session risk and location change
- Time since the last verification
Reaches this boundary
- RequestLaptop with access agent to ZTNA brokerOutbound session from the agent
- ContextIdentity provider to Policy engineIdentity, group and risk claims
- ContextLaptop with access agent to Continuous evaluationDevice posture, at connect and while running
- RequestApplication connector to ZTNA brokerOutbound tunnel raised from the inside
- AttackAdversary on the internet to ZTNA brokerStolen credentials replayed at the broker
Within this boundary
- RequestZTNA broker to Policy engineThis identity, this device, this application
- RequestPolicy engine to ZTNA brokerVerdict for one application and one session
- ContextContinuous evaluation to Policy engineSignals for the next re-evaluation
Enterprise control plane
INTERNALOperated by the enterprise itselfIdentity provider · Security operations
- Identity providerIdentity providerSingle sign-on, MFA and risk claims
- Security controlSecurity operationsDetection, investigation and policy review
Reaches this boundary
- ContextContractor to Identity providerAuthentication and a second factor
- TelemetryZTNA broker to Security operationsSession start, duration and re-evaluations
- TelemetryPolicy engine to Security operationsEvery verdict and the signals behind it
- TelemetryApplication connector to Security operationsConnector health and published applications
Private application network
INTERNALOperated by the enterprise itselfApplication connector · Finance reporting application · Ticketing application · Finance records
- API or gatewayApplication connectorDials outbound, publishes no listener
- ApplicationFinance reporting applicationThe one application in this grant
- ApplicationTicketing applicationSame subnet, outside this grant
- Data storeFinance records
Reaches this boundary
- RequestZTNA broker to Application connectorAuthorised session handed over
- AttackAdversary on the internet to Application connectorScans the perimeter for a service to reach
- AttackLaptop with access agent to Ticketing applicationCompromised session probes the next system
Within this boundary
- RequestApplication connector to Finance reporting applicationReaches one application, not the network
- RequestFinance reporting application to Finance recordsApplication reads its own records
Legend
Participants
- PersonSomeone making a request, and the identity they assertCircle with a person mark
- DeviceAn endpoint the request is made from, with its own postureRounded rectangle with an inset panel
- ApplicationAn application that serves or holds dataRounded rectangle with a panel stacked behind it
- Identity providerThe authority that asserts who is askingHexagon marked ID
- API or gatewayA network endpoint that terminates or forwards connectionsCapsule marked API
- Data storeWhere data restsCylinder
- Security controlA protective control, and the control plane's own observationRounded octagon with a check mark
- AdversaryA hostile party attempting somethingDiamond marked with an exclamation mark
- Policy decisionWhere policy is evaluated and one verdict is reachedDiamond with a split-path mark on its trailing point
Relationships
- RequestTraffic asking to reach a destinationSolid line. Filled arrowhead.
- TelemetryEvents reported onward for observation — observation, not controlDotted line. Small open arrowhead.
- ContextA signal that informs a decision without carrying the request itselfDash-dot line. Open chevron.
- AttackAn attempt made by an adversaryShort-dashed heavy line. Barbed open arrowhead.
- BlockedAn attempt terminated by the control the line starts fromHeavy line that stops short of its target. Perpendicular bar, and deliberately no arrowhead: the attempt did not arrive.
Boundaries
- Internal boundaryOperated by the enterprise itselfSolid outline. Badge reads INTERNAL.
- Managed boundaryOperated or administered on the enterprise's behalfDashed outline with a subtle wash. Badge reads MANAGED.
- Untrusted boundaryNot controlled and not trusted; anyone may be present on itDotted outline with a hatched leading corner. Badge reads UNTRUSTED.
Text alternative
The request, step by step
Ask for an application, not for the network
The user names the application they need and the local agent opens an outbound session to the broker. Nothing about this step puts the device on the private network, so there is no interval during which the device is connected but not yet governed.
- Request: Contractor to Laptop with access agent, “Asks for the finance application by name”
- Request: Laptop with access agent to ZTNA broker, “Outbound session from the agent”
Emphasised at this step: ZTNA broker.
Build the context for this request
Identity and a second factor come from the identity provider, device posture comes from the agent, and the broker adds the application that was actually requested. Together these are the request, and the request is what gets authorised.
- Context: Contractor to Identity provider, “Authentication and a second factor”
- Context: Identity provider to Policy engine, “Identity, group and risk claims”
- Context: Laptop with access agent to Continuous evaluation, “Device posture, at connect and while running”
- Request: ZTNA broker to Policy engine, “This identity, this device, this application”
Emphasised at this step: Identity provider.
Decide one application at a time
The policy engine returns a verdict scoped to this identity, this device and this application, with any step-up requirement and the interval at which the session must justify itself again. A verdict for one application says nothing about the next one.
- Request: Policy engine to ZTNA broker, “Verdict for one application and one session”
Emphasised at this step: Policy engine.
Stitch the session from two outbound halves
The connector has already dialled out from inside the private network. The broker joins that tunnel to the user's session, and traffic reaches the named application only. Neither half of the path required an inbound firewall rule.
- Request: Application connector to ZTNA broker, “Outbound tunnel raised from the inside”
- Request: ZTNA broker to Application connector, “Authorised session handed over”
- Request: Application connector to Finance reporting application, “Reaches one application, not the network”
- Request: Finance reporting application to Finance records, “Application reads its own records”
Emphasised at this step: Application connector.
Keep checking while the session runs
Posture, risk and location are re-evaluated on a configured interval and on defined triggers. If the context that justified the session stops being true, the verdict changes and the session ends rather than running to its own timeout.
- Context: Continuous evaluation to Policy engine, “Signals for the next re-evaluation”
Emphasised at this step: Continuous evaluation.
Record what was reachable, and when
The broker, the policy engine and the connector each report to security operations. That record is what lets an investigator state which application a given identity could reach at a given time, which is a question a network-level grant cannot answer precisely.
- Telemetry: ZTNA broker to Security operations, “Session start, duration and re-evaluations”
- Telemetry: Policy engine to Security operations, “Every verdict and the signals behind it”
- Telemetry: Application connector to Security operations, “Connector health and published applications”
Emphasised at this step: Security operations.
Attempts shown, and where each one stops
Adversary on the internet attempts:
- Attack: Adversary on the internet to Application connector, “Scans the perimeter for a service to reach”
- Attack: Adversary on the internet to ZTNA broker, “Stolen credentials replayed at the broker”
- Terminated here by Application connector — “Nothing listens inbound to be found”. The line stops short and takes a bar, not an arrowhead.
- Terminated here by ZTNA broker — “Refused: unknown device, no posture signal”. The line stops short and takes a bar, not an arrowhead.
Laptop with access agent attempts:
- Attack: Laptop with access agent to Ticketing application, “Compromised session probes the next system”
- Terminated here by ZTNA broker — “The grant names one application only”. The line stops short and takes a bar, not an arrowhead.
Annotations
Why this path runs outward
Relationship — Request: Application connector to ZTNA broker, “Outbound tunnel raised from the inside”
Both halves of the session are initiated from inside a network towards the broker, which is the whole reason no inbound rule is needed. Reverse this one arrow and you are back to publishing a listener on the internet and defending it.
A scan with nothing to find
Relationship — Blocked: Adversary on the internet stopped at Application connector, “Nothing listens inbound to be found”
This attempt does not reach a control that says no. It reaches an address where no service is listening, because the connector only ever makes outbound connections. The strongest refusal is the one that needs no rule to be correct.
What a compromised session can still try
Relationship — Attack: Laptop with access agent to Ticketing application, “Compromised session probes the next system”
ZTNA does not assume the endpoint stays honest. A session that is misused can attempt the neighbouring system, and the attempt fails because the broker holds a grant for one application rather than because the endpoint behaved well.
The broker is the only path
Component “ZTNA broker”
The broker holds both halves of every session and can end either. It is also a single dependency worth planning for, since an unreachable broker means no access at all, and any bypass built to soften that becomes the broad path ZTNA was bought to remove.
Continuous is an interval, not a promise
Component “Continuous evaluation”
Re-evaluation happens as often as it is configured to, over the signals that are actually collected. A deployment that checks posture once at connect and then leaves an eight-hour session running has one-time authentication with a newer label on it.
The definition decides how narrow this is
Component “Policy engine”
The engine can only be as precise as the application definitions it evaluates. An application entered as a subnet, or a group that contains most of the workforce, produces a grant no narrower than the VPN it replaced while still reporting per-request decisions.
Being inside grants nothing here
Boundary “Private application network” (internal)
The connector sits in the internal zone and its neighbours are ordinary systems with ordinary weaknesses. What changes is that arriving from outside no longer places anyone on this network, so the neighbours are not part of the reachable surface.
The short version
Four things to take away
-
Access to an application, not a route to the network
A remote-access VPN puts the device on the network and then decides what it may reach. A broker connects one authorised session to one application, and the network behind it is never addressable.
-
The connection is built from the inside out
A connector inside the private network dials outbound to the broker, so there is no published listener and no inbound firewall rule for an adversary to find and attack.
-
Verification continues after the session starts
Authentication answers who is asking, once. A broker can re-evaluate identity, device posture and risk during the session and end it when the context that justified it stops being true.
-
The grant is only as narrow as the application definition
An application defined as a wide address range or a whole subnet produces the reachability a VPN gave, delivered by newer machinery. The definition, not the product, is what limits the blast radius.
Mechanics
How it works
Zero trust network access replaces a question. A remote-access VPN asks whether this device may join the network, and once the answer is yes the device holds an address on it and reaches whatever the routing and the firewall rules allow. A broker asks whether this identity, on this device, may use this application right now, and answers that question again for the next application.
The mechanism that makes this practical is the direction of the connections. A connector deployed beside the application opens an outbound tunnel to the broker, and the user’s agent opens its own outbound session from wherever the user is. The broker joins the two once a verdict permits it. Neither side ever accepts an inbound connection, so there is no published listener to scan, fingerprint or exploit, and no inbound firewall rule whose exceptions accumulate over years. This is also why ZTNA is often described as removing the application from the internet: the application has not moved, but nothing addresses it from outside.
Continuous re-evaluation is the second departure from VPN behaviour, and the one most often assumed rather than configured. A session that was correct at nine in the morning may not be correct at noon, because the device fell behind on patches, the account was flagged, or the user moved somewhere unexpected. A broker can act on that, but only over the signals it receives and on the interval it is told to use. Ask what is re-checked and how often before treating a deployment as continuous.
The failure mode worth naming is administrative rather than technical. An application is whatever the configuration says it is, and it is always faster to enter a subnet than to enumerate hostnames and ports. Do that a few times and the broker faithfully brokers per-request access to most of the private network, producing detailed logs of decisions that were far broader than intended. The architecture holds only as long as the definitions do.
Nothing here defends the application itself. A brokered session delivers a well-authenticated request to code that may still mishandle it, and the application’s own roles and permissions decide what the user can do once inside. Identity governance stays a separate discipline: ZTNA enforces decisions about accounts, and has no view on whether an account should still exist. The honest description is narrow and useful — it removes network reachability as an attack path, and leaves the rest of the estate exactly as strong as it was.
One concrete situation
A contractor needs one internal application
Unmanaged home network, 09:15
-
Context
A contractor signs in from a laptop issued for the engagement, asks for the finance reporting application by name, and the endpoint agent reports current patch state and disk encryption.
-
Decision
Policy matches the contractor group to that one application, requires a second factor because the network is unrecognised, and sets a shorter re-verification interval than for staff.
-
Enforcement
The broker joins the contractor's outbound session to the connector's outbound tunnel. Nothing routes to the rest of the private network, and the ticketing system on the same subnet stays unreachable.
-
Observation
The verdict, the signals behind it, the session duration and each re-evaluation are logged, so an investigator can later answer what this contractor could reach and when.
Scope, in both directions
What it covers, and what it does not
Both lists are authored and required. A control's limits are part of what it is, so the second panel is not a caveat appended to the first — it is the other half of the answer.
What it protects
- Reachability of private applications from untrusted networks
- Inbound exposure of application listeners to the internet
- Lateral movement from a granted application to its neighbours
- Per-request evaluation of identity and device context
- Session continuation after the justifying context changes
What it does not solve alone
- Over-broad application definitions that restore network-level reach
- Vulnerabilities and flawed logic in the application reached
- Authorisation inside the application, including its own roles
- Identity lifecycle, joiner-mover-leaver and privileged access governance
- Endpoint compromise on a device that passes every posture check
- Data an authorised user is entitled to read and then takes elsewhere
Frequently confused
Adjacent terms, and how they relate
| Term | Primary job | Relationship |
|---|---|---|
| Remote-access VPN | Network-level connectivity for a remote device | The control ZTNA usually replaces. It grants reachability first and filters afterwards, which is why a compromised session reaches further. |
| Secure access service edge (SASE) | Converged networking and cloud-delivered security | An architecture that normally includes a broker as one of its access capabilities. ZTNA is a component of it, not a synonym for it. |
| Security service edge (SSE) | Cloud-delivered security services | The service bundle a broker is most often bought inside, alongside a web gateway, a cloud access security broker and data loss prevention. |
| Identity-aware proxy | Per-request authorisation in front of a web application | The same idea applied to web traffic only. ZTNA products generally cover non-web protocols as well, with weaker inspection when they do. |
| Microsegmentation | Restricting traffic between workloads inside a network | Complementary and not interchangeable. ZTNA governs how a client reaches an application; microsegmentation governs what that application may then talk to. |
| Zero trust | A set of security principles and an architecture | ZTNA implements the application-access part of a zero-trust strategy. It leaves the identity, device, data and workload parts untouched. |
Explained in full
Side by side, in one shared diagram
Before procurement
What to settle first
Deliberately unnumbered: these are the questions to answer, not a sequence to work through in order.
-
Define applications narrowly, then keep them narrow
Inventory each application as its own hostnames, ports and protocols rather than a subnet, and review the definitions on a schedule, because widening one is the cheapest way to close a ticket.
-
Agree what device trust means before enforcing it
Name the posture signals that matter, who may exempt a device, how unmanaged and contractor-owned machines are handled, and what happens when the posture source is unavailable.
-
Place and size the connectors deliberately
Connectors are the path to every published application. Plan how many, in which segments, with what outbound egress rules, and what a connector failure or upgrade does to live sessions.
-
Test the protocols that are not web traffic
Remote desktop, secure shell, thick clients, server-initiated callbacks and voice each behave differently through a broker, and some do not work at all without a fallback path you must then govern.
-
Decommission the VPN on a plan
Running both is normal during migration and dangerous as a resting state, because the broad path stays available. Name the date, the owner and the evidence that each application has moved.
-
Set the re-evaluation interval on purpose
Continuous evaluation is a configured interval and a set of triggers, not a property of the product. Check what is re-checked, how often, and whether a failed check ends the session or only logs it.
-
Design the logging you will need in an investigation
Confirm that each session records the identity, the device, the application and the verdict, that events export to your own systems, and how long they are retained.
Sources
-
NIST SP 800-207
Defines the policy engine, policy administrator and policy enforcement point split, and the per-request access model a broker implements.
-
NIST SP 1800-35
Implementing a Zero Trust Architecture
Reference implementations built with commercial products, several of which use a brokered access service as the enforcement point.
-
NCSC
Zero trust architecture design principles
States the principles a broker has to satisfy, including authorising every request against policy and treating every network as hostile.
-
CISA v2.0
Places application access alongside identity, device, network and data, which is why ZTNA on its own does not advance the whole model.