What is relationship-based access control (ReBAC)? | Transmit Security

Glossary

What is relationship-based access control (ReBAC)?

Relationship-based access control (ReBAC) grants access based on relationships between users and resources.
by Transmit Security

Relationship-based access control (ReBAC) is an authorization model that grants access based on the relationships between users and resources: for example, "a user can edit a document if they are its owner, or a member of a team the document is shared with." It excels at fine-grained, hierarchical, and shared-resource permissions that role- or attribute-based models handle awkwardly.

ReBAC gained prominence through large-scale systems (notably Google’s Zanzibar, which powers permissions across Google’s products) and is now the model behind many modern fine-grained authorization services.

How ReBAC works

ReBAC represents permissions as a graph of relationships between entities: users, groups, resources, and the connections among them. Access is decided by traversing these relationships, is there a path from this user to this resource that grants the requested permission? For example, "user is a member of a group that has editor access to a folder that contains this document" resolves to edit access via the relationship chain. This graph model naturally handles nesting, inheritance, and sharing.

Why ReBAC is powerful

ReBAC shines exactly where RBAC and ABAC struggle: fine-grained, per-resource permissions and complex sharing hierarchies. Think of a document platform where each file can be shared with specific users, groups, or teams, with inherited folder permissions, expressing that with roles would require an unmanageable explosion of them, but it maps cleanly to relationships. ReBAC is the model of choice for applications with rich sharing and collaboration semantics, and it scales to billions of objects, as Zanzibar demonstrated.

ReBAC and fine-grained authorization

ReBAC is closely tied to the rise of fine-grained authorization (FGA) as a discipline and product category. Modern FGA services often use a ReBAC (Zanzibar-inspired) model to answer per-resource authorization questions at scale and low latency. For developers, this means offloading complex permission logic to a purpose-built service rather than encoding tangled relationship checks throughout application code.

When to use ReBAC

ReBAC is worth adopting when access depends on relationships (ownership, membership, sharing, hierarchy) especially at fine granularity and large scale. For simpler needs, RBAC may suffice, and for attribute-driven conditions, ABAC fits. Many real systems blend models, but where rich, per-object sharing is central, ReBAC is usually the right foundation.

Frequently asked questions

What is ReBAC?

An authorization model that grants access based on relationships between users and resources, ideal for fine-grained and shared-resource permissions.

How does ReBAC work?

It models permissions as a graph of relationships and decides access by traversing them (e.g., user → group → folder → document).

What is ReBAC good for?

Fine-grained, per-resource permissions and complex sharing hierarchies that would cause role explosion under RBAC.

What is Zanzibar?

Google’s large-scale authorization system that popularized the ReBAC model and inspired many modern fine-grained authorization services.

Related: Fine-Grained Authorization (FGA) · Role-Based Access Control (RBAC) · Attribute-Based Access Control (ABAC) · Authorization

Request a Demo

By clicking the button, you agree to the Terms and Conditions