Skip to content

Authentication

Remote Legate is an OAuth resource server. Your org IdP (or Stratum as token broker) issues short-lived JWTs; Legate verifies them.

This page describes the interface only — not IdP broker internals or policy source.

Model

ActorRole at the interface
MCP clientPresents Authorization: Bearer on remote tool calls
IdP / Stratum BFFIssues audience-bound tokens after login / consent
LegateVerifies JWT (JWKS), enforces audience/resource, maps scopes to packs

Bearer JWT

POST /mcp
Authorization: Bearer <token>

Requirements callers must satisfy:

  • Token aud (and resource when present) matches the Legate resource URI issued for your deployment
  • Tokens minted for other APIs are rejected (no passthrough)
  • Do not log raw Bearer tokens

Discovery

Unauthenticated remote calls receive 401 with a WWW-Authenticate challenge that includes a resource_metadata URL (RFC 9728 protected-resource metadata).

Clients can also fetch:

GET /.well-known/oauth-protected-resource

Use the metadata to learn the resource identifier and authorization server hints for your deployment.

Scopes and packs

OAuth scopes map to published capability packs. Examples partners may see:

PackTypical use
legate.readObserve / query channel-scoped state
legate.writesimulate / prepare / submit_signed sequence

Tokens with no scope or pack claims receive empty packs (deny by default) on remote HTTP. Exact scope string names for your tenant are shown when the token is minted.

Tools that prepare or submit writes additionally require an explicit write consent claim on the JWT (minted only after operator / user consent in Stratum). A read-scoped token cannot escalate to writes by calling a write tool name.

Stdio note

Local stdio on a trusted operator machine may use a different local identity path. It is not a substitute for remote JWT auth in multi-user environments.

Was this page clear?