Skip to content

Attribute-Based Access Control (ABAC)

Attribute-Based Access Control (ABAC) is the most sophisticated and flexible authorization model available. Unlike RBAC, which relies on static job labels, ABAC evaluates access in real-time based on a “Policy-as-Code” engine. By analyzing the characteristics (Attributes) of the Subject, the Resource, the Action, and the Environment, ABAC enables complex, multi-dimensional security rules—such as “Allow regional managers to view financial records only from managed devices during local business hours within their assigned geography.”

ABAC

Dynamic Policy
Core Mission
Contextual Enforcement. Moving beyond memberships to real-time evaluation of attributes, allowing for automated, fine-grained decisions that adapt to changing risk and business conditions.
Like an Intelligent Doorman: A standard doorman (RBAC) only checks if you have a specific gold key. An intelligent doorman (ABAC) looks at who you are, what time it is, what you're trying to carry into the building, whether your supervisor is present, and if there are currently any active security alerts—even if you have the key.
Regulated Finance / Healthcare / Multi-Cloud Governance

In an ABAC architecture, decisions are rendered by combining four distinct categories of signals into a single truth.

CategoryAttribute ExamplesStrategic Question
SubjectClearance level, Department, Manager, Seniority.Who is making the request?
ResourceClassification, Owner, Lifecycle State, Tags.What is being accessed?
ActionRead, Export, Delete, Approve, Purchase.What is being done?
EnvironmentIP Address, Time of Day, Device Risk Score, Geo.What is the current context?

ABAC relies on a distributed architecture that separates the enforcement point from the decision logic and data sources.

sequenceDiagram
    participant User
    participant PEP as Enforcement (PEP)
    participant PDP as Decision (PDP)
    participant PIP as Attributes (PIP)
    
    User->>PEP: Access Request
    PEP->>PDP: evaluate(Subject, Context)
    PDP->>PIP: Fetch Missing Data (e.g. Org Chart)
    PIP-->>PDP: Returned Attributes
    PDP->>PDP: Process Policy Logic
    PDP-->>PEP: PERMIT (with Obligations)
    PEP-->>User: Grant Access
1

Intercept & Formulate

The Policy Enforcement Point (PEP) intercepts the raw request. It wraps the identity context and the resource intent into a structured query for the centralized decision engine.

2

Hydrate & Evaluate

The Policy Decision Point (PDP) fetches any missing attributes from across the ecosystem (PIPs). It then evaluates the "Total Context" against declarative policies (e.g., Rego or XACML).

3

Enforce & Log

The PDP returns a final decision (Permit/Deny) along with potential "Obligations" (e.g., mandatory audit logging). The PEP enforces this decision at the application or API layer.


Modern ABAC is typically implemented using centralized policy engines like the Open Policy Agent (OPA).

# Simplified ABAC Policy for Finance
package authz
default allow = false
# Allow access if:
# 1. User is in the finance department
# 2. Resource classification is 'public' OR user has 'secret' clearance
# 3. Access is during business hours
allow {
input.user.department == "finance"
is_authorized_for_classification(input.user, input.resource)
is_business_hours
}

Master the implementation of dynamic, policy-driven security.