liveBook · Manning

Separation of concerns

As explained in Authorization in Action

Separation of concerns is a design principle that divides a system into parts with distinct responsibilities and limited overlap.

When access rules are scattered across application code, services can enforce inconsistent permissions and make changes difficult to audit. Separation of concerns assigns enforcement, decision-making, policy management, and contextual data to distinct responsibilities. section 4.5.5 section 4.6

A reference authorization architecture separates four roles:

  • Policy Enforcement Point (PEP) intercepts requests and enforces the resulting decision. section 4.4
  • Policy Decision Point (PDP) evaluates policies and returns an access decision. section 4.4
  • Policy Administration Point (PAP) creates and manages policies. section 4.4
  • Policy Information Point (PIP) supplies contextual attributes from identity, time, network, and other systems. section 4.4

Changing an access rule safely

When Carol updates access to ACMEProject, the policy can be reviewed, tested, deployed, and audited without changing application code. The same rule can then serve multiple services, while decisions remain traceable to policy and contextual data. section 4.5.5

Figure 4.2 Authorization reference architecture showing how access decisions are made. The Policy Enforcement Point (PEP) intercepts Alice’s request to ACMEProject and sends it to the Policy Decision Point (PDP). The PDP evaluates the request using policies from the Policy Administration Point (PAP), managed by Carol, and retrieves context from the Policy Information Point (PIP), which sources attributes from systems such as identity providers, time servers, and network telemetry. The PDP returns a decision, which the PEP enforces in real time.

Follow the request from Alice through the PEP and PDP, including policy retrieval from the PAP, context retrieval from the PIP, and real-time enforcement. section 4.4

How Authorization in Action covers it

How deep it goes
Defines four architectural components and their benefits, while stopping short of prescribing one implementation.
Examples
Uses Alice’s ACMEProject request, Carol’s policy update, Team Reports access, and identity, time, and network context.
What it assumes
Assumes basic identity and authentication concepts while distinguishing authentication from contextual authorization decisions.
What you can do after
Operate authorization as independently reviewable, consistently enforced, auditable policy rather than duplicated application logic.
How it connects
Connects authorization with authentication, policy, attributes, roles, entitlements, contextual data, and the PARC decision model.

Also explained in

Compare how 22 books explain separation of concerns →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Authorization in Action. The section links point to the parts of the book it draws on.