Repository navigation
Add a Web Bot Auth module for signed agent-to-agent HTTP - #4
Open
KonstantinMirin wants to merge 1 commit into
Open
KonstantinMirin wants to merge 1 commit into
KonstantinMirin wants to merge 1 commit into
Conversation
Adds iab_agentic_primitives.web_bot_auth behind a [wba] extra. It signs and verifies agent requests and responses with HTTP Message Signatures (RFC 9421) under a Web Bot Auth profile: Ed25519 keys named by thumbprint, origin identity, key directories signed by every key they list, response binding to the request, directory discovery and caching, replay protection, an httpx client transport and ASGI middleware. It ships conformance vectors and an interop harness against Cloudflare's web-bot-auth library. Raises requires-python to 3.12.
10 of 12 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Agents that negotiate and commit deals over HTTP need to know who sent each request and each answer, and keep proof of it. This PR adds
iab_agentic_primitives.web_bot_auth, a module that does this with Web Bot Auth, the IETF protocol for signing automated HTTP traffic. CoMP 1.0 already lists Web Bot Auth as an AI authentication method. The module implements the profile proposed for OpenProposal § 2.8 in IABTechLab/OpenProposal#142.What it does
https://<host>. Its Ed25519 keys sit in a key directory at the host's well-known path, and every key in the directory signs it, which proves the host holds them. No shared secret: anyone can verify.Content-Digest.400,403,429or503. Verifiers cache directories, reject replayed nonces, and take their authority from configuration, neverHost.Design choices
wbaextra, so the core install keepspydanticas its only dependency. The module uses relative imports only.web-bot-auth0.2.0 in both directions: 128 checks, including URLs with raw[],|and{}.One change outside the module
requires-pythonrises from 3.11 to 3.12 for the whole package. The pydantic models in the conformance tooling needtyping.TypedDictsemantics that only 3.12 provides. If you'd rather keep 3.11, I can switch those types totyping_extensions.How to review
make qualityruns ruff, mypy strict, the import contracts and the tests for the module (935 tests, 94% branch coverage).make interopruns the Cloudflare harness.Happy to split this, rename the module, or move the vectors.
Postindustria (IAB Tech Lab member)
Analyzed and generated with the help of Claude, fully reviewed by me.