awslabs / awslabs/open-agentic-platform
Upgrade agentgateway v1.1.0 → v1.4.0 to adopt native RFC 8693 token exchange
- Dominant language
- JavaScript
- Stars
- 9
- Forks
- 2
- Avg merge
- 7h 17m
- Merged PRs (30d)
- 2
Description
> _Migrated from https://github.com/aws-samples/sample-open-agentic-platform/issues/46 — originally opened by @shapirov103 on 2026-07-31T20:06:39Z._
## Summary
The cluster's AgentGateway (`agentgateway-system`) is running `v1.1.0`. Upstream `agentgateway` released `v1.4.0` on 2026-07-27, which adds native **RFC 8693 OAuth token exchange** and **Cross App Access (ID-JAG)** as backend authentication modes. Upgrading unblocks the token-exchange delegation model described in `docs/architecture/agent-identity-and-token-exchange.md`.
## Correction to prior assumption
An earlier investigation concluded RFC 8693 token exchange was exclusive to Solo.io's commercial "Solo Enterprise for agentgateway" product and not available in the open-source project. That conclusion was wrong. Verified directly against the `agentgateway/agentgateway` GitHub repository:
- PR [#2189](https://github.com/agentgateway/agentgateway/pull/2189) — `auth: add RFC 8693 token exchange backend auth` (merged, by @gilad9366)
- PR [#2458](https://github.com/agentgateway/agentgateway/pull/2458) — `controller: OAuth Token Exchange support` (merged, by @markuskobler)
- Both shipped in the [v1.4.0 release](https://github.com/agentgateway/agentgateway/releases/tag/v1.4.0) (2026-07-27), release notes section "OAuth token exchange backend authentication": *"Agentgateway can exchange an incoming token for a backend credential by using RFC 8693 OAuth 2.0 token exchange and the RFC 7523 JWT bearer grant."*
- Implementation lives in `crates/agentgateway/src/http/auth/oauth/` (`transport.rs`, `client_auth.rs`, `cross_app_access.rs`) and `crates/agentgateway/src/http/oidc/`, with runnable examples under `examples/traffic-token-exchange/oauth-rfc8693/` and `examples/traffic-cross-app-access/keycloak/`.
Solo.io's separate documentation site (`docs.solo.io/agentgateway/...`) covers their own commercial STS/OBO layer, which is a distinct product built on top of the OSS project — not the source of this capability. This is genuinely open-source and requires no commercial license.
## Current state
- Installed: `cr.agentgateway.dev/controller:v1.1.0` and `cr.agentgateway.dev/agentgateway:v1.1.0` (verified via `kubectl get deploy -n agentgateway-system -o jsonpath='{.spec.template.spec.containers[0].image}'`)
- `v1.1.0` predates token exchange entirely; the only `backend.auth` keys available are `[aws, azure, gcp, key, passthrough, secretRef]`.
- Three minor releases behind: `v1.1.0` → `v1.2.x` → `v1.3.x` → `v1.4.0`.
## Breaking changes to account for (from the v1.4.0 release notes)
- Gateway API v1.6 / `TCPRoute` v1 — the controller now uses `v1` instead of `v1alpha2`; re-apply the Gateway API CRDs before upgrading.
- MCP guardrail request-phase rejections now return HTTP 200 with a JSON-RPC error body (previously non-200) — any client/test expecting a non-200 status needs updating.
- Standalone `auth.location` no longer double-nests `expression` — not applicable to our Kubernetes-mode install, but worth confirming.
- `musl`-based container image variants are no longer published; standard glibc images only (binaries are still musl-built).
- Security advisory [GHSA-mvgg-jvj2-4frq](https://github.com/agentgateway/agentgateway/security/advisories/GHSA-mvgg-jvj2-4frq) (High, 8.1) — stateful MCP sessions could cross routes and overwrite the authorization policy. Review before/after upgrading.
## Proposed scope
1. Upgrade `agentgateway`/`agentgateway-proxy` from `v1.1.0` to `v1.4.0` in the relevant Helm values/chart (`gitops/addons/...`), including the Gateway API v1.6 CRD re-apply.
2. Validate existing JWT auth policy (`jwt-auth-policy`, dual Keycloak + EKS OIDC issuers) and MCP routes (`mcp-time`, etc.) still work post-upgrade.
3. Design and adopt `backend.auth.oauthTokenExchange` (or the Kubernetes-mode equivalent field — see `AgentgatewayPolicy`/`AgentgatewayBackend` CRD reference for v1.4) for the delegation use case in the architecture doc: exchanging the workload's `agentgateway`-audience token for a downstream-scoped credential per RFC 8693.
4. Update `docs/architecture/agent-identity-and-token-exchange.md` to reflect the corrected OSS-availability finding and the concrete upgrade path.
## References
- [agentgateway v1.4.0 release notes](https://github.com/agentgateway/agentgateway/releases/tag/v1.4.0)
- [Kubernetes OAuth token exchange docs](https://agentgateway.dev/docs/kubernetes/main/security/backend-authn-oauth/)
- [Kubernetes Cross App Access docs](https://agentgateway.dev/docs/kubernetes/main/security/backend-authn-cross-app-access/)
- RFC 8693: https://datatracker.ietf.org/doc/html/rfc8693
Contributor guide
Research direction
Start with the v1.4.0 release notes, docs/architecture/agent-identity-and-token-exchange.md, and the relevant Helm values under gitops/addons/.... Inspect the AgentgatewayPolicy and AgentgatewayBackend v1.4 references, re-apply the Gateway API v1.6 CRDs, then validate the existing JWT policies and MCP routes. Done means the images are upgraded, token exchange is adopted for the delegation use case, and the architecture documentation reflects the OSS capability.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- helm, kubernetes
- Domain
- authentication, devops, documentation, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100