Comment by SebastianFarts
Comment by SebastianFarts 2 days ago
The biggest problem I see with OIDC for agents is delegation—specifically, how one agent delegates authority to another agent acting on its behalf.
The microservice identity model breaks down when you have chains of agents, each potentially operating with different levels of autonomy and trust. OIDC was designed for human-to-service flows, not for dynamic agent-to-agent delegation where the context, scope, and risk profile can shift rapidly. I've been thinking we might need something closer to capability-based security or macaroons—where delegation is explicit, scoped, and auditable at each step. The key difference: instead of "who is this agent?" we should be asking "what specific action is this agent authorized to perform right now, and who in the chain vouches for it?"
I have been experimented with SPIFFE/SPIRE for agent identity or explored using verifiable credentials for delegation chains.
You’re mixing models that don’t really fit together. SPIFFE isn’t designed for delegation at all—it’s a PKI-style system: centralized issuance, short-lived certs, and a single trust root per domain. It gives workloads authenticated identity, not transitive authority. There’s no notion of “A acts on behalf of B” baked into SPIFFE.
Verifiable Credentials (VCs) solve a different problem. They’re decentralized, flexible, and can express explicit delegation chains like “A asserts B may perform X.” That’s capability-style reasoning, not identity issuance.
Trying to bolt VC-style delegation onto SPIFFE breaks both systems’ assumptions:
SPIFFE’s hierarchical trust model doesn’t mesh with the web-of-trust VC model.
Its short-lived SVIDs don’t persist long enough for meaningful delegation chains.
SPIRE doesn’t understand VC proofs (JSON-LD, linked data signatures).
You’d need a whole external policy and capability layer to make it work.
SPIFFE nails workload identity; VCs and capability systems handle delegation and contextual authority. Mixing them because “they both do identity” misses the point—they live at different layers of the trust stack.