How it works
- A workload obtains its ambient OIDC token from its platform (for example, the ID token GitHub Actions issues to a job).
- It calls the Nuon token-exchange endpoint with that token and your org ID.
- Nuon verifies the token’s signature against the issuer’s JWKS and checks its issuer, audience, and claims against your trust policies.
- On a match, Nuon mints a short-lived API token bound to the policy’s service account and returns it. The workload uses it like any other Nuon API token.
Trust policy properties
Each trust policy is backed by a dedicated service account that carries its role. Creating and managing trust policies requires org admin access.
Claim matching
Every claim condition must match the presented token for a policy to apply — conditions are combined with AND. Asub condition is always required, so a policy can never trust every token from an issuer.
Values support glob patterns. The * wildcard does not cross : segment boundaries, which makes it safe to match structured subjects like GitHub’s repo:acme/app:ref:refs/heads/main:
Managing trust policies
You can manage trust policies in the Dashboard under Settings → OIDC federation, or with the CLI.Creating a policy
--claim multiple times to require additional claims. Use --ttl to set a custom token duration in seconds.
Listing and inspecting
Updating and deleting
Exchanging a token
Direct API exchange
The exchange is a single unauthenticated API call — use it from any language or runtime. Send the workload’s OIDC token and your org ID:token as a Bearer credential on subsequent requests, exactly like an API token:
Using the CLI
The Nuon CLI can perform the exchange for you. In GitHub Actions it detects the ambient OIDC token automatically — set your org ID and run any command:NUON_OIDC_TOKEN (a raw JWT) or NUON_OIDC_TOKEN_FILE (a path to one), and the CLI will exchange it the same way.
You can also exchange explicitly and capture the token, for example to export it for other tools:
Example issuers
Any OIDC provider that exposes a discovery document and JWKS can be used as a trust policy issuer, including:- GitHub Actions —
https://token.actions.githubusercontent.com(see the GitHub Actions guide) - GitLab CI/CD — your GitLab instance URL
- Buildkite —
https://agent.buildkite.com - Cloud workloads and Kubernetes service accounts with OIDC-issued tokens
iss and its claim conditions to whatever uniquely identifies the workload you want to trust.