Bind an external identity to this actor

Grants one external identity — an issuer this tenant trusts, plus the
sub claim its tokens carry — the ability to authenticate as this

Cryptographic Actor.

🔴 This is the act that actually grants access. Declaring a trusted

issuer says only that this deployment is willing to accept tokens from it; nothing
can authenticate until a binding exists. From the moment this call returns, a token
naming that issuer and that subject — carrying the derived audience, signed with an
admitted algorithm, from an enabled issuer — authenticates this actor with
every role, capability grant and exchange context the actor holds.

The issuer may be one this tenant declared or a deployment-scoped one every tenant inherits; both are equally bindable. It does not have to be enabled yet: the natural order of work is declare, bind the workloads, then enable, and requiring the issuer to be live first would mean widening the trust set before the bindings that make it useful exist.

🔴 Uniqueness is per tenant. The same (issuer, subject) pair

already bound in THIS tenant is a 409; the identical pair under a
different tenant succeeds. Two customers whose workloads carry the same subject
from the same public issuer is legitimate and common, and a global constraint would
answer the second one with the existence of the first one's binding.

🔴 No credential is submitted here, and none exists. The workload keeps

the credential its own identity provider issues it. ANKASecure stores nothing that
could authenticate it, so revoking it in your own IdP is sufficient.

The actor is never created. An actor id that does not exist in this

tenant answers 404 and writes nothing — an actor provisioned by this
call would exist with defaults this endpoint chose rather than the authorization
surface an administrator reviewed, and it would have been created by the external
identity being bound to it.

Entitlement-gated. Reading the bindings and removing them are not.

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

The external identity. issuerId names a trusted-issuer declaration this tenant can reach; subject is the sub claim value that issuer puts in the workload's tokens, compared verbatim. actorId is NOT accepted in the body — it is the resource in the route — and scope, tenantId, derivedAudience, status and enabled are server-derived and are REJECTED if present.

A binding from one external identity — an issuer and the sub claim its tokens carry — to one Cryptographic Actor. Carries no credential: the workload keeps the one its own identity provider already issues it.

uuid
required

The trusted issuer whose tokens this binding accepts. It must be one this tenant trusts: either a declaration of its own, or a deployment-scoped one every tenant inherits. An id this tenant cannot reach answers 404 — including one belonging to another tenant, which is answered identically.

string
required
length between 0 and 255

The sub claim value the issuer puts in that workload's tokens, compared verbatim and case-sensitively. Take it from the machine-to-machine application in the external IdP rather than typing it: Auth0 emits <clientId>@clients, Keycloak the service-account user id, and a SPIFFE-shaped issuer a full spiffe:// URI.

Compared verbatim, so it is stored verbatim: nothing here is trimmed, normalised or rewritten. A value carrying a control, line-breaking or bidirectional-formatting character is therefore REFUSED rather than cleaned up — a rewritten subject would match no token, and two subjects differing only in such a character would become one indistinguishable audit record.

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