The problem delegation solves
An agent takes an action. Who authorized it? The naive answer is “whoever holds the API key.” But that collapses the distinction between “a company authorized an agent” and “a specific agent acting within a specific scope authorized a sub-agent.” Delegation chains make this distinction explicit and cryptographically verifiable.RFC 8693 in plain English
RFC 8693 is a standard for representing impersonation and delegation in JWTs. The key concept is theact claim: a nested object that records the chain of actors between the original subject and the requestor.
Think of it like a chain of signatures on a letter of authorization:
sub-researcher is acting on behalf of orchestrator, which is acting on behalf of acme.
The delegationChain array
Vane extracts the act tree into a flat delegationChain array for ergonomic access:
Building a delegation token
Simple (one hop): POST /v1/token-exchange
Multi-hop: POST /v1/token/exchange
For two-hop delegation, you need two JWT-SVIDs and the RFC 8693 exchange:
ROUND2.access_token now encodes the full three-level chain.
Binding delegation to attestation records
When you pass a delegation token toPOST /v1/attest, it is bound cryptographically to the record:
What the delegation does NOT prove
- That the authorization was appropriate (only your access control policy can judge that).
- That the same agent token wasn’t used by a different process (no workload attestation at registration).
- That the human behind the company account approved this specific action (only your governance process can establish that).