Skip to main content

auth51-verifier

Resource-server (RS) enforcement library for auth51 Agentic JWT intent tokens. Mount it on your API and it authorizes each request offline — "protect the resource, not the host."

It verifies, in one pass and without calling back to the Authority:

  • signature against the Authority's published JWKS (fetched + cached),
  • issuer / expiry / audience / scopes,
  • Proof-of-Possession (DPoP cnf.jkt, with legacy RSA cnf.jwk fallback) — a stolen bearer token is useless without the sender's key,
  • value binding — the token's frozen vb claim is re-checked against the real request (static invariants, the action_hash, and T2 reference bounds resolved at the resource through registered providers), using the same auth51-governance evaluator the Authority used at mint.

Install

pip install auth51-verifier

auth51-governance (the value-binding evaluator) is pulled in automatically.

Use

from fastapi import Depends, FastAPI
from auth51_verifier import install_signature_middleware, require_auth

app = FastAPI()
install_signature_middleware(app)

@app.get("/data", dependencies=[Depends(require_auth("read:data", audience="api.example.com"))])
def read_data():
    return {"ok": True}

Configure it from the environment (no code wiring):

AUTHORITY_URL=https://authority.auth51.com
JWKS_PATH=/v1/oauth/.well-known/jwks.json
EXPECTED_ISS=https://authority.auth51.com
REQUIRE_POP=true
ENFORCE_VALUE_BINDING=true

Value-binding reference providers (T2)

A reference bound such as refund.amount <= charge.amount freezes an unresolved reference in the token; the resource resolves it against its own system of record at request time. Register a provider so the verifier can look it up:

from auth51_verifier.extraction import register_provider

# args are pulled from the real request; return the record the bound reads its field from
register_provider("charge_lookup", lambda args: load_charge(args["charge_id"]))

If no provider is registered for a reference bound, the request fails closed — the verifier never assumes a bound it cannot check.

License

Apache-2.0

Metadata

Release files for auth51-verifier 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for auth51-verifier 1.0.0
File Size Uploaded Provenance
auth51_verifier-1.0.0.tar.gz 22.0 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for auth51-verifier 1.0.0
File Interpreter ABI Platform
auth51_verifier-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 46.8 kB

Release files / auth51_verifier-1.0.0.tar.gz

Download URL auth51_verifier-1.0.0.tar.gz
Size 22.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9b69d8852651b4d1d2567e935b5a6004dfa0cbf176e855b56c0e7a15950c2de8
BLAKE2b-256 checksum
How to use checksums
47f049ce98ef27afabf7ada83b256beebaa15cb15cebecc6a03aa9991c85d5af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / auth51_verifier-1.0.0-py3-none-any.whl

Download URL auth51_verifier-1.0.0-py3-none-any.whl
Size 24.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6ac8edac804273651b06eddc55a4ee9f42b378c5d65973d3cd21f16d397990e9
BLAKE2b-256 checksum
How to use checksums
18824ab881c49a8959d297e77116689f80d7ba49c847ff69da3552da07678112
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Security for auth51-verifier 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for auth51_verifier-1.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page