AAuth Explorer
access

Agent Identity Access

The agent signs requests with its agent token. The resource verifies the HTTP signature and the token, and applies its own access control policy on who the agent is. This replaces API keys with cryptographic identity: no authorization flow, no PS, no AS, and no token beyond the agent token. A resource that wants an AAuth agent token in particular says so with requirement=agent-token.

§ Agent Identity Access
AgentResource1Signed GET /data (sig=jwt) …200
GET https://api.example/data200

Agent presents its agent token in the Signature-Key header using sig=jwt.

Resource resolves the token: fetches agent.example/.well-known/aauth-agent.json, verifies JWT signature, extracts cnf.jwk.

Resource confirms the HTTP signature was made with the key in cnf.jwk.

Resource checks its internal policy — this agent identifier is in the allowed list.

Access granted. No PS, no AS, no token exchange — pure cryptographic identity.

1 / 1
speed

Step 1: Signed GET /data (sig=jwt) → resource verifies agent token → 200

Request / response
GEThttps://api.example/data
Host

api.example

Signature-KeyAAuth?

sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFnZW50LWtleS0xIiwidHlwIjoiYWEtYWdlbnQ…

Signature-InputAAuth?

sig=("@method" "@authority" "@path" "signature-key");created=1700000000;alg="ed2…

SignatureAAuth?

sig=:BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU…

HTTP Signaturescheme=jwt

Covered Components

@method
@authority
@path
signature-key

Signature Base

"@method": GET
"@authority": api.example
"@path": /data
"signature-key": sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFnZW50LWtleS0xIiwidHlwIjoiYWEtYWdlbnQrand0In0…"
"@signature-params": ("@method" "@authority" "@path" "signature-key");created=1700000000;alg="ed25519"

Signature-Key Header

sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFnZW50LWtleS0xIiwidHlwIjoiYWEtYWdlbnQrand0In0…"

Signature-Input Header

sig=("@method" "@authority" "@path" "signature-key");created=1700000000;alg="ed25519"

Agent Tokenaa-agent+jwt
Header
{
"alg":"EdDSA",
"kid":"agent-key-1",
"typ"?:"aa-agent+jwt"
}
Payload
{
"iss"?:"https://agent.example",
"dwk"?:"aauth-agent.json",
"sub"?:"aauth:local@agent.example",
"jti"?:"a6ae301d-1dc7-4b75-8f8b-5612197664a7",
"cnf"?:{
"jwk"?:
}
,
"iat"?:1776222894,
"exp"?:1776226494
}
sig: 8byvGd-PR3uOLeS_HYOpbW7OD_8whUuD