Skip to content
Hameed's dev blog

Blog

IAM Chapter 6: The Whole Machine

·4 min read·---
Distinct components working as one system.jpg

Distinct components, working as one system.

On this page

Part of the IAM study series.

A short stop before Kerberos, to put Part 1 and Part 2 together.

RBAC and ABAC are models: what the rule looks like. PEP, PDP, PIP, and PAP are architecture: who does the work. They answer separate questions, and the components run whichever model you wrote.

John Opens drawing-7742

At grant time, months earlier, nothing happens while John is clicking:

  1. HR records job code DE-03 in department WING-ASSY.
  2. IGA assigns the business role Design Engineer – Wing Assembly from that HR data.
  3. The business role brings its application roles in PLM and TeamCenter.
  4. The result is an entitlement: John is in PLM-WingEngineers.

Separately, export control writes a policy in the PAP, tests it, approves it, and publishes it:

PERMIT read ON drawing
  WHEN  "wing-design-engineer" IN subject.roles        ← RBAC
  AND   resource.classification == "export-restricted" ← ABAC
  AND   subject.clearance.validUntil > now             ← ABAC
  AND   environment.country IN approvedCountries       ← ABAC

At access time, Thursday 14:32, all of this happens in one request:

  1. John requests the drawing, and the PEP in front of PLM's API intercepts it.
  2. The PEP asks the PDP, sending subject, action, and resource.
  3. The PDP fetches each fact from the PIP that owns it: country and device from the network, clearance from HR, classification from PLM, roles from the directory.
  4. All four conditions hold, so the PDP answers PERMIT.
  5. The PEP lets the request through, and PLM returns the drawing.

Change any one fact and the same policy answers DENY, with nobody editing anything.

People talk about RBAC and ABAC as rival models. In a real system the role is just another attribute. The directory is another PIP, and "wing-design-engineer" is one condition among four. They don't sit side by side: the role is an input to the policy.

What Each Piece Is For

QuestionAnswered byWhen
Should John ever touch wing drawings at all?RBAC, through his jobGrant time
May he touch this drawing, right now, from here?ABAC, through the policyAccess time
Who asks and enforces?PEP, the guardAccess time
Who decides?PDP, the control roomAccess time
Where do the facts come from?PIP, the phone numbersAccess time
Who wrote and approved the rule?PAP, the officeBefore any of it
Who granted the role, and who reviews it?IGAGrant time

Drop One Piece, and Something Specific Breaks

MissingWhat breaks
RBACThe joiner has nothing on day one, and there's no list to recertify
ABACExport control can't be enforced, because context is invisible
PEP/PDP splitThe rule drifts across 200 apps, each a different version
PAPWhoever runs the engine can grant themselves anything, and it audits clean
PIPThe PDP keeps its own stale copy of the facts
IGANobody can answer what John has, or take it away

So far John has simply been logged in. The next part looks at how that actually happens.

🔴 CHECKPOINT: Study Notes

IAM Chapter 6: The Whole Machine, handwritten one-page map of RBAC, ABAC, IGA and the policy components from grant time to access time

← Previous: Deciding at the Door · Back to the series start · Next: Kerberos →

Notes from a technical product leader on product management, identity & access management, and agentic AI — from 12 years of building enterprise software.