← Guides
Fundamentals · Intermediate

RBAC vs ABAC vs ReBAC: Choosing an Authorization Model

By SWI Community Team · Updated 2026-06-12 · 8 min

Once a user is authenticated, authorization decides what they can do. The three dominant models are RBAC, ABAC, and ReBAC, and most real systems blend them.

RBAC (role-based)

Access is granted through roles (admin, editor, viewer). Simple, well understood, and easy to audit, but it tends toward role explosion as you add exceptions and fine-grained needs.

ABAC (attribute-based)

Decisions use attributes of the user, resource, action, and context (department, region, time, sensitivity). Far more expressive than roles, but policies can get complex and hard to reason about.

ReBAC (relationship-based)

Access flows from relationships between objects, the model behind Google Zanzibar. Ideal for sharing, hierarchies, and nested ownership ("can this user view this document because they belong to its parent folder's team"). It needs a relationship store and careful modeling.

How to choose

  • Simple apps with clear roles: RBAC.
  • Rules driven by attributes and context: ABAC.
  • Sharing, hierarchies, multi-tenant graphs: ReBAC.

Many teams externalize this to a dedicated engine. Browse authorization vendors and compare OpenFGA vs Cerbos.

Where to start

Read implementing RBAC and RBAC to ReBAC.