One proxy
A door in front of a service that knows nothing about certificates.
How it works
The service need not change: the caller's identity arrives verified, and every request carries a receipt, a signed record of the decision that let it through.
AuthBox is the identity and authorization server for organizations that hand out access by need-to-know. A certificate says who you are; a mission says why you are here; a marking says what may leave.
It plugs into the enterprise you already run — a directory over LDAP, provisioning over SCIM, single sign-on over SAML and OIDC, your own certificate authority — or stands up a new organization in a box. One box runs alone or airgapped; many chain into a federation, each deciding for itself. Every decision is denied by default and signed.
An identity is the (issuer, subject) pair on a certificate — nothing else. The example is fictional: O=example.
Most of what makes AuthBox trustworthy is what it declines to do, and each refusal below is pinned by a test.
Mutual TLS is the only login.
A client without a certificate this deployment issued or trusts never completes the handshake.
Nothing reaches out to us — not for updates, not for revocation.
Not for a typeface either. The only addresses it dials are ones you configured.
An operation that declares no requirement denies everybody.
A mission that does not exist is refused exactly like one the caller may not know exists.
Another authority is adopted by signed bundle, or not at all.
A partner's certificate can complete a handshake and still be refused at authorization. Handshake is not entitlement.
Eleven deployments, each a topology this product stands up and proves. One rule runs through all of them: a door per authority, never a door per process.
Who decides, and where the door goes →A door in front of a service that knows nothing about certificates.
The service need not change: the caller's identity arrives verified, and every request carries a receipt, a signed record of the decision that let it through.
Doors at the edge deciding from signed bundles; the center may be unreachable.
One AuthBox in the middle, proxies and read-only replicas at the edges. Each decides from the bundle it holds, so an outage at the center is not one at the door.
Your own certificate authority, issuing by invitation, revoking by list.
For a team with no PKI. The first boot stands up the authority and asks for your vocabulary, companions and corporate services; the root never leaves the host.
Organizations adopt each other's signed authority; a person issued there is decided here.
For organizations that must work together and cannot merge their directories. Each keeps its own authority, and every record carries its origin.
Your directory, PKI and mail relay in; decisions out.
For an organization that already has all three. AuthBox adopts what they say and owns none of it.
Sign in with the card you already carry; this box issues nothing.
For people who hold a PIV or CAC card. The door admits the card’s sign-in certificate, refuses its signature certificate, and checks the issuer’s own list.
A real CAC or PIV card, under its own authority; the box issues nothing.
The image carries the DoD and Treasury PKIs’ certificates as issuer sets and fetches their lists; bring your card and you are recorded.
Read the scenario →Your computer’s credential, shown to Linux as a smart card.
For a person with no card: a PIV card behind a PIN you set; the key stays in the store.
Read the scenario →Each record reaches only the services cleared for its label; the door never opens one.
For a feed with two destinations cleared to different levels. The door decides on each record's label alone.
The application labels every answer; the door refuses whole what the caller is not cleared for.
For an application whose records are not all for one audience. It never decides anything itself.
A file that stays classified after it is copied: a door holds the key.
For records that must stay classified after they leave you. Anybody can copy one and nobody can read it without that key.
Host and user certificates from one authority; a login is a decision.
Who may log in to which machine, and as which account, is this deployment's own policy. No key is copied anywhere.
A service's own certificate; the key is born where it is used and never handed over.
For a web server, a test site or a mission’s API. The project owns the identity.
A laptop with the cable out, one host, a compose file, a cluster; the same binary in all of them.
Read the scenario →Every capability below is in the binary today, each proven by a named test. Nothing here is a roadmap.
Authorization is membership, intersected with a mission, intersected with attributes.
People, services and projects; a mission is a named job someone holds. A mission or a record you are not cleared for is absent rather than forbidden.
Issues, renews, rotates and revokes.
A partner's root is appended to the trust pool, its data never adopted.
One writer's truth, carried to doors that decide offline.
Snapshots published on a cadence, each with a freshness budget, and origin that survives every hop.
Every page works with JavaScript off.
WCAG 2.1 AA and Section 508, checked rather than asserted.
For the people the console is not for: their own missions, requests and agreements.
Brokered through approvers, granted for a window.
Live only once the requester accepts with their own key.
Standing conditions — training currency, a signed MOU — reported across a group as a fleet.
Every permit and every deny in a hash-chained, countersigned log, with the clause that decided it.
Each is in the binary, switched on by a setting, and proven by a named test. What your systems send is verified before it is read; what AuthBox decides never leaves as a claim.
Your web applications log people in with the certificate they already hold. An OpenID Connect provider with PKCE and certificate-bound tokens; a SAML 2.0 identity provider for the applications that speak nothing newer. SAML, explained →
Joiners and leavers arrive from the system that already knows them: a SCIM 2.0 adapter pulling from a directory or pushed from Okta or Entra, an LDAP connector for Active Directory. Each runs outside and produces one signed bundle.
Enroll servers over ACME with device attestation, or devices over EST. Revocation over OCSP and CRLs. Keys in a PKCS#11 hardware module, and post-quantum ML-DSA certificates beside the classical set.
Ask the decision as an API (OpenID AuthZEN), export the policy as Rego or Cedar for your engine, and let other systems learn of revocations and lapses as shared signals (CAEP). Or take those answers in your own API's shape, from your OpenAPI document and a mapping proved at load.
Classified responses labeled per request and sealed to a key access service that releases a data key only to a caller cleared for it; NATO confidentiality labels translated at the seam rather than re-modeled.
A separate add-on that holds the files so AuthBox never does. A bucket is a mission ↓
An SSH certificate authority for your hosts and cluster nodes, SSH through the door by name, an ingress mode that follows your Kubernetes Services, and authoritative DNS with DNSSEC for a federation's names. SSH, explained →
Metrics in Prometheus form, structured logs, a signed audit export your SIEM can prove it received, a transparency log, and a store on files, PostgreSQL or MySQL.
Every setting behind these, and the test that proves each one, is in the support matrix.
An S3-compatible store beside the box, where the address is the marking.
A level, a project, a mission — read off the address, not out of a policy written beside it.
Author one in the portal and its storage exists, held by exactly its holders.
An object at a sealed level is ciphertext, opened by the key access door only for a holder of that mission.
Mutual TLS only, no presigned links, one bound per object — and the store never writes a mission.
Its own binary and image, deployed beside the box. The general shelves are seeded missions, held by everyone this authority holds, and a copied volume opens for nobody.
Each is the better tool for the job it was built for, and this replaces none of them. The difference is the axis above: what can be proved afterwards, by somebody who was not there.
How it compares, one by one →AuthBox is built for the people who sign the authorization to operate.
In the FIPS build: Go's native FIPS module, CMVP certificate #5247, under fips140=only. Non-approved algorithms cannot be selected.
Numbered requirements, each enforced by a named test; 991 declared mutations, applied by the gate to prove they bite.
By default, everywhere. An undeclared operation denies everybody, so nothing is permitted by omission.
The control catalog as a component for a FedRAMP-shaped system security plan.
The FIPS build is the default; the open build is the same product without that claim.
Every normative decision is a numbered ruling in a register with the test that enforces it, so a rule refactored away fails the build. The register is public; the source it cites goes to a licensee on request.
The FIPS build's mode is compiled in, and the process refuses to start under any other; the operator guide's two postures page says which build to take.
A release says how it was built, and the media verifies itself. A signed in-toto statement carrying SLSA Provenance v1 rides with the artifacts, sealed by one offline key, and the verifier on the media checks it offline.
Nothing is fetched while it builds, and every piece of somebody else's code carries its license and a reason in a register the gate checks.
NIST SP 800-207's tenets, each pinned to the rulings that prove it here.
What it does not do: no device posture beyond attested key custody; your SIEM fed, not replaced; and a door enforces only where traffic passes it — in Kubernetes, a pod beside it can bypass it.
Of the DoD framework's.
22 provided by AuthBox itself.
Of the framework's Target activities.
Each with a named test.
authboxus/authbox-eval -evaluate stands up a box with a console and four people to log in as, in one command. The image prints the recipe for the rest — a front door, the companions, a fleet, a federation — and with -website serves this site offline.
Source to a licensee on request, images to anybody.
For your own deployment, the released authboxus/authbox's first-boot wizard writes your configuration and starts the box on it. Production ships as images, a static binary, or systemd, compose and Kubernetes manifests; an airgapped install copies it in by hand.