Our solution
One authentication point for the entire graph
The router validates JWTs from every configured identity provider before a request reaches any subgraph. Subgraphs receive authenticated requests — they do no token validation themselves.
End-to-end authentication flow
Configure one or more JWKS endpoints in the router YAML.
The router extracts tokens from the Authorization header by default. Additional header sources and custom prefixes are configurable.
For each request, the router validates the token against cached JWKS keys, checks the algorithm against the configured allowlist, and optionally validates audience claims.
Validated claims are made available to the request pipeline, including authorization directives and custom modules.
Missing tokens allow anonymous access by default. Set authorization.require_authentication: true to reject unauthenticated requests with 401.
The router keeps JWKS cached and refreshes on a configurable schedule. Unknown Key IDs trigger on-demand refresh with rate limiting.
Requires Router 0.60.0+ for authorization directive support.

