Source authentication

Field reference for the JWT Bearer, API Key (secret store), API Key (provider), and mTLS methods a surface uses to authenticate its callers.

Every surface authenticates its inbound caller through a single method, chosen in Authentication Method on the surface’s Caller Context element. This page documents all four methods, where the values each one needs come from, and the identity each produces after a successful check. For the conceptual model, see Security and access control.

Where to find it: Surface canvas → Caller Context element → Authentication Method.

Authentication methods

MethodBacked bySection
JWT BearerA registered JWT verification strategyJWT Bearer
API Key (secret store)A secret in the secrets storeAPI Key (secret store)
API Key (provider)The managed API key storeAPI Key (provider)
mTLS (Mutual TLS)A client certificatemTLS
  • JWT Bearer fits best when your caller already gets tokens from an identity provider such as Entra ID, Auth0, or Okta: you verify a token you didn’t issue, and its claims flow through as the caller’s identity.
  • API Key (secret store) is the fastest option to set up, a simple shared secret you create and check yourself, with nothing more to it.
  • mTLS makes the certificate itself the proof, which is the strongest option because there’s nothing for a caller to leak or forget to send. It’s overkill, though, for most surfaces where a token or key already does the job.

Whichever method is configured, the credential it consumes (the JWT, the header value, etc.) is stripped from the request before it is forwarded upstream: the authorization header for JWT Bearer; the extraction header for the two API-key methods; nothing for mTLS, since the certificate never travels as a header on the forwarded request.

JWT Bearer

Verifies a signed token against a registered strategy and produces the caller’s identity from its claims. This reuses an identity your caller already authenticates with elsewhere: no separate credential to issue, and the token’s claims (subject, roles, any custom claim) become available to the request and to downstream policy checks.

  • Register the strategy with the issuer URL and JWKS endpoint from your identity provider’s own admin console (Entra ID, Auth0, Okta, and similar providers all publish both), then pick it from the JWT Verification Strategy dropdown.
  • Add at least one value to Accepted Audiences: a JWT Bearer method with no audience rejects every token. Use the value your identity provider issues for this API, normally whatever’s configured on the OAuth client registration the caller uses.
  • Token Header and Scheme rarely need to change from their defaults (Authorization / Bearer); adjust them only if your caller sends the token somewhere non-standard.
FieldWhat it doesDefault
JWT Verification StrategyWhich registered strategy validates the token: its expected issuer, and where its signing keys come from (static inline keys or a remote JWKS URL).—
Accepted AudiencesWhich aud claim values are accepted; the token matches if its aud is any one of these. With no value, every token is rejected.None (add at least one)
Token HeaderHTTP header the token is read from.Authorization
SchemePrefix stripped from the header value before validation.Bearer

On success this produces the caller’s identity: the token’s subject claim and the full decoded claim set.

API Key (secret store)

Validates a presented key against a secret’s value. It’s the simplest way to gate a surface behind a single shared credential, pairing it with a secret you already created and requiring no separate identity system.

  • Choose HTTP Header for a normal REST/HTTP caller, or Protocol-Specific for MCP or A2A traffic, where the key is read from the protocol’s own metadata rather than a header. With Protocol-Specific chosen, the panel still shows a Protocol Field Name field, but no field name is needed.
  • Create the secret first on the Secrets page with Secret Type set to ApiKey, pasting in the credential you want a caller to present, then pick it from Secret. A comma-separated value lets more than one key work.
  • Match HTTP Header Name to whatever your caller actually sends, e.g. X-API-Key or Authorization.
FieldWhat it doesDefault
API Key LocationWhere in the request the presented key is read from.HTTP Header
HTTP Header NameThe header to read the presented key from, when API Key Location is HTTP Header.X-API-Key
SecretThe secret whose value holds the valid key(s). Lists secrets of type ApiKey and secrets with no type.—

On success this produces the caller’s identity: the Secret ID of the matched secret.

API Key (provider)

Validates a presented key against the managed API key records held under this surface’s own ID, rather than against a secret’s value. A revoked key fails the check. Agent ID shows this surface’s ID and is read-only.

FieldWhat it doesDefault
API Key LocationSame as in API Key (secret store) above.HTTP Header
Agent IDThe surface whose issued keys the presented key is checked against.this surface’s ID

On success this produces the caller’s identity: the matched key’s Key ID.

mTLS

Validates a client certificate captured either from a direct TLS handshake or from a trusted forwarded-client-cert (XFCC) header. The certificate itself is the credential, so there’s nothing for a caller to leak or forget to send.

Upload the certificate you expect the caller to present, then choose it from the Client Certificate dropdown. The caller’s certificate is matched by exact fingerprint (“Pinned” trust), not a CA chain.

FieldWhat it doesDefault
Client CertificateThe certificate this surface will accept. A caller must present exactly this certificate (matched by fingerprint) to authenticate.—

The caller’s identity is always derived from the certificate’s fingerprint.

  • Security and access control: the conceptual model for source authentication, RBAC, and secrets together.
  • Core configuration: optional configuration blocks: where source authentication sits among a surface’s other optional blocks.
  • OPA policies: the caller identity this authentication step establishes, including an mTLS caller’s certificate fingerprint, is what a policy’s input.source_auth evaluates against.
  • Secrets and API keys: the two credential stores the API Key (secret store) and API Key (provider) methods validate against.
  • RBAC: the administrative role ladder that governs who can create and manage the JWT strategies, secrets, API keys, and certificates these methods depend on, separate from this runtime authentication.