An API gateway sits at the intersection of every inbound request and every upstream service. It is, by design, the one entity in your architecture that sees all tokens, speaks to all services, and can be trusted to enforce cross-cutting policy.
Without token exchange at the gateway, each microservice has to solve the identity translation problem independently or worse, services get handed tokens that carry far more authority than they need. That's how privilege creep happens silently.
When token exchange lives in the gateway, three things become possible that were previously fragile or impossible:
✅ **Services stay dumb about identity complexity**: The gateway handles all token negotiation. A backend microservice receives exactly the token it expects with right scopes, right issuer and never needs to know what the original caller presented.
✅ **Trust boundaries are enforced in one place:** Policy about which tokens can be exchanged, under what conditions, for what scopes all live in gateway configuration, not scattered across ten services.
✅ **Cross-domain federation becomes tractable:** External tokens from a partner IdP, a third-party SAML provider, or a different internal domain can be translated into tokens the backend services actually understand at the edge, before any upstream service sees them.