AAuth Explorer
advancedPhase 7

Call Chaining (R1 acts as Agent to R2)

Resource 1 needs data from Resource 2 to fulfil the agent’s request. R1 acts as an agent to call R2 — sending the R2 resource token plus the upstream auth token to the PS. The resulting auth token has nested act claims recording the full delegation chain: R2 sees R1 as the current actor, acting on behalf of the original agent.

§ Call Chaining
AgentResource 1Access Server 1Person ServerResource 2Access Server 21Agent → R1 with AS1 auth to…2002R1 calls R2 → 401 + R2 reso…3R1 sends R2 resource token …4R1 accesses R2 with chained…5R1 returns combined result …
GET https://api.example/data200

Agent accesses R1 using its AS1-issued auth token (sig=jwt — auth token is the signing credential).

R1 processes the request but needs data from R2 to fulfil it.

R1 returns 200 immediately (processing); it will call R2 while the agent waits.

1 / 5
speed

Step 1: Agent → R1 with AS1 auth token → R1 needs R2

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

api.example

Signature-KeyAAuth?

sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFzMS1rZXktMSIsInR5cCI6ImFhLWF1dGgrand…

Signature-InputAAuth?

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

SignatureAAuth?

sig=:UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB…

HTTP Signaturescheme=jwt

Covered Components

@method
@authority
@path
signature-key

Signature Base

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

Signature-Key Header

sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFzMS1rZXktMSIsInR5cCI6ImFhLWF1dGgrand0In0…"

Signature-Input Header

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

Auth Token (Agent→R1)aa-auth+jwt
Header
{
"alg":"EdDSA",
"kid":"as1-key-1",
"typ"?:"aa-auth+jwt"
}
Payload
{
"iss"?:"https://as.example",
"aud"?:"https://api.example",
"dwk"?:"aauth-access.json",
"jti"?:"5aba3c5f-0509-4483-a99e-394c0a2b1313",
"cnf"?:{
"jwk"?:
}
,
"iat"?:1776222894,
"exp"?:1776226494,
"agent"?:"aauth:local@agent.example",
"act"?:{
"sub"?:"aauth:local@agent.example"
}
,
"scope"?:"read"
}
sig: wuhpIWVGWe2kNxVtCXDsYgp0ngxD7Hth