Cerbos Authorization for FusionAuth | Cerbos

Cerbos authorization for FusionAuth

Use FusionAuth's flexible user data model, application roles, and custom data fields to drive fine-grained authorization decisions in Cerbos.

Demo Example project

Per-app role policies

Use FusionAuth's per-application role assignments to write authorization rules scoped to each application registration.

Custom data in policies

Reference FusionAuth user.data and registration.data fields directly in Cerbos policy conditions.

Multi-tenant ready

Combine FusionAuth tenant isolation with Cerbos scoped policies for per-tenant authorization logic.

How Cerbos works with FusionAuth

FusionAuth handles authentication, confirming who a user is. Cerbos handles authorization, deciding what that user can do. Together they give you a complete access control stack without coupling identity logic to business rules.

Cerbos lets you write fine-grained, context-aware authorization policies in human-readable YAML. Policies are decoupled from application code so product and security teams can update permissions without a release cycle.

Because Cerbos runs as a stateless Policy Decision Point (PDP) next to your application, authorization checks are sub-millisecond and scale horizontally with your infrastructure.

Policy-as-code Human-readable YAML policies managed like source code Scalable PDP Stateless policy decision point with sub-millisecond latency Centralized management Manage, test, and deploy policies from a single control plane

Authorization powered by FusionAuth's flexible data model

FusionAuth gives developers full control over their user data model: per-application role assignments, custom data fields on users and registrations, multi-tenant isolation, and JWT lambdas for claim customization. Cerbos uses that rich identity data to make fine-grained authorization decisions at the resource level.

How it works

  1. Users authenticate through FusionAuth, your application receives a JWT containing application roles, group memberships, and custom claims populated by lambdas.
  2. Your application extracts identity data and passes it to Cerbos as principal attributes, alongside the target resource and action.
  3. Cerbos evaluates policies that reference FusionAuth roles, custom user data, tenant context, and resource properties.
  4. Your application enforces the result, keeping authorization logic in declarative policies rather than application code.

Beyond simple role checks

FusionAuth's role system is application-scoped, which is a good starting point. But many applications need authorization decisions that depend on the specific resource being accessed, the relationship between the user and the resource, or contextual data like time or location. Cerbos policies express these rules using the identity data FusionAuth provides.

Get started

Watch our demo video or explore the Express + FusionAuth + Cerbos example project to see the integration in action.

FAQ

Can Cerbos use FusionAuth application registrations?

Yes. FusionAuth assigns roles per application registration, so a user can have different roles in different applications. Your application passes the registration-specific roles to Cerbos, and policies can scope authorization decisions to the correct application context.

How does Cerbos work with FusionAuth's user.data fields?

FusionAuth lets you store arbitrary key-value data on user objects and application registrations. When included in JWT claims via lambdas, this custom data can be passed to Cerbos as principal attributes and used in policy conditions.

Does Cerbos support FusionAuth multi-tenant setups?

Yes. FusionAuth's tenant ID and tenant-specific user data can be passed as principal attributes to Cerbos. Policies can then enforce different access rules per tenant without duplicating policy logic.

Cerbos + FusionAuth