Multi-hop (one domain)
Multi-hop on-behalf-of inside one domain
Orchestrator → specialist → API, still inside one trust domain. RFC 8693 act records who is acting. Transaction tokens carry immutable purpose. WIMSE re-binds the workload identity at each hop. AAuth call chaining (upstream_token / subagent_token) if you are already on AAuth.
When you see it
An orchestrator agent that fans out to a retrieval agent and a payments agent, all in the same cluster, all acting for the employee who started the task. Internal toolchains where every hop is your mesh. If the next hop is another company's AS, that is the cross-domain row.
Actors and trust
User (at the start)User
Authorized the first agent. Must not be silently widened at a later hop.
Orchestrator agentAgent instance
Holds the original grant. Exchanges or re-binds before calling specialists — does not forward the raw user access token.
Specialist / downstream APIResource
Sees an attenuated token: subject = user, act = the calling agent, audience = itself, purpose unchanged.
Workload identity issuerWorkload
SPIRE / WIMSE names each binary so a stolen user token presented by the wrong pod is a different incident.
Topology
- User→ Original grant (OAuth or AAuth) →Orchestrator
- SPIRE / WIMSE→ Workload identity for this binary →Orchestrator
- SPIRE / WIMSE→ Hop re-bind for the specialist →Specialist
- Orchestrator→ RFC 8693 / txn-token / AAuth subagent_token — attenuated →Specialist
- Specialist→ Audience-restricted, purpose-frozen call →API
Primary
- Token Exchange
RFC 8693 act.
- Transaction Tokens
WG draft — immutable purpose inside the domain.
- WIMSE architecture
Hop re-bind of workload identity.
Optional
- WIMSE WPT
- AAuthdraft / churn
Call chaining: upstream_token / subagent_token. Individual draft; some implementations still incomplete.
- Txn-Tokens for agentsdraft / churn
Individual usage profile of transaction tokens. Draft/churn.
- OAuth agent grantsdraft / churn
Individual draft — expect churn.
- AAP (OAuth profile)draft / churn
Individual draft — expect churn. Expired draft-01 unless renewed.
- AIMS (agent auth BCP)draft / churn
Individual draft — expect churn.
- JWT access tokens
Do not use
- Forwarding the original user access token
Every hop becomes the user. No actor, no attenuation, no audience.
- Expanding scopes at a hop
On-behalf-of is a narrowing, not a promotion.
- Identity chaining
That draft is for crossing authorization servers / domains. Wrong row.
Why these, and not those
Inside one domain you do not need identity chaining across ASes. You do need a recorded actor (RFC 8693 act), a purpose that cannot grow (transaction tokens), and a workload identity that is re-bound at each hop (WIMSE). Agent-grants and AAP are individual OAuth profiles that try to say the same thing with extra claims — mark them draft/churn. If the fabric is AAuth, call chaining with upstream_token / subagent_token is the analogue: the sub-agent signs with its own key while nested act records the parent. Never expand scopes at a hop. Never forward the original user access token.
Related flows
Sequence diagrams, not this topology cut. All flows