Create Provider
CreateProvider registers a new external OIDC issuer for the tenant. Validates the issuer URL via OIDC discovery synchronously.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
This API uses OAuth2 with the Client Credential flow. Client Credentials must be sent in the BODY, not the headers. For an example of how to implement this, refer to the c1TokenSource.Token() function.
Body
The WorkloadFederationServiceCreateProviderRequest message.
This message contains a oneof named settings. Only a single field of the following list may be set at a time:
- oidc
- spiffe
A description of what this provider is for.
The display name for the new provider.
The issuer URL. For OIDC providers, this is an HTTPS URL validated via OIDC discovery. For SPIFFE providers, this is the SPIFFE trust-domain URI (e.g., spiffe://prod.example.com). Normalized on write: lowercase scheme/host, no trailing slash. Unique within tenant.
OIDCSettings is the kind-specific configuration block for classic OIDC providers (GitHub Actions, GitLab CI, HCP Terraform, AWS IAM Outbound, any CUSTOM provider). Empty for now; future fields like custom_jwks_url, audience overrides, and required_claims land here.
SPIFFESettings is the kind-specific configuration block for SPIFFE trust-domain providers (issuer_url = spiffe://).
Well-known provider type. Required -- UNSPECIFIED is rejected.
When set to a named source, the backend validates issuer_url consistency.
SPIFFE wkp requires settings.spiffe; all other wkp values require
settings.oidc.
WELL_KNOWN_WORKLOAD_PROVIDER_UNSPECIFIED, WELL_KNOWN_WORKLOAD_PROVIDER_CUSTOM, WELL_KNOWN_WORKLOAD_PROVIDER_GITHUB_ACTIONS, WELL_KNOWN_WORKLOAD_PROVIDER_GITLAB_CI, WELL_KNOWN_WORKLOAD_PROVIDER_HCP_TERRAFORM, WELL_KNOWN_WORKLOAD_PROVIDER_AWS_IAM_OUTBOUND, WELL_KNOWN_WORKLOAD_PROVIDER_SPIFFE Response
Successful response
The WorkloadFederationServiceCreateProviderResponse message.
WorkloadFederationProvider represents a tenant-level workload identity issuer registration. Two issuer schemes are supported:
- https://... classic OIDC issuer;
settings.oidcMUST be set. - spiffe://... SPIFFE trust-domain URI;
settings.spiffeMUST be set.
The (well_known_provider, issuer_url scheme, settings oneof) tuple is a tri-invariant: SPIFFE wkp ⟺ spiffe:// issuer ⟺ settings.spiffe set; any other wkp ⟺ https:// issuer ⟺ settings.oidc set. Issuer URLs are unique within tenant.
This message contains a oneof named settings. Only a single field of the following list may be set at a time:
- oidc
- spiffe