Interaction Chaining (202 Bubbles Back)
R1 calls R2, but the downstream authorization needs the person's consent. Instead of blocking, R1 returns its own 202 to the original agent with an interaction URL that redirects through R1. The agent polls R1; R1 polls its downstream request in parallel. Once the person consents, R1 gets the auth token, completes the R2 call, and the agent's next poll returns the combined result.
The agent accesses R1 with its AS1-issued auth token (sig=jwt).
R1 needs data from R2, and the downstream authorization is going to need the person.
R1 bubbles the 202 back: its own pending URL plus an interaction URL pointing at R1.
A resource acting as an agent MUST return its own 202 with its own AAuth-Requirement and its own Location — it cannot hand the caller someone else's pending URL.
Step 1: Agent → R1 with auth token → R1 bubbles 202
sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFzMS1rZXktMSIsInR5cCI6ImFhLWF1dGgrand…
sig=("@method" "@authority" "@path" "signature-key");created=1700000000;alg="ed2…
sig=:ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGR…
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","dwk"?:"aauth-access.json","aud"?:"https://api.example","jti"?:"34449e73-d2d2-4e45-80d2-01b4b198e025","ps"?:"https://ps.example","sub"?:"8f14e45fceea167a5a36dedd4bea2543","cnf"?:{"jwk"?:},"scope"?:"read","iat"?:1776222894,"exp"?:1776226494}