Declare a trusted issuer on a tenant's behalf

Registers an external authorization server THIS TENANT is willing to accept workload
tokens from, written by a platform operator, and returns the
derivedAudience that must be configured in that server.

The row is TENANT-scoped and owned by the tenant in the path. It is not a

deployment-wide declaration and never becomes one: no other tenant's trust set
moves. The deployment registry has its own plane at
/api/v3/admin/platform/workload-identity/issuers, and choosing between

them is choosing whether one customer or all of them will trust this issuer.

The declaration lands switched off, exactly as on the tenant plane. enabled is server-set to false and cannot be sent;

admitting the issuer into the trust set is the separate enable verb.

🔴 No credential is submitted here, and none exists. Verification uses the

public key set the issuer itself publishes, so there is no secret to store, seal,
mask or rotate — which is why an operator can complete this configuration without
ever holding customer key material.

Not entitlement-gated. A tenant whose edition does not include workload

identity is still provisioned here. The operator is the party that sells the
edition. The verdict is readable at ../workload-identity/entitlement
on this same plane, as information.

The audit row is filed under the tenant in the path, with actorPlane = PLATFORM and the operator's own username — so a

tenant-scoped audit query run by that customer returns it.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
uuid
required
Body Params

The declaration. Identical in shape to the tenant plane's, because it is the same DTO and the same admission rules. scope, tenantId, derivedAudience, status and enabled are server-derived and are REJECTED if present — on this plane scope most of all, since a body that could name DEPLOYMENT would turn one customer's onboarding into trust every tenant inherits.

A trusted-issuer declaration. Carries no credential of any kind: ANKASecure verifies tokens from this issuer against the PUBLIC key set the issuer publishes, so there is no secret to submit, store, seal or rotate.

string
enum
required

The vendor mechanism. It NARROWS the platform algorithm allow-list and can never widen it; choose GENERIC_OIDC for any provider not named here.

Allowed:
string
required
length between 0 and 2048

The issuer identifier, exactly as the provider publishes it in its OpenID Connect discovery document. HTTPS only, no query and no fragment (OpenID Connect Discovery 1.0 section 2). It is stored in canonical form — lowercase scheme and host, the default port removed, no trailing slash — because that string is both the uniqueness key and the value a presented token's iss claim is compared against.

string
length between 0 and 200

An operator-chosen label. Carries no meaning to any rule and is never compared against anything in a token.

permittedAlgorithms
array of strings
length between 0 and 9

The signature algorithms a token from this issuer may use. Omit it to accept the preset's own set. Every entry must be a member of that set — a narrower list is admitted, a wider one is refused by name.

permittedAlgorithms
string
required

The longest exp - iat a token from this issuer may declare, as an ISO-8601 duration. It may LOWER the platform ceiling and never raise it. The ceiling is an accept-or-refuse gate on the ISSUER rather than a bound on any one token: a declaration above it is refused outright, and every token that issuer mints is refused with it, a five-minute one included.

Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
Bearer
JWT
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
application/problem+json