Skip to main content
Agent Identity

IETF · 6 July 2026

Workload Identity in a Multi System Environment (WIMSE) Architecture

draft-ietf-wimse-arch-08

J. Salowey, Y. Rosomakho, H. Tschofenig

WG draftDraft — expect changeIdentityAgent-specificField guide

Workload Identity in a Multi System Environment (WIMSE) Architecture (draft-ietf-wimse-arch-08) is WG draft, 6 July 2026. If the agent is a workload in your mesh, WIMSE/SPIFFE is its identity. OAuth then answers what it may do for a user. Mixing those layers is how you get both 'which binary called us' and 'which customer they were serving'.

At a glance

Problem
Software executing as workloads — including AI intermediaries — needs a coherent architecture for identifiers, credentials, and security-context propagation across clouds, meshes, and administrative domains. SPIFFE solved much of this inside one trust domain; WIMSE aims at the multi-system case.
Identity / authn / authz
Primarily identity of the workload, plus how authentication protocols and authorization context (including delegation) should compose. Explicitly treats agentic AI as a delegated workload that must not silently widen authority across agent-to-agent hops.

Actors

  • Workload (including an AI agent)
  • Identity server / issuer
  • Relying workload
  • Upstream principal (user or service)

How WIMSE architecture works

Animated sequence · WIMSE

WIMSE — Who is calling at this hop — the binary, or the user?

Each hop re-binds

WIT names the workload (the binary), not the user. WPT is bound to this hop. The next hop must re-bind with a new WPT — it does not replay the previous workload's identity. User context travels in another header (Txn-Token / OAuth).

SPIRE / issuersends
Workload Agets
Workload B
Workload C

Now · 1/7· Discover· WIMSEYou are here

SPIRE / issuer→Workload A·Issues WIT (workload identity token). sub is the binary, not a user

WIT names A. The issuer (often SPIRE) also provides the key material used to mint WPTs. This is not a user sub.

Why Workload identity answers which service in which trust domain — not which human. This credential is not an OAuth access token.

A badge for the machine, not a nametag for Alice.

  • WIT from the spec
  • sub=workload from the spec

Solid = from the spec

Step 1 of 7: spire to a. Issues WIT (workload identity token). sub is the binary, not a user WIMSE
Speed
ShareLinkedInX

WIMSE architecture is a WG informational draft, not a protocol RFC. Implement WIT/WPT or SPIFFE for wire. Do not stuff the user into the SPIFFE ID. Nested act (RFC 8693) is a different chain. Credential, bind WPT to this hop, re-bind at the next hop.

In one board · hops

WIMSE re-binds each hop

Workload A

WIT + WPT (or mTLS) →

Peer B

Workload A proves itself

WIT names the binary (spiffe:// or wimse://). WPT or mTLS is the seal. Never put WIT in Authorization: Bearer — that would be a photocopy of a workload pass.

WIT sub = payment-api, not Alice
WITWPT

WIMSE architecture is a WG informational draft, not a protocol RFC. Implement WIT/WPT or SPIFFE for wire. Contrast with token exchange.

Hop list

Sequence above; this list is the same hops for reading and search. Each row is one message.

  1. 1

    SPIRE / issuer→Workload AWIMSEIssues WIT (workload identity token). sub is the binary, not a user

  2. 2

    Workload A→Workload AWIMSE WPTMints a WPT bound to this hop (A → B)

  3. 3

    Workload A→Workload BWIMSE WPTA authenticates to B with WIT + WPT (or mTLS)

  4. 4

    SPIRE / issuer→Workload BWIMSEB already has (or now receives) its own WIT — A's identity is not forwarded

  5. 5

    Workload B→Workload BWIMSE WPTMints a new WPT bound to the next hop (B → C)

  6. 6

    Workload B→Workload CWIMSEB authenticates as itself with B's WIT + the new WPT

  7. 7

    Workload C→Workload BWIMSEC verifies this hop's WPT and responds

01

The gap for agents

Software executing as workloads — including AI intermediaries — needs identifiers, credentials, and security-context propagation across clouds, meshes, and administrative domains. SPIFFE solved much of this inside one trust domain; WIMSE aims at the multi-system case.

Section 3.4.11 of draft-ietf-wimse-arch-08 (6 July 2026) is explicit: agentic AI systems are a special case of delegated workloads. They inherit an upstream principal's security context and MUST NOT silently widen it. Agent-to-agent hops MUST re-bind and scope context at each hop or a chain of AI-to-AI interactions can extend authority far beyond what was originally granted.

If the agent is a workload in your mesh, WIMSE/SPIFFE is its identity. OAuth then answers what it may do for a user. AAuth argues WIMSE/SPIFFE do not help an agent across org boundaries without extra work — both views are about different deployment scopes.

02

Actors and trust boundaries

A workload identifier is unique within a trust domain. Trust anchors for that domain are distributed out of band — you do not fetch them from a URL found only inside a token. Identity servers issue credentials. Relying workloads verify. Upstream principals (users or services) are a different name; stuffing the user into the workload URI collapses the architecture.

AI intermediaries act as both delegated workload and, when they call other agents, as delegators. Each hop is a trust-boundary crossing even inside one cluster.

03

Mechanics

Informational WG architecture, not a protocol RFC. A workload is provisioned with a Workload Identifier and credentials (WIT and/or WIC). It authenticates to peers with mTLS, WPT, or HTTP Message Signatures. When acting as a delegate, it propagates upstream security context (Txn-Tokens, OAuth tokens in their own headers) and re-binds/scopes it at each hop. Companion drafts: identifier, workload-creds, WPT.

Workload Identifierfrom spec
Quoted direction: URI unique within a trust domain; see draft-ietf-wimse-identifier. SPIFFE IDs conform.

04

Step-by-step flows

Flow 1

Provision then prove

  1. 1

    Platform/agent attests the workload to an identity server (SPIRE-like or otherwise).

  2. 2

    Workload receives WIT and/or WIC bound to one identifier and a key.

  3. 3

    Calling a peer: mTLS with WIC, or WIT + WPT, or WIT + HTTP signatures. Never WIT as bearer.

  4. 4

    If serving a user: also propagate OAuth/Txn-Token context in its own header. Re-scope before calling another agent.

05

Identity vs authentication vs authorization

Primarily identity of the workload, plus how authentication protocols and authorization context (including delegation) should compose. Authorization decisions remain policy/OAuth/AAP. User identity remains OIDC/sub in a context token.

06

How it composes

07

What bites agent implementers

  • Silent widening on agent hops

    The architecture's AI section is a warning, not optional colour. Re-bind context every hop.

  • User in the SPIFFE ID

    One identifier per credential. Alice is not a workload path.

  • WIT as Bearer

    Forbidden by the credential draft. If you put WIT in Authorization: Bearer you have undone PoP.

08

Stability — what you can ship

draft-ietf-wimse-arch-08, 6 July 2026, expires 7 January 2027, informational WG architecture. Authors: J. Salowey, Y. Rosomakho, H. Tschofenig. https://datatracker.ietf.org/doc/draft-ietf-wimse-arch/. Use it as a design map; implement the credential/WPT drafts and/or SPIFFE for wire.

Catalog claims (short form)

Workload Identifier
URI unique within a trust domain; see draft-ietf-wimse-identifier.

Implementer notes

WG informational architecture, not a protocol RFC yet. Section 3.4.11 (AI and ML-based intermediaries) is the paragraph to quote when someone asks 'does WIMSE cover agents?'. AAuth's own draft argues WIMSE/SPIFFE do not help an agent across org boundaries without extra work — both views are about different deployment scopes.

Related

Primary sources

  • Datatrackerhttps://datatracker.ietf.org/doc/draft-ietf-wimse-arch/