Skip to content
All papers

Zanzibar: Google's Consistent, Global Authorization System

Ruoming Pang, Ramon Caceres, Mike Burrows, et al.2019USENIX ATC 2019

Read it on usenix.org(opens in a new tab)

Why this one

Most authorization systems start as if statements and become folklore. Zanzibar is the paper to read when you want permissions to be a product surface, not a pile of checks hidden in services. The key move is modeling access as relationships between users, objects, and groups, then making those checks run against a globally replicated system without lying about freshness. People often copy the graph idea and miss the harder part: the consistency token. If a user removes someone from a document, the next permission check must not race against an old replica and let the old access through. Read this after Spanner: Google's Globally-Distributed Database and Time, Clocks, and the Ordering of Events in a Distributed System. It shows what their time and consistency ideas buy you in a real API that every engineer can understand.

What to take away

  • Authorization tuples turn ACLs, groups, ownership, and sharing into one queryable relationship model.
  • Zookies let clients ask for checks that are at least as fresh as a known write.
  • The paper separates policy semantics from serving mechanics, which is why the design scales across products.

Reads with