Skip to content
SynthWorldDeterministic identity benchmarks
Esc
navigateopen⌘Jpreview
On this page

Enterprise authorization with OPA and an AuthZEN-style adapter

This frozen external-consumer experiment asks whether one authorization policy can consume released SynthWorld 0.16.0 artifacts through an AuthZEN-style request boundary and preserve the scoreable authorization behaviour across two fictional organizations. Britannia is the calibration topology. Aurelia uses a different input schema that the mapping algorithm was not written against, but these two author-related inputs are not a representative generalization sample.

The experiment is recorded in Discussion #147 and published as the immutable release enterprise-authorization-opa-authzen-0.16.0-2. It is an unsupported evidence record, not a maintained SynthWorld adapter, AuthZEN conformance result, product certification, vendor comparison, or claim that the policy is suitable for production.

Experiment boundary

The experiment installed idcognito-synthworld==0.16.0 as a released dependency. It did not modify SynthWorld or import repository examples or tests. Its workflow kept benchmark generation, the system under test, submission sealing, and scoring as distinct capabilities:

Britannia and Aurelia topology YAML
    -> experiment-owned deterministic mapping
    -> released SynthWorld compilation
    -> physically split public and evaluator artifacts
    -> experiment-owned OPA policy and AuthZEN-style adapter
    -> raw responses and typed sealed submissions
    -> isolated offline SynthWorld scoring

The projector received only the split public deliverable and wrote the derived policy and request inputs used by OPA, the adapter, and the system-under-test runner. None of those capabilities had an evaluator mount; the offline scorer was the only evaluator reader. A deliberate regression exposed evaluator paths to both the projector and runner; the isolation checker rejected both configurations.

Run identity

Field Recorded value
Experiment agent-auth-3, revision 1.0.0
Authoritative publication enterprise-authorization-opa-authzen-0.16.0-2
Source-file-set SHA-256 cc3cf9a09c254ad311361f1ec206a8462ead1fa26a366a56dc4d4014d728fb8b
SynthWorld package idcognito-synthworld==0.16.0
SynthWorld wheel SHA-256 dfe584e3ac3f4f5a3d55e389797cc9a1bac049f9bc78c0b4547257185d213480
Experiment seed 20260817
Britannia topology SHA-256 29ea8dd155ceed277eedf3f7261f0ba6844ff5a3e6c5a9c70164ae78b80871d1
Aurelia topology SHA-256 5a7f9b141f6ffa1e1007f8e2d311abbc33f84e7a4326f477b6923fe05bf07f82
Open Policy Agent 1.4.2, build commit 03da822be92592b36c8ae246d41d421a03df95e2
OPA image digest sha256:3c995dc8a59f6ddfd92eb7404d2f7ff9fe71cd025d9251199957a8a6afbfd76e
Authorization API shape OpenID Authorization API 1.0, Final Specification, 11 January 2026

The experiment directory was not a Git repository. Its frozen source is therefore identified by the source-file-set digest and final manifests, not by a source commit. The release tag points to the SynthWorld repository revision that hosts the evidence; it is not an experiment-source revision.

Method

One deterministic mapper converted each organization topology into the released enterprise identity and authorization authoring surfaces. One combined RBAC/ABAC/ReBAC policy then processed every public evaluation cell through an experiment-owned AuthZEN-style adapter in front of OPA.

Each request bound the subject identifier and type, action name, resource identifier and type, evaluation tick, profile, and topology lane to the selected public cell. Sixteen fixed-cell-ID mutation controls changed those values independently and were all refused. The runner retained raw requests and responses, normalized them into typed submissions, and sealed each topology’s public inputs, policy, adapter, package and product identities, raw results, and submission before scoring. The isolation checker ran separately and its retained evidence is present in the reference ZIP, but it was not seal-bound: a missing controls mount caused both published seals to record isolation_evidence: null. The recorded isolation result is therefore independently auditable rather than cryptographically chained into the submission seal.

The reproduction workflow uses Docker Compose, digest-pinned images, and a hash-pinned Python lock. The two complete deterministic runs compared 175 files byte-for-byte. A separate clean extraction of the published reproduction ZIP also completed successfully.

Results

Every metric retains its own denominator; no aggregate score is computed.

Measurement Result Denominator meaning
Effective composed decision 649 / 649 Public evaluation cells across both topologies
Final composed decision 648 / 649 Cells after lifecycle and runtime gates
Binding-status classification 638 / 649 Cells with released binding-status truth
Runtime-gate decision 211 / 212 Cells where the runtime gate was scoreable
ABAC outcome 232 / 232 Scoreable ABAC component cases
RBAC outcome 577 / 577 Scoreable RBAC component cases
ReBAC outcome 72 / 72 Scoreable ReBAC component cases
Conflict resolution 71 / 71 Cells containing a policy conflict
Policy-conflict detection 649 / 649 Public evaluation cells
Lifecycle-status classification 649 / 649 Public evaluation cells
Mechanism outcome 649 / 649 Public evaluation cells with expected per-mechanism outcomes
Mechanism inventory 649 / 649 Public evaluation cells with expected mechanism inventories
Policy and adapter negative controls 20 / 20 Deliberately faulty policies or prediction dimensions detected
Request-binding mutation controls 16 / 16 Altered AuthZEN-style request fields refused
Seal and replay controls 20 / 20 Untampered submissions accepted and invalid variants refused as required

The baseline was iteratively improved while aggregate metrics were visible, and one author wrote both the scenario overlay and the OPA policy. The near-perfect figures therefore support that the released contracts were learnable and internally self-consistent in this experiment; they are not a blind first-attempt or independent-implementation result.

Britannia contributed 324 cells and the single final-decision error; Aurelia contributed 325 cells and reproduced every effective and final decision. The binding metric remains separately visible: canonical account-to-principal binding is evaluator-only, so plausible same-kind substitutions are not always decidable from the public evidence. A superficially correct final decision must not conceal that mechanism-level miss.

Frozen assets

Publication revision 2 is the authoritative release. Revision 1 accidentally included unmanifested Python bytecode caches in both archives. Revision 2 removes only those generated files; experiment inputs, source, retained evidence, results, and internal checksums are unchanged. Both revisions remain immutable so the correction history is auditable.

Release asset Bytes SHA-256 Intended use Evaluator truth included
enterprise-authorization-opa-authzen-0.16.0-2-reproduction-kit.zip 148,620 8a48b643dfaeb84d3d0ec5ecc0683c02cea109dbc73e4404928f91f4dfea9cfa Reproduce from source, pinned dependencies, two explicit topologies, policy, adapter, controls, and documentation No generated evaluator artifacts
enterprise-authorization-opa-authzen-0.16.0-2-reference-run.zip 4,995,313 ef73d2fd92973843412a63f6fb34ecc1077db72e71630dc300d9127f2530e997 Audit the retained public artifacts, separate evaluator truth, raw decisions, sealed submissions, controls, and reports Yes, in a physically separate tree
ASSET-METADATA.json 2,783 59f3ae5c8ed958857da6761bad4f9174b55ad73c95140583f2f7a86c5f70ba8a Machine-readable correction, source identity, versions, asset digests, result counts, and unsupported claims No
SHA256SUMS 349 806edc08e566d388f875bc639bf9b4d618940cb84a8d231bf4e832c5f6c7d471 Verify every custom release asset No

Verify the release attestation and assets with gh release verify and the retained checksums:

gh release verify enterprise-authorization-opa-authzen-0.16.0-2 \
  --repo bluntmachetti/synthworld
gh release download enterprise-authorization-opa-authzen-0.16.0-2 \
  --repo bluntmachetti/synthworld
sha256sum -c SHA256SUMS
unzip enterprise-authorization-opa-authzen-0.16.0-2-reproduction-kit.zip
cd enterprise-authorization-opa-authzen-0.16.0-2-reproduction-kit
./run.sh

First execution may need network access to obtain the pinned images and packages. After that run, ./reproduce.sh --offline performs the complete two-run byte-identity comparison using the retained local cache.

What this experiment does not establish

  • AuthZEN protocol or implementation conformance. The adapter is merely shaped around the published decision-request model.
  • A comparison among authorization strategies. It exercises one policy; the negative controls are intentionally broken variants, not alternatives.
  • A blind first attempt. Three policy defects were corrected after aggregate metrics exposed them; no case labels, per-case verdicts, canonical identities, ownership truth, or expected outcomes were supplied to the policy.
  • Independent interpretation by benchmark and policy authors. One author wrote both the scenario overlay and the OPA policy, so a symmetric misunderstanding could remain invisible even though the negative controls prove that the metrics move.
  • Individual person-to-agent accountability. The topology mapping establishes team-level responsibility but does not model an explicit person assignment for every agent.
  • Arbitrary topology portability. Aurelia shows that the mapping algorithm survived a schema it was not written against, but both topology documents share an authoring style and vocabulary and cannot represent a generalization sample.
  • A SynthWorld rendering feature. SynthWorld 0.16.0 had no HTML renderer for these enterprise artifact types, and this experiment did not substitute an experiment-owned viewer.
  • A seal-bound isolation proof. The isolation checker passed and its evidence ships separately, but the published seals contain a null isolation-evidence field.
  • A maintenance commitment. Experiment authors own future adaptations, policies, infrastructure, and support.

These limitations define the useful next experiment: keep the released benchmark and isolation boundaries, add explicit person-to-agent accountability, and compare multiple independently designed authorization strategies over the same frozen worlds rather than optimizing another single policy against this result.

Was this page helpful?