A workload can exchange a verified machine identity for a short-lived STACK Passport. This avoids a stored operator API key on the workload.
Configure a SPIFFE trust domain with its JWKS URL, audience, exact SPIFFE-ID-to-agent map, and rate limit. A SPIRE-issued JWT-SVID then calls POST /v1/workload/passport. STACK verifies the issuer, signature, audience, subject, configured mapping, and rate limit before it mints a Passport.
curl -X POST https://api.getstack.run/v1/workload/passport \
-H "Authorization: Bearer $JWT_SVID" \
-H "Content-Type: application/json" \
-d '{"ttl_seconds":900}'WIMSE uses a JWT Workload Identity Token. Configure an issuer URI, JWKS URI, audience, JWKS cache lifetime, rate limit, and exact workload-ID-to-agent map. The workload sends its WIT to POST /v1/workload/wit. Version 1 accepts JWT WITs. It does not accept X.509-style WITs.
curl -X POST https://api.getstack.run/v1/workload/wit \
-H "Authorization: Bearer $WIMSE_WIT" \
-H "Content-Type: application/json" \
-d '{"ttl_seconds":900}'An unknown issuer, unmapped subject, invalid signature, wrong audience, disabled config, or exceeded rate limit fails closed. STACK does not fall back to an unverified workload.
See human identity and claims, OIDC, SSO, and STACK authentication, PII policy, and Passport claims.