Workload identity has become a foundational primitive in modern infrastructure. Static credentials do not scale, degrade over time, and rarely explain why access should be allowed. The SPIFFE specification addresses this by defining a standard way to issue short-lived, cryptographically verifiable identities to workloads.
From the beginning, SPIFFE was designed with multiple administrative boundaries in mind. Real systems span clusters, cloud accounts, regions, organizations, and partners. Identity must cross those boundaries without collapsing everything into a single control plane.
SPIFFE identity federation exists to solve exactly this problem.
SPIFFE organizes identity around trust domains.
A trust domain represents an administrative boundary with authority over:
A workload identity is expressed as a SPIFFE ID, for example:
spiffe://prod.acme.corp/frontend
That identity is meaningful only because the verifier trusts the authority that governs the prod.acme.corp trust domain.
Within a single trust domain:
Federation begins when workloads must authenticate across trust domains.
Consider two independent trust domains:
spiffe://payments.acme.corp
spiffe://inventory.acme.corp
Each domain:
If a workload in payments.acme.corp needs to communicate with a workload in inventory.acme.corp, identity must cross an administrative boundary.
Without federation, teams typically fall back to:
All of these approaches erase workload identity at the boundary.
SPIFFE federation exists to avoid that outcome.
Federation is a first-class concept in the SPIFFE specification.
The spec defines federation as the ability for a trust domain to verify identities issued by another trust domain without:
To support this, the specification defines:
At the same time, the spec deliberately limits its scope to identity verification.
The core object used in federation is the SPIFFE trust bundle.
A trust bundle contains:
Trust bundles are the only artifacts exchanged during federation. No identities are delegated, and no keys are shared.
The SPIFFE federation specification defines standardized bundle exchange using SPIFFE bundle endpoints.
Bundle endpoints are HTTPS endpoints that serve trust bundles. Two authentication profiles are defined:
The specification requires that:
This ensures interoperability while allowing deployment flexibility.
Assume the following trust domains:
spiffe://payments.acme.corp
spiffe://inventory.acme.corp
To federate:
Federation can be symmetric or asymmetric depending on configuration.
Federation does not change how workloads authenticate.
At runtime:
Federated identities are verified using the same cryptographic process as local identities.
SPIFFE federation is explicit and opt-in.
Trust domains do not implicitly trust each other. Each federation relationship must be configured intentionally, including:
The spec enables federation but does not force trust expansion.
Even with standardized bundle exchange, the SPIFFE federation spec intentionally does not define:
Federation answers one question only:
Can this workload identity be cryptographically verified as originating from the stated trust domain?
What that identity is allowed to do remains a separate concern.
Federation is often misunderstood.
It is not:
Federation operates strictly at the trust domain level and only affects identity verification.
In theory, SPIFFE federation is clean and well-defined.
In practice, teams encounter issues when:
These are not flaws in the specification. They are consequences of how identity is applied in real systems.
Federation is most effective when verification and enforcement remain tightly coupled.
The SPIFFE federation specification provides a precise, interoperable foundation for extending workload identity across administrative boundaries.
What it intentionally leaves open is how federation is enforced, constrained, and observed at runtime.
In a follow up post, we will explore how Riptides approaches federation, enforces it below the application layer, and how runtime context changes the security properties of federated workload identity.