Jon Moshier / Notes / Relationship-Based Access Control seedling
Note · From the Notebook

Relationship-Based Access Control

An authorization model where permissions are derived from a graph of relationships between subjects and objects rather than from roles or attributes.

[!todo] Seed note. A starting point, not a finished note yet.

Relationship-based access control (ReBAC) decides access by asking whether a path exists in a graph of relationships, not by matching a user’s role (RBAC) or evaluating attribute rules (ABAC). A permission like “can view this document” is answered by walking edges: this user is a member of a group, that group is an editor of a folder, the document lives in that folder. The model’s strength is that hierarchy, sharing, inheritance, and nesting all become graph reachability instead of bespoke policy code, which is why it fits collaborative products where objects are shared in arbitrary shapes. Its cost is that a single check can require chasing many edges across large, deeply nested sets, which is the performance problem Google Zanzibar was built to solve. Seeded from Google Zanzibar.

← All notes Read recent essays →