Skip to main content
With As the user, signed by TrustGate (recommended), the gateway signs a token for every call and sends it as Authorization: Bearer. The agent verifies it to know that the call came through the gateway, for whom, and which application is acting. The agent never sees the caller’s own credential. The agent’s panel in Registry → Agents shows what the agent needs under Verify TrustGate’s token: the JWKS URL, the Issuer (iss) and the Audience (aud), with a Python and a Node.js snippet that uses them.

The token

It is signed with RS256. Its kid names a key in https://<agent-host>/.well-known/jwks.json, where <agent-host> is hosts.agent on the gateway.

Verify it

Check the signature against the JWKS, and iss, aud and exp. Then read sub for the user and act.sub for the application.

When the gateway cannot sign

Tokens are signed with the data plane’s STS_SIGNING_KEY (data-plane secrets). When the gateway has no signing key that all its processes share, the call is refused with -32092 (signing_key_unavailable) and nothing reaches the agent. Hosted agents do not take this option: AgentCore, Foundry and Vertex AI accept only their own cloud’s credentials. See Hosted agents.