fine grained authorization as a service: store relationships, ask permission questions, get answers in milliseconds.
OpenFGA is an open source authorization server built on the relationship based model described in Google's Zanzibar paper. Rather than scattering permission logic through application code, you store relationships such as a user being the owner of a document, describe the object types and relations that exist in an authorization model, and then ask the server whether a given user may perform a given action on a given object. It answers Check questions for a single decision, and ListObjects or ListUsers questions to filter what a user can see. It is a Cloud Native Computing Foundation project with official SDKs for JavaScript, Go, Python, Java and .NET, and it exposes both an HTTP and a gRPC interface.
OpenFGA's own default is to run with no authentication at all, which leaves the entire authorization API open to anyone who can reach the port. This image never runs that way: it enforces pre shared key authentication, disables the unauthenticated development console, and generates a unique 256 bit API token on the first boot of every instance, written to a root only file. The API, the gRPC endpoint, the metrics endpoint and the database are bound to the loopback address, with nginx terminating TLS as the only door reachable from the network. A co located PostgreSQL keeps stores, models and relationships durable across restarts, a paired deploy guide walks through the whole workflow, and 24/7 cloudimg support is included.