Skip to content

TMP Router: publisher→router authentication mechanism is not specified #5883

Description

@ohalushchak-exadel

Context

docs/trusted-match/router-architecture.mdx describes the TMP Router as infrastructure between publishers and buyer agents, exposing POST /tmp/context and POST /tmp/identity. The router:

  • Signs outbound requests to providers with Ed25519 (spec'd in detail).
  • Verifies inbound requests from providers.

But the inbound publisher → router hop has no auth story:

  • The sample deployment YAML in the doc shows listen: :8443 + TLS cert/key, but no auth block.
  • The spec text does not say whether a router MUST authenticate its callers, and if so how.
  • The "Provider registration security" section covers provider-side keys but not publisher-side callers.

Options a reference implementation has to pick from

  1. Leave it to operator ingress. The router accepts anything from 127.0.0.1; operators put mTLS/JWT/HMAC at their load balancer. Doc this explicitly and add X-Forwarded-* handling guidance.
  2. Mandate mTLS on the router itself. Publisher client cert verified against a configured CA. Consistent with how providers verify router signatures.
  3. Bearer token / shared secret. Simple, common; needs rotation guidance.
  4. HMAC-signed publisher requests. Symmetric to the router→provider Ed25519 story; overkill if publishers share the router deployment.

Ask

Please pin down in the spec:

  • Whether publisher→router auth is REQUIRED, RECOMMENDED, or "deployment-specific" (and if the last, add explicit ingress-termination guidance).
  • If required/recommended, which mechanism(s) MUST/SHOULD be supported by conforming router implementations.
  • Whether the router MUST enforce origin binding (e.g. reject a call from publisher X carrying credentials scoped to publisher Y).

A reference implementation (adcp-go) is about to publish a community image and needs to know what to build in vs what to delegate to the ingress layer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.spec / protocolsponsored-intelligenceIssue concerns the sponsored-intelligence protocol domain

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions