askvity

What does ABAC mean?

Published in Access Control 4 mins read

ABAC stands for Attribute-based access control. It's an authorization model that uses attributes to grant access to resources.

Understanding Attribute-Based Access Control (ABAC)

ABAC is a dynamic access control method that allows for fine-grained control over who can access what resources, under what conditions. Instead of relying on roles (Role-Based Access Control or RBAC), ABAC considers various attributes to make access decisions.

Key Components of ABAC:

Component Description Example
Attribute A characteristic or property of a subject, resource, action, or environment. Subject: user_id, Resource: file_type, Action: read, Environment: time_of_day
Subject The entity requesting access (e.g., user, application). A doctor trying to access a patient's record.
Resource The object being accessed (e.g., file, database record, API endpoint). A specific patient's medical chart.
Action The operation being performed on the resource (e.g., read, write, delete). Reading a patient's chart.
Environment Contextual factors surrounding the access request (e.g., time, location, device). The doctor accessing the chart from a hospital computer during business hours.
Policy A set of rules that define how access is granted or denied based on attributes. "Only doctors can read patient records."
Policy Engine The component that evaluates the attributes against the policies and makes the access decision. The system that checks if the requesting subject (doctor) has permission to perform the action (read) on the resource (patient record) based on the current environment (hospital, time).

How ABAC Works:

  1. Access Request: A subject (e.g., user) requests access to a resource.

  2. Attribute Collection: The ABAC system gathers relevant attributes of the subject, resource, action, and environment.

  3. Policy Evaluation: The policy engine evaluates these attributes against pre-defined policies.

  4. Access Decision: Based on the policy evaluation, the system grants or denies access.

ABAC vs. RBAC:

Feature RBAC (Role-Based Access Control) ABAC (Attribute-Based Access Control)
Access Control Basis Roles assigned to users. Attributes of the subject, resource, action, and environment.
Granularity Coarse-grained (role-based). Fine-grained (attribute-based).
Flexibility Less flexible, requires role changes. Highly flexible, adapts to changing conditions.
Complexity Simpler to implement initially. More complex to configure and manage policies.
Example Users with the "administrator" role have full access. Users can access files based on their department, project, and security clearance.

Benefits of ABAC:

  • Fine-grained control: Granular access control based on attributes allows for highly specific permissions.
  • Dynamic access: Access decisions can be based on real-time conditions and changing attributes.
  • Simplified management: Policies can be centralized and managed more efficiently.
  • Improved security: Reduces the risk of unauthorized access by enforcing precise rules.

Example Scenario:

Imagine a hospital system. Using ABAC:

  • A doctor (subject) might be allowed to view (action) a patient's medical record (resource) only if the doctor is assigned to that patient's care team and it's during normal business hours (environment). The doctor_specialty attribute might also need to match the patient_condition attribute in order to access certain sensitive records.

Summary

In summary, Attribute-Based Access Control (ABAC) offers a powerful and flexible approach to authorization, moving beyond traditional role-based systems to leverage a wide range of attributes for granular and dynamic access control decisions.

Related Articles