Authorization Models concept page covering ACL, RBAC, ABAC, ReBAC (Google Zanzibar), Policy-as-Code (OPA Rego, Cedar), tenancy isolation, Postgres RLS, with tool comparison (SpiceDB, Permify, OpenFGA, Cerbos, Oso, Casbin). Includes 5 scenarios: RBAC role check, ABAC context-aware policy with time/location/MFA, ReBAC graph traversal Google Drive style, Postgres RLS tenant isolation, and tools comparison decision tree. Two ADRs on RBAC vs ABAC vs ReBAC choice and app-authz vs RLS defense in depth.
Authorization evaluates whether an authenticated subject may perform an action on a resource under current policy. RBAC, ABAC, and relationship-based rules are different policy inputs, not substitutes for request-time enforcement.
| Component | Responsibility |
|---|---|
subject | Authenticated Subject |
policy-enforcement | Policy Enforcement Point |
policy-decision | Policy Decision Point |
role-store | Roles and Permissions |
attribute-store | Subject, Object, and Environment Attributes |
relationship-store | Relationship Tuples |
resource | Protected Resource |
audit-log | Decision Audit Log |
policy-admin | Policy Administration |
attacker | Cross-Tenant Caller |
Topology edges represent authenticated or otherwise explicit communication paths. Responses reuse those physical paths in reverse; no response-only or bypass edges are added.
deny-by-default — Deny by default at the enforcement pointA missing rule, unknown attribute, or evaluation error is not an allow; every protected operation reaches a complete policy check.
rbac-decision — RBAC decisionRoles collect permissions and can simplify stable job-function policy, but tenant and resource context still belong in the enforcement decision.
abac-decision — ABAC decisionABAC evaluates subject, object, operation, and environment attributes against policy; stale or untrusted attributes cannot silently authorize.
rebac-decision — Relationship-based decisionA relationship graph answers questions such as viewer-of document through group membership while preserving tuple namespace and consistency requirements.
cross-tenant-denial — Tenant context is part of every decisionA valid user or role in one tenant does not authorize the same object identifier in another tenant.
revocation-consistency — Revocation requires bounded decision stalenessDistributed authorization caches define freshness semantics so a revoked grant is not indefinitely accepted after the protected content changes.
policy-outage — Policy outage fails closedIf a required decision cannot be obtained, the enforcement point does not turn infrastructure failure into privilege escalation.
check-and-use — Bind authorization to the protected operationA decision on one object version cannot be reused after an attacker swaps the target; enforcement loads or locks the authoritative resource identity.
Введите числа или выберите пресет