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.
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.
Step 1: Agent → R1 with AS1 auth token → R1 needs R2
api.example
sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFzMS1rZXktMSIsInR5cCI6ImFhLWF1dGgrand…
sig=("@method" "@authority" "@path" "signature-key");created=1700000000;alg="ed2…
sig=:UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB…
Covered Components
Signature Base
Signature-Key Header
sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFzMS1rZXktMSIsInR5cCI6ImFhLWF1dGgrand0In0…"
Signature-Input Header
sig=("@method" "@authority" "@path" "signature-key");created=1700000000;alg="ed25519"
{"alg":"EdDSA","kid":"as1-key-1","typ"?:"aa-auth+jwt"}{"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"}