Zanzibar is a relationship-based authorization model that represents permissions as data. Instead of hard-coding access rules, a system stores facts such as “user X is a member of team Y” or “team Y can view document Z,” then evaluates whether a request is allowed by traversing those relationships. This makes it well suited to fine-grained authorization in SaaS, multi-tenant platforms, and APIs where access depends on ownership, sharing, group membership, or nested resources.
In security operations, Zanzibar-style designs help centralize authorization logic, which can improve auditability and reduce scattered permission checks in application code. Defenders use them to enforce least privilege, tenant isolation, and consistent deny-by-default behavior. The same centralization also makes mistakes more consequential: a stale tuple, missing relationship, or bad data migration can overgrant access across many workflows. For that reason, teams must treat permission facts like sensitive security data and validate changes carefully.


