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.
- Build-tooling contractor
- A legitimate third-party specialist who needs one console and the artefacts behind it for a fixed six weeks.
- Engineering manager sponsoring the work
- Owns the engagement, its scope and its end date, and is accountable for the grant existing at all.
- Service desk engineer
- Fulfils the request under a delivery target measured in hours, using whichever pattern is fastest to execute.
- Identity administrator
- Owns the joiner, mover and leaver process, which was designed around employees who have a payroll record and a leaving date.
- Auditor
- Will ask in three months who had access to that console, on what authority, and when it ended.
Working against it
Present in the same situation, and not on the organisation's side. Named here rather than left implied.
- Attacker holding her credentials Stance Adversarial
- Obtains the contractor's working credentials from an unrelated compromise and tries them against whatever they still 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 grant, one application, one end date
A contractor on an unmanaged laptop is brokered into a single internal console under a grant derived from the engagement record and carrying an expiry. The alternative network route is shown alongside it, and the attacker view traces stolen credentials down both paths to show where each ends.
Step 1 / 6Record who vouches for her
Architectural planes
Annotations
The same architecture, read top to bottom
Contractor's own environment
THIRD PARTYOperated by another organisation under its own termsBuild-tooling contractor · Contractor's laptop · Attacker holding her credentials
- PersonBuild-tooling contractorSix-week engagement, named sponsor
- DeviceContractor's laptopUnmanaged, owned by her firm
- AdversaryAttacker holding her credentials
Reaches this boundary
- BlockedAttacker holding her credentials stopped at Access brokerRefused: expired grant, unknown device
- BlockedContractor's laptop stopped at Session and data controlsCopy out of the isolated session refused
Within this boundary
- RequestBuild-tooling contractor to Contractor's laptopStarts work on her own laptop
Access broker service
MANAGEDOperated or administered on the enterprise's behalfGrant and policy control · Session inspection
Grant and policy control
MANAGEDOperated or administered on the enterprise's behalfAccess broker · Policy engine
- API or gatewayAccess brokerOne named application per grant
- Policy decisionPolicy engineAllow, step up, restrict or expire
Session inspection
MANAGEDOperated or administered on the enterprise's behalfSession and data controls
- Security controlSession and data controls
- Isolated browser session
- Data loss prevention
- Cloud access security broker
- Copy and upload rules
- Security controlSession and data controls
Reaches this boundary
- ContextEngagement record to Policy engineSponsor, scope and end date
- ContextIdentity provider to Policy engineGuest identity and its expiry
- RequestContractor's laptop to Access brokerClientless session to the broker
- ContextContractor's laptop to Policy engineDevice posture: asserted, not measured
- AttackAttacker holding her credentials to Access brokerThe same credentials tried at the broker
Within this boundary
- RequestAccess broker to Policy engineRequest presented for a decision
- RequestPolicy engine to Session and data controlsVerdict and the controls it requires
- ContextPolicy engine to Access brokerGrant expires at the end of day 42
Enterprise control plane
INTERNALOperated by the enterprise itselfEngagement record · Identity provider · Security operations
- Data storeEngagement recordSponsor, scope and end date
- Identity providerIdentity providerGuest identity with an expiry
- Security controlSecurity operationsEvidence for the access review
Reaches this boundary
- ContextBuild-tooling contractor to Identity providerSign-in and a second factor
- TelemetryAccess broker to Security operationsSession and grant events
- TelemetryPolicy engine to Security operationsEvery verdict and the expiry behind it
- TelemetrySession and data controls to Security operationsInspection and data-handling events
Corporate network
INTERNALOperated by the enterprise itselfRemote-access VPN · Finance system
- API or gatewayRemote-access VPNThe route that was not taken
- ApplicationFinance systemNever in scope for this engagement
Build tooling estate
INTERNALOperated by the enterprise itselfBuild pipeline console · Build artefacts
- ApplicationBuild pipeline consoleThe one application in scope
- Data storeBuild artefacts
Reaches this boundary
- RequestAccess broker to Build pipeline consoleBrokered session to one console
- RequestContractor's laptop to Remote-access VPNThe easy answer, an account and a route
- AttackAttacker holding her credentials to Remote-access VPNStolen credentials used on a VPN account
Within this boundary
- RequestBuild pipeline console to Build artefactsConsole reads build artefacts
- AttackRemote-access VPN to Finance systemLateral movement to whatever routing reaches
Contractor's cloud tenant
THIRD PARTYOperated by another organisation under its own termsContractor's cloud storage
- ApplicationContractor's cloud storageHer firm's tenant, not inspectable
Reaches this boundary
- RequestSession and data controls to Contractor's cloud storageInspected uploads to her own tenant
- AttackContractor's laptop to Contractor's cloud storageArtefacts copied out of the session
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.
Text alternative
The request, step by step
Record who vouches for her
The engagement record holds the sponsor, the scope and the end date, and the guest identity is created from it rather than beside it. She authenticates as herself with a second factor. There is now one place that answers who authorised this access and when it should stop.
- Context: Engagement record to Policy engine, “Sponsor, scope and end date”
- Context: Identity provider to Policy engine, “Guest identity and its expiry”
- Context: Build-tooling contractor to Identity provider, “Sign-in and a second factor”
Emphasised at this step: Identity provider.
Grant the minimum, and name it
She starts work on her own laptop and reaches the broker without a client, and the broker presents the request for a decision. The grant names one console rather than the environment it lives in, so a genuine scope change has to be asked for instead of arriving free.
- Request: Build-tooling contractor to Contractor's laptop, “Starts work on her own laptop”
- Request: Contractor's laptop to Access broker, “Clientless session to the broker”
- Request: Access broker to Policy engine, “Request presented for a decision”
Emphasised at this step: Access broker.
Take the device claim for what it is
Her laptop reports posture that the enterprise cannot verify, so the claim is recorded as an assertion and the verdict changes what the session may do rather than pretending the device is trusted. The work happens inside an isolated, inspected session.
- Context: Contractor's laptop to Policy engine, “Device posture: asserted, not measured”
- Request: Policy engine to Session and data controls, “Verdict and the controls it requires”
Emphasised at this step: Session and data controls.
Broker the session instead of routing it
The broker connects outward to the named console, which then reads its own artefacts. No network route is created, so reachability never becomes transitive and nothing else on the estate is one connection away.
- Request: Access broker to Build pipeline console, “Brokered session to one console”
- Request: Build pipeline console to Build artefacts, “Console reads build artefacts”
Emphasised at this step: Build pipeline console.
Govern what may leave
Uploads to her own firm's cloud tenant are inspected against the same data rules, because a contractor keeping notes in her own environment is normal behaviour and the point at which enterprise artefacts leave every control the enterprise operates.
- Request: Session and data controls to Contractor's cloud storage, “Inspected uploads to her own tenant”
Emphasised at this step: Contractor's cloud storage.
Let the end date do the revoking
The grant carries a hard expiry, so on day forty-three the same session stops authorising without anybody filing a removal ticket, and the events that prove when it stopped are already with security operations for the access review.
- Context: Policy engine to Access broker, “Grant expires at the end of day 42”
- Telemetry: Access broker to Security operations, “Session and grant events”
- Telemetry: Policy engine to Security operations, “Every verdict and the expiry behind it”
- Telemetry: Session and data controls to Security operations, “Inspection and data-handling events”
Emphasised at this step: Security operations.
Attempts shown, and where each one stops
Attacker holding her credentials attempts:
- Attack: Attacker holding her credentials to Remote-access VPN, “Stolen credentials used on a VPN account”
- Attack: Attacker holding her credentials to Access broker, “The same credentials tried at the broker”
- Terminated here by Access broker — “Refused: expired grant, unknown device”. The line stops short and takes a bar, not an arrowhead.
Remote-access VPN attempts:
- Attack: Remote-access VPN to Finance system, “Lateral movement to whatever routing reaches”
Nothing in this diagram terminates these attempts. That is deliberate rather than an omission: no control shown here can prevent them, so every one of these lines carries an arrowhead and none carries a bar.
Contractor's laptop attempts:
- Attack: Contractor's laptop to Contractor's cloud storage, “Artefacts copied out of the session”
- Terminated here by Session and data controls — “Copy out of the isolated session refused”. The line stops short and takes a bar, not an arrowhead.
Also shown, outside the walkthrough
- Request: Contractor's laptop to Remote-access VPN, “The easy answer, an account and a route”
Annotations
What the fast answer would have granted
Relationship — Request: Contractor's laptop to Remote-access VPN, “The easy answer, an account and a route”
This is the path of least resistance, drawn so its cost is visible. It answers a routing question, and routing is transitive: once a session is placed on the network, reachability follows topology rather than the engagement scope. Carrying traffic is what the service is for; deciding whether the traffic should exist is a different job.
Why nothing terminates this line
Relationship — Attack: Remote-access VPN to Finance system, “Lateral movement to whatever routing reaches”
No control sits between the network route and a system the contractor was never scoped for, which is what makes this the natural attack in a network-shaped grant. The absence of a terminator here is the finding, not an omission in the drawing.
The same credentials, two months later
Relationship — Blocked: Attacker holding her credentials stopped at Access broker, “Refused: expired grant, unknown device”
The credentials are genuine, so authentication is not what ends this attempt. It ends because the grant behind them has an end date that has passed and the device presenting them is unknown. A grant with no expiry would have left this line reaching its destination.
Expiry ends authorisation, not existence
Relationship — Context: Policy engine to Access broker, “Grant expires at the end of day 42”
The access stops working because a date passed rather than because somebody remembered. That inverts the default in the right direction, and it is not cleanup: the guest identity, its group memberships and whatever records the console created all survive until a lifecycle job removes them.
The refusal that will be argued about
Relationship — Blocked: Contractor's laptop stopped at Session and data controls, “Copy out of the isolated session refused”
This attempt ends at the control rather than at the laptop, and it is the one the contractor will raise. Keeping the artefacts inside the session is the compensating measure for a device nobody can measure, and it costs her the tooling she normally works with.
What the boundary badge is claiming
Boundary “Contractor's own environment” (third party)
The enclosure states that this environment is operated by somebody else, under their patching, their monitoring and their contract. That is not an accusation and it does not stop work happening there. It does mean every posture claim crossing this boundary is an assertion, and assertions are recorded rather than believed.
The unit of access is an application
Component “Access broker”
A grant here names a console, not a subnet, so the blast radius of the engagement is the thing the engagement was for. The price is an inventory somebody has to maintain and a broker on the critical path of a contractor billing by the hour.
One authoritative record, or none
Component “Engagement record”
A ticket records that a request was fulfilled; it does not record who remains accountable afterwards. If the ticket, the directory and the supplier contract each hold a version of the scope and the end date, none of them is authoritative and the access review has nothing to check against.
Before the acronyms arrive
The five 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
Software-defined WAN (SD-WAN)
Read the conceptHow an application-aware overlay picks a path across mixed transport, why that is a routing decision rather than a security one, and what it leaves for something else to do.
-
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
Six 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
Who vouches for this person?
The contractor has no payroll record and no leaving date. What does the access service treat as the authority for her existence?
Employee identity arrives with a lifecycle attached: a start date, a manager, a leaving process that fires whether or not anyone remembers it. A contractor has none of that unless someone builds it. The usual substitute is a ticket, which records that a request was fulfilled but not who remains accountable for the grant afterwards. The alternative is to make the engagement itself the authoritative record, holding the sponsor, the scope and the end date, and to have the identity for the contractor derive from it rather than sit beside it in a spreadsheet. That only works if there is one agreed source; if the ticket, the directory and the supplier contract each hold a version, none of them is authoritative.
What was decided, and what it cost
A named sponsor and an end date are recorded on the engagement and the guest identity is created from that record, at the cost of a step nobody previously had to complete before Monday.
The concept this exercises
Decision 2
What is the minimum she actually needs?
Should the grant name the console she needs, or the environment it happens to live in?
Scoping to the environment is faster to write and never needs revisiting, which is exactly why it is chosen. It also means the grant covers every other thing that shares that environment, including systems the contractor has no idea exist. Scoping to the single console requires somebody to know what the work involves and to name it, and it will be wrong at least once: on day four she needs a second tool to read logs, and the change is a request rather than something already implied. That friction is the mechanism working, but it is still friction, and pretending otherwise is how least privilege gets abandoned in month two.
What was decided, and what it cost
The grant names one console and the artefacts behind it, accepting that a genuine scope change now needs an explicit request instead of arriving free.
The concept this exercises
Decision 3
On whose device, and what can be proven about it?
Her laptop belongs to her firm and cannot be enrolled in the enterprise's management. Does that make the request unanswerable?
Demanding a managed device means shipping and later recovering hardware, which for six weeks costs more than the engagement in effort and usually ends with an unrecovered laptop. Accepting the contractor's own machine means device posture is asserted rather than measured: the supplier says the disk is encrypted and patching is current, and there is no signal that confirms it. The way out is to stop treating the device as trustworthy and change what the session can do instead, keeping the work inside a controlled session so that what reaches the endpoint is pixels rather than artefacts. That has a real cost in usability and in the tooling the contractor is used to.
What was decided, and what it cost
Access is delivered through an isolated, inspected session on her own laptop, with posture recorded as an assertion and treated as one, and a slower working experience accepted as the price.
The concept this exercises
Decision 4
How does she reach it: a network route or a brokered session?
A VPN profile takes minutes and works for everything. What does that convenience actually grant?
A remote-access VPN answers a routing question, and routing is transitive. Once the session is placed on the network, reachability follows the network topology rather than the engagement scope, so the finance system she has never heard of is one connection away from a laptop the enterprise does not manage. Nothing about that is a flaw in the VPN; carrying traffic is what it is for, and deciding whether the traffic should exist is a different job that has to be done somewhere else. Brokering the session per application moves the decision to that other place, at the cost of an inventory of applications and a broker on the critical path of the contractor's day.
What was decided, and what it cost
The VPN profile is not created and the session is brokered to the named console instead, which means the broker's availability becomes the contractor's availability.
The concept this exercises
Decision 5
What may leave the application?
She can legitimately read the artefacts. Should she be able to put a copy in her own firm's cloud storage?
A contractor working across several clients keeps her notes and her tooling in her own environment, and doing so is normal professional behaviour rather than an attack. It is also the point at which enterprise artefacts leave every control the enterprise operates, into a tenant it cannot inspect, subpoena or wipe. Governing that means the service has to see traffic to cloud services and apply data rules to it, which works for the services it can observe and terminates. It does nothing about the copy she types into her own notes, and saying so is more useful than implying the control is complete.
What was decided, and what it cost
Uploads from the session to cloud services are inspected against data rules and copying out of the isolated session is refused, while the team records in writing that transcription is not covered.
The concept this exercises
Decision 6
For how long, and what happens on day forty-three?
The engagement ends on day forty-two. What ends the access if nobody remembers to?
Every removal that depends on a person remembering fails eventually, and it fails silently, which is the worst combination. An expiry attached to the grant inverts the default: the access stops working because its end date passed, and continuing requires a renewal that a named sponsor has to ask for. This is where the honest limit sits. Expiry ends the authorisation, not the account. The guest identity, its group memberships, its audit trail and whatever local records the console created still exist until a lifecycle job removes them, so an organisation that has expiry but no cleanup has moved the problem rather than solved it.
What was decided, and what it cost
The grant carries a hard end date and a renewal that only the sponsor can request, and the team accepts that the dormant guest identity survives until the lifecycle job clears it.
The concept this exercises
How it ended
The outcome
The contractor started on Monday through a brokered, isolated session to one console, on her own laptop, with a grant that expired on day forty-two. She asked for a second tool on day four and got it in an hour, as an explicit change with the sponsor's name on it. On day forty-three the session she had used for six weeks simply stopped authorising, without anybody filing a removal ticket. When her credentials appeared in an unrelated compromise two months later, the attempt against the broker terminated against an expired grant and an unknown device. The same credentials on a VPN profile would have put an unmanaged laptop on the network, where reachability follows topology and the finance system is one connection away.
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 guest account still exists until someone runs the expiry job
- Device posture on her laptop was asserted by her firm and never measured
- Nothing prevents her transcribing what she can legitimately read on screen
- The console's own permissions still grant more than the engagement needed
- A renewal will be approved faster than the first grant, and by fewer people
- The broker is now on the critical path for a contractor billing by the hour
Reading it back
What generalises
The request in this scenario is reasonable and the work is real, which is what makes it a useful test. Nothing here is prevented by being suspicious of the contractor. The failure mode arrives later, from a grant shaped for the convenience of the person fulfilling it on a Monday morning.
Two things get decided in that first hour, usually without anyone noticing they were decisions. The first is the unit of access. A network route is quick to issue and never needs revisiting, because it covers everything that shares the topology, including systems the contractor could not name. An application-shaped grant covers the work and nothing else, and it will be wrong at least once, which is the mechanism functioning rather than failing. The second is the end condition. A calendar reminder and a note in a ticket are both promises that a human will act, and promises of that kind fail silently, months after the person who made them changed teams.
Attaching the end date to the grant is the part worth taking away, because it changes what happens by default. Access that expires does not depend on anybody remembering, and continuing it requires a named sponsor to ask again, which is a much better conversation than a quarterly review trying to work out who a dormant account belonged to. It is also not the whole job, and it is worth being precise about that: an expiry ends authorisation, and the account, its group memberships and its traces persist until something deliberately removes them.
The unmanaged device is the honest compromise in the design. Shipping and recovering hardware for six weeks costs more than the engagement, so the posture claim comes from her firm and there is no signal that confirms it. The response is not to pretend the claim is a measurement but to spend less on trusting the endpoint: keep the artefacts inside a controlled session, inspect what leaves, and accept that a determined professional can still transcribe what she is legitimately allowed to read. That residue is not a gap in the architecture. It is the part of the problem that access control was never going to answer, and the contract and the working relationship carry it instead.
Sources
-
NIST SP 800-207
Treats authentication and authorisation of subject and device as discrete per-session functions rather than a property of the network a session lands on.
-
NIST SP 800-53 Rev. 5
Security and Privacy Controls for Information Systems and Organizations
The account management and least privilege control families are where the expiry, review and revocation obligations in this scenario actually live.
-
NIST SP 800-207A
Describes segmentation by identity rather than by network parameters, which is the difference between a brokered grant and a routed one.
-
NIST SP 1800-35
Implementing a Zero Trust Architecture
Reference implementations built with commercial products, useful for seeing what a per-application grant costs to operate.
-
NCSC
Design principles covering identities, device health and the instruction not to trust any network, including your own.