AAuth Explorer
accessPhase 4

Federated Access (4-party)

The complete 4-party autonomous flow: Agent → Resource → Person Server → Access Server. The resource issues a resource token with aud=AS URL. The PS federates to the AS on behalf of the agent, and the AS issues the aa-auth+jwt that the agent presents to the resource.

§ Federated Access (Four-Party)
AgentResourcePerson ServerAccess Server1Signed GET /data-auth → 401…4012POST resource token to PS →…3PS federates to AS /token4PS returns auth token to ag…5Retry with auth token → 200
GET https://api.example/data-auth401

Agent signs with sig=jwks_uri (agent identity).

Resource issues 401 + AAuth-Requirement containing aa-resource+jwt.

Resource token has aud=AS — only the AS can honour it.

The agent token's ps claim tells the ecosystem which Person Server represents this agent.

1 / 5
speed

Step 1: Signed GET /data-auth → 401 + resource token

Request / response
Token Lifecycle
Resource Tokenaa-resource+jwt
Auth Tokenaa-auth+jwt
Agent Tokenaa-agent+jwt
GEThttps://api.example/data-auth
Host

api.example

Signature-KeyAAuth?

sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFnZW50LWtleS0xIiwidHlwIjoiYWEtYWdlbnQ…

Signature-InputAAuth?

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

SignatureAAuth?

sig=:CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo…

HTTP Signaturescheme=jwt

Covered Components

@method
@authority
@path
signature-key

Signature Base

"@method": GET
"@authority": api.example
"@path": /data-auth
"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"

Resource Tokenaa-resource+jwt
Header
{
"alg":"EdDSA",
"kid":"resource-key-1",
"typ"?:"aa-resource+jwt"
}
Payload
{
"iss"?:"https://api.example",
"aud"?:"https://as.example",
"dwk"?:"aauth-resource.json",
"jti"?:"ec12c052-ab17-49e1-88d3-5e2317ba82c4",
"agent"?:"aauth:local@agent.example",
"agent_jkt"?:"tcP75aIbpvVmzZ0P-LIZeoLua8SuE8RGM4tO_2OkRpg",
"scope"?:"read",
"iat"?:1776222894,
"exp"?:1776223494
}
sig: 6QznE3sOp9JX6RY4a0olsuHZSIKAn5t4