AuthZEN.guide

AuthZEN vs XACML, OPA, Cedar and OpenFGA

By David Brossard · Last updated


Short answer: AuthZEN is an API standard. XACML/ALFA, Rego, Cedar and OpenFGA models are mainly policy languages or engines. They are complementary: any of these engines can sit behind an AuthZEN endpoint, so applications integrate once and the policy technology stays swappable.

Comparison at a glance

What it standardizesStewardModelRelationship to AuthZEN
OpenID AuthZENThe PEP↔PDP API (JSON over HTTPS), batch, search, discoveryOpenID FoundationAny (language-neutral)n/a
XACML / ALFAPolicy language, architecture (PEP/PDP/PIP/PAP) and request/response formatOASIS (XACML); ALFA by AxiomaticsABAC / PBACXACML defined the architecture AuthZEN builds on. ALFA/XACML PDPs can expose AuthZEN.
OPA / RegoA general-purpose policy engine and language with its own REST APICNCF projectPolicy-as-codeOPA can be wrapped or extended to answer AuthZEN requests.
CedarPolicy language and evaluation semanticsOpen source, originated at AWSABAC + RBACCedar-based services such as Amazon Verified Permissions can answer AuthZEN requests.
OpenFGARelationship (Zanzibar-style) authorization engine and modeling languageCNCF projectReBACOpenFGA exposes AuthZEN endpoints.

AuthZEN vs XACML

XACML (OASIS) standardized the externalized authorization architecture (PEP, PDP, PIP, PAP), a policy language, and a request/response format, later with JSON and REST profiles. AuthZEN keeps the PEP/PDP split but deliberately standardizes only the wire API, with a deliberately small subject/action/resource/context shape, plus batch and search operations modern applications need. If you run an XACML or ALFA PDP, AuthZEN is the developer-friendly front door to it.

AuthZEN vs OPA (Rego)

OPA is a policy engine. Its Data API is OPA-specific. AuthZEN makes the call site vendor-neutral: a gateway or app that speaks AuthZEN can switch between OPA-based, Cedar-based or ALFA-based PDPs without code changes.

AuthZEN vs Cedar

Cedar is a policy language. Cedar's principal/action/resource/context model maps naturally to AuthZEN's subject/action/resource/context, which makes Cedar engines straightforward AuthZEN PDPs.

AuthZEN vs OpenFGA and Zanzibar-style ReBAC

ReBAC engines answer "does user X have relation R to object Y?". That question maps onto an AuthZEN evaluation, and the AuthZEN Search APIs map onto ReBAC list operations such as "list objects".

Where to go next