Skip to content

refactor(agents): remove per-agent muster token machinery, forward-token only#198

Merged
QuentinBisson merged 3 commits into
mainfrom
obo/forward-token
Jul 15, 2026
Merged

refactor(agents): remove per-agent muster token machinery, forward-token only#198
QuentinBisson merged 3 commits into
mainfrom
obo/forward-token

Conversation

@QuentinBisson

@QuentinBisson QuentinBisson commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Session 4 of the OBO single-token refactor, updated for the dex-only ruling on giantswarm/muster#947 (implemented by giantswarm/muster#968, released as muster v1.0.0): Dex is the sole SSO authority, muster never signs tokens, and no backend trusts a muster issuer.

With M2M gone (#197), the per-agent static SA-token path has no remaining consumer. Agents reach muster only on behalf of a user: kagent propagates the human's Dex-issued token (KAGENT_PROPAGATE_TOKEN) as the sole Authorization to muster; muster validates it and, per the downstream server's auth.mode, either forwards it unchanged (forward) or exchanges it at the spoke's Dex (exchange). muster issues no token of its own, so the agent's identity is not asserted downstream; the forwarded token carries the human.

Removed from agentic-platform-connectivity (and the umbrella defaults):

  • muster-token-init Job, muster-refresh CronJob, the shared token pod-spec helper, and the Secret-writer Role/RoleBinding
  • the static headersFrom Authorization on the per-agent muster RemoteMCPServer
  • the agents.definitions.<agent>.obo flag (acting on behalf of the user is the only mode; nothing left to toggle)
  • agents.muster.{kubectlImage,busyboxImage,tokenExpirationSeconds,tokenRefreshSchedule}

agents.remoteMcpServers[].tokenSecret now only accepts a pre-existing Secret. The chart-owned agent ServiceAccount stays as the agent pod's runtime identity.

docs/authentication.md is rewritten for the dex-only model: forward carries the Dex token unchanged, exchange runs RFC 8693 at the spoke's Dex, and edge validation (oauthMode: validate) verifies against Dex's JWKS, never muster's. The muster-signs-JWTs / enableJWTMode / localMint content is gone, matching what muster#968 removed.

Part of the forward-token series; merges after the upstream stack.

…ken only

With M2M removed, the static SA-token path (muster-token-init Job,
muster-refresh CronJob, token pod-spec helper, Secret-writer RBAC, and the
headersFrom Authorization on the per-agent muster RemoteMCPServer) served no
remaining mode. The RemoteMCPServer now carries no static credentials: the
propagated muster on-behalf-of token is the only Authorization. The
agents.definitions.<agent>.obo flag and the agents.muster image/TTL/schedule
values are removed with it. docs/authentication.md describes the forward-token
model (one muster-issued token, validated and forwarded byte-identical).
muster#968 (v1.0.0) removed JWT mode and the self-issued exchange: muster
never signs tokens and no backend trusts a muster issuer. Update the OBO and
edge-validation docs and template comments to the forward/exchange-at-Dex
model, and remove the superseded obo.enabled Changed entry (this PR removes
that flag).
# Conflicts:
#	helm/agentic-platform-connectivity/templates/kagent/agents/remotemcpservers.yaml
@QuentinBisson
QuentinBisson merged commit 26b3839 into main Jul 15, 2026
8 checks passed
@QuentinBisson
QuentinBisson deleted the obo/forward-token branch July 15, 2026 10:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants