Glossary
Attribute-based access control (ABAC) is an authorization model that makes access decisions dynamically, based on attributes of the user, the resource, the action, and the context, rather than on fixed roles alone. It enables fine-grained, conditional access rules like "allow managers in the finance department to approve expenses under $10,000 during business hours."
Where RBAC asks only "what role does this user have?", ABAC can weigh many factors at once, making it far more flexible for nuanced access requirements.
ABAC evaluates policies expressed in terms of attributes:
A policy engine evaluates these attributes against rules for each request and returns an allow or deny decision. Because the decision is computed from current attributes, ABAC handles conditional and contextual access that static roles can’t.
The two are complementary more than competing. RBAC is simpler and easier to audit but rigid; ABAC is flexible and expressive but more complex to design and reason about. RBAC answers "what role?"; ABAC answers "what are all the relevant conditions?" Many organizations use RBAC for the broad strokes and ABAC for the nuanced, contextual rules, for example, roles for baseline access plus attribute policies for sensitive actions or risk-based conditions. ABAC also aligns well with zero trust, since it can incorporate device, location, and risk attributes into every decision.
ABAC’s strength is granularity and context-awareness without role explosion, one attribute-based policy can replace many narrow roles. Its challenge is complexity: designing, testing, and reasoning about attribute policies is harder than managing roles, and it requires reliable attribute data to evaluate. Poorly designed ABAC can become opaque, making it hard to answer "who can access this and why?" This is why ABAC is often implemented through a dedicated policy engine that centralizes and makes the rules auditable.
What is ABAC?
An access-control model that makes decisions based on attributes of the user, resource, action, and context, enabling fine-grained conditional rules.
How is ABAC different from RBAC?
RBAC grants access by fixed role; ABAC evaluates multiple attributes and context dynamically, allowing more nuanced, conditional access.
What are the challenges of ABAC?
It’s more complex to design, test, and reason about than roles, and it depends on reliable attribute data.
Can ABAC and RBAC be used together?
Yes: many systems use RBAC for broad access and ABAC for nuanced, contextual, or risk-based rules.
What kinds of attributes does ABAC use?
Subject attributes (department, clearance), resource attributes (sensitivity, owner), action attributes, and context (time, device, location, risk).
Why does ABAC align with zero trust?
It can factor device, location, and risk attributes into every access decision, supporting continuous, context-aware verification.
Is ABAC harder to manage than RBAC?
Yes: attribute policies are more complex to design, test, and reason about, and they require reliable attribute data to evaluate correctly.
When should you choose ABAC?
When access depends on multiple conditions or context that fixed roles can’t capture without proliferating into unmanageable numbers.
Related: Authorization · Role-Based Access Control (RBAC) · Relationship-Based Access Control (ReBAC) · Fine-Grained Authorization (FGA) · Zero Trust