AAuth Explorer
accessPhase 3

Person Identity Access

The agent obtains a person token (aa-person+jwt) from its PS for one resource and presents it via Signature-Key in place of its agent token. The resource learns which person the agent acts for and serves on that identity alone — no resource token, no auth token, and the PS is never in the path of a call. When an endpoint needs more than identity, the resource challenges there with requirement=auth-token, and the resource token it issues copies ps, sub and the person token's jti out of the token it just verified.

§ Person Token / § Person Identity Access
AgentResourcePerson Server1Signed GET /me with agent t…4012POST /person {resource} → 2…3Signed GET /me with the per…4POST /documents (sensitive)…
GET https://api.example/me401

The agent signs with its agent token. That identifies the agent, not the person.

The resource needs to know which person it is serving, so it answers 401 with requirement=person-token. The header carries no parameters — the agent already knows where to get one.

An agent with no PS cannot satisfy this requirement and surfaces it as an error.

1 / 4
speed

Step 1: Signed GET /me with agent token → 401 requirement=person-token

Request / response
Token Lifecycle
Person Tokenaa-person+jwt
GEThttps://api.example/me
Host

api.example

Signature-KeyAAuth?

sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFnZW50LWtleS0xIiwidHlwIjoiYWEtYWdlbnQ…

Signature-InputAAuth?

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

SignatureAAuth?

sig=:Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4…

HTTP Signaturescheme=jwt

Covered Components

@method
@authority
@path
signature-key

Signature Base

"@method": GET
"@authority": api.example
"@path": /me
"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:[email protected]",
"jti"?:"a6ae301d-1dc7-4b75-8f8b-5612197664a7",
"cnf"?:{
"jwk"?:
}
,
"ps"?:"https://ps.example",
"iat"?:1776222894,
"exp"?:1776226494
}
sig: 8byvGd-PR3uOLeS_HYOpbW7OD_8whUuD