Blog
Para quem já sabe o básico e quer ir fundo. Aqui o assunto é como os modelos funcionam em produção: memória, roteamento, ferramentas, agentes. O lado técnico que pouca gente explica direito.
RBAC NIST model (Sandhu 1996): users → roles → permissions. Como modelar em SQL (3 tabelas), hierarquia de roles, separation of duties. Por que falha em multi-tenancy real e em "share este doc com fulano".
Attribute-Based Access Control: policy = f(subject, resource, action, environment). NIST SP 800-162. XACML (verbose XML, legado). Quando ABAC vence RBAC: atributos dinâmicos (dept, location, time-of-day, sensitivity).
Google Zanzibar (Pang et al, USENIX ATC 2019): relação como dado, namespaces, userset rewrites, consistency via Zookies. Como Google YouTube/Drive/Photos rodam na mesma engine. Por que ReBAC é a evolução natural.
SpiceDB (authzed.com): a Zanzibar implementation mais madura, open-source. Schema language, relationships API, permission check, lookupResources. Como modelar Drive-like, multi-tenant SaaS, hierarchies. Performance (sub-ms checks).
OpenFGA (Auth0, agora CNCF Sandbox): alternativa ao SpiceDB, mesma raiz Zanzibar. Modeling language menos verbose, Playground UI, batch checks. Quando escolher OpenFGA vs SpiceDB. Auth0 FGA cloud version.
Open Policy Agent (CNCF Graduated 2021): Rego language (Datalog-inspired), gatekeeper para K8s admission, Envoy ext_authz, Terraform sentinel-like. Quando OPA é melhor que SpiceDB (não-relational policies, DevSecOps).
Cedar (AWS, open-source 2023): Rust-implemented policy language, formally verified, RBAC + ABAC + ReBAC mistos. Amazon Verified Permissions service. Vs OPA/Rego (mais simples, type-safe). Adoção 2026.
O caso real de SaaS B2B: org → team → project → resource, com sharing cruzado, guests externos, role customization por org. Modelo no Postgres (RLS) vs ReBAC engine. Auth0 FGA, Permit.io, AuthZed para B2B.