Who is here
The people and machines in this situation
A control that only works when nobody legitimate is inconvenienced is not a control, so everyone with real work to do is listed first, by name.
In the situation
Everyone whose legitimate work this design has to keep working.
- Finance analyst
- Holds a legitimate payroll entitlement and needs the monthly run to complete today, from wherever she happens to be.
- Her managed laptop
- Enrolled and reporting, but carrying endpoint protection signatures that are four days out of date.
- Access service policy engine
- Reaches one verdict per request from identity, device posture, the application asked for and the sensitivity of the data behind it.
- Security operations analyst
- Reads the resulting events and has to be able to answer later why this request was allowed and that download was not.
Working against it
Present in the same situation, and not on the organisation's side. Named here rather than left implied.
- Another guest on the hotel network Stance Adversarial
- Watches the shared segment for credentials worth replaying against whatever they unlock.
The whole request, at once
What happens, drawn
The figure's ordered walkthrough is the same sequence as the decisions below — step 1 is the first decision, and the rail on the right moves both together.
Architecture diagram
One payroll request from an untrusted network
A finance analyst on a hotel network reaches a nearby enforcement point, where a valid identity and a stale device posture signal produce one verdict that permits an interactive payroll session and refuses the export. The attacker view adds a nearby guest replaying captured credentials and the download attempt, and shows where each terminates.
Step 1 / 7Arrive somewhere the network cannot vouch for
Architectural planes
Annotations
The same architecture, read top to bottom
Hotel Wi-Fi
UNTRUSTEDNot controlled and not trusted; anyone may be present on itFinance analyst · Managed laptop · Another guest on the network
- PersonFinance analystLegitimate payroll entitlement
- DeviceManaged laptopEnrolled, signatures four days old
- AdversaryAnother guest on the network
Reaches this boundary
- BlockedAnother guest on the network stopped at Access brokerRefused: unknown device, no posture signal
- BlockedManaged laptop stopped at Inspection and data controlsExport refused while signatures are stale
Within this boundary
- RequestFinance analyst to Managed laptopOpens payroll at 08.42
- AttackAnother guest on the network to Managed laptopCredential capture on the shared segment
Nearest enforcement point
MANAGEDOperated or administered on the enterprise's behalfAccess and policy control · Inspection services
Access and policy control
MANAGEDOperated or administered on the enterprise's behalfAccess broker · Policy engine
- API or gatewayAccess brokerOne application per session
- Policy decisionPolicy engineAllow, step up, restrict or block
Inspection services
MANAGEDOperated or administered on the enterprise's behalfInspection and data controls
- Security controlInspection and data controls
- Data loss prevention
- Cloud access security broker
- Secure web gateway
- Download and upload rules
- Security controlInspection and data controls
Reaches this boundary
- RequestManaged laptop to Access brokerEncrypted session to the nearest edge
- ContextIdentity provider to Policy engineIdentity, group and risk claims
- ContextManaged laptop to Policy engineDevice posture: signatures four days old
- ContextIdentity provider to Access brokerStep-up challenge satisfied
- AttackAnother guest on the network to Access brokerCaptured credentials replayed at the edge
Within this boundary
- RequestAccess broker to Policy engineRequest presented for one decision
- RequestPolicy engine to Inspection and data controlsVerdict: allow the session, refuse the file
Enterprise control plane
INTERNALOperated by the enterprise itselfIdentity provider · Security operations
- Identity providerIdentity providerSign-in, second factor and step-up
- Security controlSecurity operationsDetection, investigation and evidence
Reaches this boundary
- ContextFinance analyst to Identity providerSign-in and a second factor
- RequestPolicy engine to Identity providerStronger verification required
- TelemetryAccess broker to Security operationsSession and application events
- TelemetryPolicy engine to Security operationsThe verdict and the signals behind it
- TelemetryInspection and data controls to Security operationsInspection and data-handling events
Private payroll estate
INTERNALOperated by the enterprise itselfPayroll application · Payroll records
- ApplicationPayroll applicationPrivate, with no inbound exposure
- Data storePayroll records
Reaches this boundary
- RequestAccess broker to Payroll applicationBrokered session, no network route
- AttackManaged laptop to Payroll recordsMonthly export pulled toward a stale device
Within this boundary
- RequestPayroll application to Payroll recordsApplication reads payroll records
Sanctioned cloud services
THIRD PARTYOperated by another organisation under its own termsCloud spreadsheet service
- ApplicationCloud spreadsheet serviceSanctioned, not enterprise-operated
Reaches this boundary
- RequestInspection and data controls to Cloud spreadsheet serviceInspected traffic to a sanctioned service
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.
- Third party boundaryOperated by another organisation under its own termsDash-dot outline. Badge reads THIRD PARTY.
- 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
Arrive somewhere the network cannot vouch for
The analyst opens payroll from a shared hotel network and the laptop builds an encrypted session to the nearest enforcement point. Nothing about being on that network raises or lowers the verdict; it only decides where the decision has to be made, which is outside the network itself.
- Request: Finance analyst to Managed laptop, “Opens payroll at 08.42”
- Request: Managed laptop to Access broker, “Encrypted session to the nearest edge”
Emphasised at this step: Access broker.
Establish who is asking
Sign-in and a second factor succeed, and the identity provider passes identity, group and risk claims to the policy engine while the broker presents the request. This answers who is asking and nothing more.
- Context: Finance analyst to Identity provider, “Sign-in and a second factor”
- Context: Identity provider to Policy engine, “Identity, group and risk claims”
- Request: Access broker to Policy engine, “Request presented for one decision”
Emphasised at this step: Identity provider.
Weigh the device against the request
The laptop reports posture, and the signature age is the weak signal in an otherwise strong request. Rather than deny a legitimate analyst or wave the request through, the engine requires stronger verification and holds a data restriction ready for the part of the session that would actually move salaries onto that disk.
- Context: Managed laptop to Policy engine, “Device posture: signatures four days old”
- Request: Policy engine to Identity provider, “Stronger verification required”
- Context: Identity provider to Access broker, “Step-up challenge satisfied”
Emphasised at this step: Policy engine.
Open one application, not a network
The broker opens a session to the payroll interface alone and makes the outbound connection itself, so payroll publishes nothing inbound and nothing else on that estate becomes reachable. The application reads its own records as it always did.
- Request: Access broker to Payroll application, “Brokered session, no network route”
- Request: Payroll application to Payroll records, “Application reads payroll records”
Emphasised at this step: Payroll application.
Constrain what may move
The verdict reaches the inspection services with the restriction attached: the interactive session proceeds, and the monthly export does not land on a device with stale defences. The restriction is a consequence of a signal, so it lifts when the signal changes.
- Request: Policy engine to Inspection and data controls, “Verdict: allow the session, refuse the file”
Emphasised at this step: Inspection and data controls.
Govern the other way out
The same rules follow the data to the sanctioned cloud spreadsheet service the analyst uses for every other report, because a refusal at one channel otherwise just moves the behaviour to the next one.
- Request: Inspection and data controls to Cloud spreadsheet service, “Inspected traffic to a sanctioned service”
Emphasised at this step: Cloud spreadsheet service.
Leave a record somebody can read
Session, decision and inspection events reach security operations with the signals attached, which is what lets an investigator answer why this request was allowed six weeks later, and what lets an architect notice a rule that is refusing work it should permit.
- Telemetry: Access broker to Security operations, “Session and application events”
- Telemetry: Policy engine to Security operations, “The verdict and the signals behind it”
- Telemetry: Inspection and data controls to Security operations, “Inspection and data-handling events”
Emphasised at this step: Security operations.
Attempts shown, and where each one stops
Another guest on the network attempts:
- Attack: Another guest on the network to Managed laptop, “Credential capture on the shared segment”
- Attack: Another guest on the network to Access broker, “Captured credentials replayed at the edge”
- Terminated here by Access broker — “Refused: unknown device, no posture signal”. The line stops short and takes a bar, not an arrowhead.
Managed laptop attempts:
- Attack: Managed laptop to Payroll records, “Monthly export pulled toward a stale device”
- Terminated here by Inspection and data controls — “Export refused while signatures are stale”. The line stops short and takes a bar, not an arrowhead.
Annotations
Untrusted is a description, not an accusation
Boundary “Hotel Wi-Fi” (untrusted)
The badge states what is known about the network: its operator, its other occupants and its configuration are all outside the enterprise's knowledge. It says nothing about the laptop inside it, which is still managed and still reporting. Equally, a device sitting in an internal zone earns no privilege from the enclosure it happens to be drawn in.
Why this line changes the verdict without deciding it
Relationship — Context: Managed laptop to Policy engine, “Device posture: signatures four days old”
Posture arrives as context rather than as a request, and that is the whole argument of this page. A signal of this kind should shift what a session is allowed to do; it should not by itself decide whether the session happens. Wired as a gate, the same signal produces an exception ticket approved by someone holding less information than the engine had.
The challenge is triggered, not routine
Relationship — Request: Policy engine to Identity provider, “Stronger verification required”
Stronger verification is asked for because a second signal turned weak, not because a policy applies it to everyone every morning. Friction applied uniformly is friction people learn to route around, and the routes they find are the paths nobody is inspecting.
What the terminated download tells you
Relationship — Blocked: Managed laptop stopped at Inspection and data controls, “Export refused while signatures are stale”
This line stops short of the laptop on purpose: the attempt ended at the control rather than at the device. Reading salaries in a browser and holding a spreadsheet of them on a disk are different exposures, and only the second one outlives the session, so only the second one is refused.
Why a captured credential is not enough
Relationship — Blocked: Another guest on the network stopped at Access broker, “Refused: unknown device, no posture signal”
The replayed credential is genuine, which is exactly why a design that stops at authentication fails here. The attempt terminates because the device presenting it is unknown and can produce no posture signal at all, so a second requirement it cannot satisfy is what ends the attempt.
A session, not a route
Relationship — Request: Access broker to Payroll application, “Brokered session, no network route”
The broker connects outward to the named application, so the payroll estate publishes no listening service for anyone to scan and reachability never becomes transitive. The cost is an application inventory somebody has to maintain, because an application nobody enumerated is an application nobody can reach.
Where the observable channels end
Relationship — Request: Inspection and data controls to Cloud spreadsheet service, “Inspected traffic to a sanctioned service”
This route is governed because the service terminates it and can apply the same sensitivity rules. A personal account on an unsanctioned service, or a copy made on an earlier trip, is outside what any of these controls observe. Naming that boundary is more useful than implying it is not there.
A verdict nobody can reconstruct is a guess
Component “Security operations”
The useful record is not the allow and the block but the signals behind them: which identity, which device, its posture at that moment, which application, which control fired. If those events cannot leave the service, or their clocks disagree with the endpoint and application logs, the architecture cannot be audited.
Before the acronyms arrive
The four terms this situation teaches
Nobody arrives at a situation knowing which product category answers it. Each of these is exercised by a decision below, and the numbers say which — so a term can be read now, or met in the story and looked up then.
-
Concept
Secure access service edge (SASE)
Read the conceptHow software-defined networking and cloud-delivered security converge at distributed edges, so access policy follows the user, the device and the data.
-
Concept
Zero trust network access (ZTNA)
Read the conceptHow brokered, application-specific access replaces network-level connectivity, and what an over-broad application definition gives back.
-
Concept
Security service edge (SSE)
Read the conceptThe cloud-delivered security half of SASE, without the networking half, and what stays unsolved when you buy the security services on their own.
-
Concept
Cloud access security broker (CASB)
Read the conceptHow a broker gains visibility and control over cloud service use, why its deployment mode decides what it can actually see and stop, and where each mode runs out.
The spine
Seven decisions, in the order they arrive
Each one is a section of its own and a step on the rail. None of them has a costless answer, so each says what was decided and what that cost.
Decision 1
Can anything be inferred from the network she is on?
Should the hotel network change the verdict, and if it should not, where does the decision have to be made instead?
A shared hotel network is genuinely untrusted: the analyst cannot see who else is on it, cannot influence its configuration, and cannot tell whether its captive portal is doing anything other than what it claims. The tempting shortcut is to treat "off the corporate network" as a risk score and dock points for it. That fails in both directions. It punishes a well-managed laptop for its postcode, and it silently rewards anything that happens to be sitting on a corporate segment. The useful conclusion is narrower: the network tells you almost nothing about the request, so the enforcement point cannot live inside it and cannot depend on it.
What was decided, and what it cost
The network posture is recorded as context and given no weight of its own, and the decision is made at a nearby enforcement point instead; the cost is that the enforcement point is now on the critical path for her work.
The concept this exercises
Decision 2
Is the identity genuine, and is genuine enough?
She authenticated successfully with a second factor, so what is left to decide?
Authentication answers who is asking. It does not answer whether this request, from this device, to this application, at this moment, should proceed. Treating a successful sign-in as the whole verdict is what makes a captured credential valuable, and a shared network is exactly where credentials get captured. The counter-argument is real: every extra challenge is friction, and friction is what teaches people to look for a route around the control. So the challenge has to be triggered by something, not applied to everything.
What was decided, and what it cost
The broker accepts the identity, treats it as one signal rather than the answer, and holds a step-up challenge in reserve for the moment a second signal turns weak.
The concept this exercises
Decision 3
Is the device healthy enough for what is being asked?
Endpoint protection signatures are four days stale on a device that is otherwise fully managed. Is that a block?
This is the point where a binary control gives the wrong answer twice. Deny, and a legitimate analyst cannot close payroll, which produces an exception request that will be granted by someone with less context than the policy engine had. Allow, and the most sensitive dataset in the company becomes reachable from a machine whose defences are measurably behind. Neither is correct, because posture is not a yes or no property. Stale signatures do not make the browser session dangerous; they make holding a copy of the payroll file on that disk dangerous. The verdict should therefore constrain what the session can do, not whether it exists.
What was decided, and what it cost
The engine allows an interactive session after a step-up challenge and attaches a data restriction to it, accepting that the analyst will hit a refusal later and must be told why in plain language.
The concept this exercises
Decision 4
Which application is she actually asking for?
Should the grant be reachability to the network payroll sits on, or a session to payroll and nothing else?
The historical answer connected the laptop to a corporate network and let routing decide the rest, which meant one authenticated session on a hotel network implied reachability to everything that network carried. Brokering a single named application inverts that: the broker makes the outbound connection to payroll, so payroll publishes no listening service for anyone to scan, and nothing else becomes reachable because nothing else was named. The cost is administrative. Somebody has to enumerate the applications and keep that inventory honest, and an application nobody enumerated is an application nobody can reach.
What was decided, and what it cost
The broker opens a session to the payroll interface alone and grants no network route, at the price of an application inventory that has to be maintained deliberately rather than inherited from the routing table.
The concept this exercises
Decision 5
What data may leave the application?
The interface is open. Should the monthly export be allowed to land on a device with stale defences?
Reading payroll in a browser and holding a spreadsheet of every salary on a local disk are different exposures, and only the second one survives the end of the session. This is where the earlier posture signal is finally spent: the same weak signal that did not justify refusing the session does justify refusing the copy. Inspection has limits worth stating. The control sees the channels it terminates, so a download through the brokered session is visible and a file the analyst saved on a previous trip is not.
What was decided, and what it cost
Data controls in the service chain refuse the export to that device until signatures are current, and the refusal is explained to the analyst instead of appearing as a failed download.
The concept this exercises
Decision 6
Which routes out of payroll does the service not see?
If the download is refused, what stops the same figures reaching a cloud spreadsheet the analyst already uses every day?
A refusal at one channel moves the behaviour rather than ending it. The analyst still has a monthly deadline, and the obvious workaround is the sanctioned cloud spreadsheet service she uses for every other report, reached directly from the browser and never through the broker. That route can be governed, but only if the service is positioned to see traffic to sanctioned cloud applications and to apply the same sensitivity rules there. Unsanctioned services, and personal accounts on sanctioned ones, are where the honest limits of this design sit.
What was decided, and what it cost
Traffic to the sanctioned spreadsheet service is inspected under the same data rules, and the team accepts that a personal account on an unsanctioned service remains outside what the service can observe.
The concept this exercises
Decision 7
What is recorded, and can anyone answer why afterwards?
Six weeks from now, who can reconstruct why this session was allowed and that export was not?
A verdict nobody can reconstruct is indistinguishable from a guess. The events that matter are not just the allow and the block, but the signals behind them: which identity, which device, what its posture was at the time, which application, which data control fired. Two properties decide whether that is usable later. The events have to leave the service, into whatever system holds the endpoint and application logs, and their clocks have to agree. The analyst also needs her own version of the record, which is the plain-language message telling her that the download failed because her signatures are stale and what to do about it.
What was decided, and what it cost
Decision, inspection and session events are exported to security operations with the signals attached, and the analyst is given a message she can act on rather than a generic error.
The concept this exercises
How it ended
The outcome
The analyst finished the payroll run in the browser and closed the month on time. She could not take the export with her, and she was told why. The request was never a binary: identity was strong, the device was weak, and the verdict matched the shape of that mixture by permitting the session and constraining the data. The signature update completed that evening on a better network, after which the restriction lifted on its own because it was a consequence of a signal rather than a ticket somebody had to close. Two probes from another guest on the network terminated without reaching anything, one against a device requirement they could not satisfy and one against a data control.
Still exposed
What this does not fix
Six things are still exposed after everything above. The content model requires this list on every scenario, because an architecture write-up that ends clean is the one thing a reader should not believe.
- The signatures are still stale until the device reaches a usable network
- Payroll files saved to the device on earlier trips remain outside the service view
- A screen full of salaries in a public breakfast room is not a data control problem
- Any traffic exempted from inspection is an uninspected path by definition
- The verdict trusts a posture signal the endpoint agent itself reports
- Enforcement is now on the critical path, so an outage becomes a payroll outage
Reading it back
What generalises
Situations like this one are usually retold as a warning about public Wi-Fi. That framing is comfortable and it points at the wrong thing. The shared network is the least informative fact in the story: it is untrusted, everyone already knew it was untrusted, and treating that as a risk score both penalises a well-managed laptop for its location and quietly flatters anything that happens to be sitting on a corporate segment.
What makes the request interesting is that its signals disagree. The person is who she says she is, holds the entitlement she is exercising, and has a real deadline. The machine is enrolled and managed but measurably behind on its defences, for a reason that is the network’s fault rather than hers. A control with two outcomes has to pick which of those two facts to ignore. Denying ignores the legitimacy and produces an exception, granted later by somebody with less context than the policy engine had. Allowing ignores the weakness and puts the most sensitive dataset in the company on a disk that is behind on patches.
The third answer is available only if the verdict can shape the session rather than gate it. Stale signatures do not make a browser session dangerous; they make a durable local copy of every salary dangerous. So the session proceeds after a challenge that was triggered by something, and the export does not, until the signal that caused the restriction changes. That last property matters more than it looks: because the restriction is a consequence of a measurement rather than a ticket, it lifts by itself when the device updates, and nobody has to remember to lift it.
The parts of this that generalise are the parts worth taking away. A decision made from several signals can produce a proportionate answer, and a decision made from one cannot. A refusal at one channel moves behaviour to the next channel, so the channels have to be governed together or the refusal is theatre. And every one of these controls sees only what it terminates, which is why the copy saved on a previous trip, and the photograph of the screen, sit outside this story entirely rather than being solved quietly by it.
Sources
-
NIST SP 800-207
Sets out authentication and authorisation of both the subject and the device as discrete functions performed before each session is established.
-
NCSC
Design principles that name device health as a signal and instruct organisations not to trust any network, including their own.
-
NIST SP 800-207A
Describes the move from segmentation by network parameters to policy evaluated per request against identities.
-
CISA v2.0
Treats identity, devices, networks, applications and data as pillars that have to advance together, which is what this situation tests.