GitHub

Vercel OIDC tokens for deployments from a team or project.

Vercel issues OIDC tokens for deployments. Each team has its own issuer at https://oidc.vercel.com/<team>. Tokens can name a project and an environment. If you omit the environment, preview and production share the same access.

Docs and discovery

DocsOIDC Federation
ReferenceOIDC token claims
Issuerhttps://oidc.vercel.com/<team> (team mode) or https://oidc.vercel.com (global mode)
Discoveryhttps://oidc.vercel.com/<team>/.well-known/openid-configuration

The default audience is https://vercel.com/<team>. A deployment can request a different audience through token exchange.

This form uses team issuer mode.

Token

Issuerhttps://oidc.vercel.com/<team>
Audiencehttps://vercel.com/<team>, or a custom audience
Teamowner_id (team_…)
Projectproject_id (prj_…), optional
Environmentproduction, preview, or development, optional

Fields

FieldClaimRequiredValidation
Team slugissYesLetters, digits, and hyphens. The vercel.com/<team> URL segment.
Team IDowner_idYesStarts with team_. Team settings, General, Team ID.
Project IDproject_idNoIf set, starts with prj_. Empty trusts the whole team.
EnvironmentenvironmentNoproduction, preview, or development.
AudienceaudYesDefaults to the team URL.
Additional claimsotherNoCannot reuse aud, owner_id, project_id, or environment.

Example policy

{
  issuer: "https://oidc.vercel.com/acme",
  claims: {
    aud: ["https://vercel.com/acme"],
    owner_id: ["team_abc"],
    project_id: ["prj_x"],
    environment: ["production"],
  },
}

Add a field

Edit components/oidc/provider-vercel.tsx after install. For a one-off claim, use Additional claims. For its own input, add it to Fields (or schema), DEFAULTS, compile, parse, FIRST_CLASS_CLAIMS, and the form.

See Add a field.