ABOM

Authorization Bill of Materials — a portable evidence manifest for human, workload, service, and AI-agent access.

CI status Apache 2.0 license Python 3.10+ Alpha 0.1.0
What this is, precisely: a schema and interoperability contribution, not a novel detection algorithm. Effective-permission graphs, delegation-reachability analysis, and separation-of-duty detection all have real prior art (commercial and academic) — disclosed in the novelty gate. What appears to be missing is a shared, versioned artifact recording authorization state itself (declared / approved / computed / observed / revoked) across human, workload, service, and AI-agent identities together.
1.0000
corrected-engine precision (RQ1)
<51ms
full pipeline @ 228 grants (RQ6)
76 / 94%
tests / statement coverage
14
threat-model abuse cases (T1–T14)
5
identity types in one schema
7
authorization states tracked

Why ABOM

The full comparison against standards, academic prior art, and commercial tooling is in research/comparison_matrix.md. Three properties are what this project claims as advancing the state of the art, each stated at the narrowest defensible scope — none of them requires a new detection algorithm.

How ABOM compares

Standards / BOM ecosystem

SystemIdentity modelAuthorization state?AI-agent / MCP
CycloneDXComponent/service-centricNo dedicated field foundNo dedicated schema
SPDX 3.0Element/relationship graphGeneric relations onlyNo profile found
OSCALControl-implementation centricNot designed for per-identity stateNo
in-toto / SLSAActor-per-build-stepBuild-step authorization onlyNo
ABOMHuman / workload / service / agentdeclared…revoked, unifiedNative (MCP adapter)

Commercial CIEM / IGA / MCP-governance

Product / categoryEffective-permission graphNon-human / AI-agent identityPortable evidence export
Veza Access GraphYes, normalizes cloud/SaaSVendor-claimed at scaleProprietary platform only
SailPoint ISCReporting-level SoDGrowing coverageProprietary
SaviyntTransaction-level SoD (ERP)Yes, per vendor pagesProprietary
MCP gateway vendorsRuntime tool-level controlCore scopeMostly proprietary logs
ABOMAttenuation-corrected (RQ1)First-class schema typeOpen JSON Schema, signed

Commercial CIEM/IGA platforms already compute effective permissions and detect toxic combinations at production scale — this project does not claim algorithmic novelty for those functions. What none of them offer is a portable, open, cross-identity-type export format the way a CycloneDX/SPDX component inventory travels across an ecosystem.

Quick start

git clone https://github.com/sunilgentyala/authorization-bom.git
cd authorization-bom
python -m pip install -e ".[dev]"

authbom generate --seed 42 --tenants 2 --output manifest.json
authbom validate manifest.json
authbom analyze manifest.json --now 2026-07-29T12:00:00 --output analysis.json
authbom report analysis.json --format markdown --output report.md

CLI

CommandPurpose
authbom generateDeterministic synthetic manifest for testing/benchmarking
authbom importParse a read-only source fixture (K8s RBAC, OPA, Cedar, OpenFGA, OAuth, MCP)
authbom validateValidate against the ABOM JSON Schema
authbom sign / verifyHMAC-sign / verify grants and attestations
authbom diffDiff two manifests' grants
authbom analyzeEffective-permission, delegation, drift, toxic-combination, revocation analysis
authbom reconcileMerge observed runtime evidence into a manifest
authbom reportRender analysis as JSON / Markdown / SARIF

Benchmark highlights (RQ1–RQ6)

10 recorded seeds, synthetic multi-tenant fixtures, bounded to the tested environment. Full methodology and raw numbers: research/benchmark_findings.md. Two results are reported honestly as negative or inconclusive rather than reframed as strengths.

RQQuestionResultStatus
RQ1Attenuation-corrected effective-permission accuracy1.0000 precision/recall vs. 0.9745 naive precisionsupported
RQ2Chain-consistency reconstruction vs. depth (2–5 hops)1.0000 clean rate at every tested depthnegative result
RQ3Temporal-context vs. snapshot-diff drift detectionIdentical scores — ablation was a no-op on current fixturesinconclusive
RQ4Agent-inclusive vs. human-only separation-of-duty scope2.00 mean violations surfaced vs. 0.00 human-onlysupported
RQ5Revocation convergence vs. estate sizeUnresolved count scales with size; convergence time is a generator constantpartially supported
RQ6CLI-stage overhead vs. estate sizeAll 5 stages <51ms at 228 grants, well under the 10s budgetsupported

Threat model (14 abuse cases)

Full mitigations and disclosed residual risk per case: docs/threat_model.md. Cross-cutting stance: missing or unverifiable evidence is always marked explicitly incomplete, never silently treated as granted or denied.

#Abuse caseMitigation
T1Confused deputyAttenuation-only delegation closure
T2Privilege escalation via inheritanceExplicit inherited-edge traversal, hop cap
T3Delegation / scope abusePrivilege-amplification check
T4Prompt-injection MCP tool misusewithinDeclaredScope + drift detection
T5Token theft and replayTemporal / contextual constraint checks
T6Orphaned identitiesOwner resolution/revocation check
T7Policy driftDeclared vs. observed snapshot comparison
T8Cross-tenant accessBoundary-crossing edge flagging
T9Excessive scopesDormant-grant drift detection
T10Manifest tampering / rollbackFull-payload signatures
T11Compromised signing keyKey-management hygiene, disclosed residual
T12Time-of-check to time-of-useExplicit evidenceCutoff staleness
T13Revocation propagation failurepropagatedAt-absence signal
T14Graph-expansion denial of serviceHop cap + cycle detection

Documentation

Schema

Versioned JSON Schema + example manifests

Formal model

Effective-permission closure, drift, toxic combinations, revocation convergence

Threat model

14 abuse cases and their mitigations

Architecture

Discover-Normalize-Compute-Attest-Observe-Reconcile-Analyze-Verify

Limitations

Read this before relying on any specific claim

Novelty gate

What's genuinely new vs. prior art

Comparison matrix

Standards, academic, and commercial prior art, with evidence links

Gap analysis

RQ1–RQ6 hypotheses, baselines, rejection criteria

Benchmark findings

Including two disclosed negative/inconclusive results

Citation ledger

Every reference independently verified via Crossref/DataCite

Status

Alpha (0.1.0). Synthetic-benchmark-validated only; not yet evaluated against production authorization estates.