canonical: https://jentic.com/apis/amazonaws.com/aws-sso-oidc

# AWS SSO OIDC

Jentic publishes the only available OpenAPI specification for AWS SSO OIDC, keeping it validated and agent-ready. AWS IAM Identity Center OIDC implements the OAuth 2.0 Device Authorization Grant flow so that CLIs and native applications can sign users into IAM Identity Center without an embedded browser. The three operations let a tool register itself as an OIDC client, start a device authorisation, and exchange the resulting device code for an access token. The issued bearer token is then consumed by the IAM Identity Center Portal to list accounts and roles.

## For AI agents

Run the OAuth 2.0 device authorisation flow with IAM Identity Center to obtain a bearer access token. Agents register a client, start device authorisation, and exchange the code for a token.

## Scope

Does not list accounts, fetch role credentials, or manage user directories - use only for the OAuth device authorisation handshake that produces an IAM Identity Center bearer token.

## Capabilities

- Register a new public OIDC client with RegisterClient and receive clientId and clientSecret
- Start a device authorisation flow with StartDeviceAuthorization and receive a verification URL plus device code
- Exchange a verified device code for an access token via CreateToken
- Return refresh and access tokens scoped to IAM Identity Center

## Use cases

### CLI Sign-In via Device Authorisation

Command-line tools and developer utilities use the OIDC device flow to sign users into IAM Identity Center without launching a browser inside the terminal. RegisterClient registers the tool once, StartDeviceAuthorization returns a userCode and verificationUriComplete that the user opens in a browser, and CreateToken polls until approval, then returns the access token.

Example prompt: RegisterClient with clientName='my-cli' and clientType='public', call StartDeviceAuthorization to get verificationUriComplete and deviceCode, then poll CreateToken with grantType='urn:ietf:params:oauth:grant-type:device_code' until accessToken is returned.

### Native Application Single Sign-On

Desktop tools that operate against many AWS accounts use the OIDC device flow as their authentication primitive: one sign-in produces an access token, the tool then uses ListAccounts and GetRoleCredentials to surface a role picker, and the resulting sigv4 credentials sign every other AWS call.

Example prompt: RegisterClient for the native app, run StartDeviceAuthorization, and once the user approves call CreateToken to obtain the bearer token to feed into the SSO Portal API.

### Token Refresh Loop

IAM Identity Center access tokens expire after a configured lifetime. Tools call CreateToken with grantType='refresh_token' and the previously-issued refreshToken to obtain a new access token without re-prompting the user, until the refresh token itself expires.

Example prompt: Call CreateToken with grantType='refresh_token' and the cached refreshToken; if the response is a TokenError, fall back to a new device authorisation flow.

### AI Agent Federated Sign-In via Jentic

AI agents using Jentic that operate on behalf of an IAM Identity Center user can run the device flow once at setup and let Jentic handle all subsequent token exchange. The user sees the device code, approves it in a browser, and the resulting bearer token lives in your Jentic One instance - never in the agent's prompt.

Example prompt: Search Jentic for 'start aws sso device authorization', execute StartDeviceAuthorization with the registered clientId and clientSecret, surface the verificationUriComplete to the user, then poll CreateToken until the access token is returned.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /client/register | Register a public OIDC client (RegisterClient) |
| POST | /device_authorization | Start a device authorisation flow (StartDeviceAuthorization) |
| POST | /token | Exchange a device code or refresh token for an access token (CreateToken) |

## Key resources

- **Client** — Registered OIDC public client; created with RegisterClient
- **Device Authorization** — Pending authorisation grants; started with StartDeviceAuthorization
- **Token** — Access and refresh tokens issued by CreateToken

## Why Jentic

- **Setup:** Wiring AWS SSO OIDC by hand means computing SigV4 signatures, picking the right regional oidc host, and sequencing the device-authorisation handshake yourself. Through Jentic you install once, import SSO OIDC from the API Directory, store the client credentials once, and your agent calls it.
- **Permission scoping:** SSO OIDC exposes only the handshake endpoints /client/register, /device_authorization, and /token, so scope the agent to the operations it needs. You choose which of these it may call, so it runs only the steps you allow in the device flow.
- **Credential handling:** Your registered client id, client secret, and issued tokens are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'start the AWS SSO device flow' or 'exchange a device code for a token', and Jentic returns the matching SSO OIDC operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **AWS Single Sign-On** — Portal API that consumes the bearer token issued by sso-oidc CreateToken
- **AWS Single Sign-On Admin** — Configures the assignments that determine what the OIDC-authenticated user can do
- **Amazon Cognito Identity** — Consumer-facing identity service when IAM Identity Center is not the right primitive

## FAQ

### Why is there no official OpenAPI spec for AWS SSO OIDC?

AWS does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call AWS SSO OIDC via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the AWS SSO OIDC use?

RegisterClient and StartDeviceAuthorization are unauthenticated calls (the regional endpoint is open). CreateToken authenticates the registered client via clientId and clientSecret returned at registration. The resulting bearer token is then used against the SSO Portal API. Through Jentic, the clientId, clientSecret, and resulting tokens are stored encrypted in the vault.

### Can I use SSO OIDC for browser-based single sign-on?

AWS SSO OIDC currently implements only the OAuth 2.0 Device Authorization Grant flow (RFC 8628), which is designed for CLIs and native applications. Authorization Code with PKCE is not yet exposed through this API - for browser-based login, use the IAM Identity Center sign-in URLs directly.

### What are the rate limits for the AWS SSO OIDC?

AWS does not publish fixed per-second limits for sso-oidc. CreateToken returns a SlowDown error when the client polls too frequently before user approval - the StartDeviceAuthorization response includes an interval (typically 5 seconds) that the client must respect.

### How do I run the device authorisation flow through Jentic?

Through Jentic, RegisterClient once with clientType='public', then StartDeviceAuthorization to obtain verificationUriComplete and deviceCode, surface that URL to the user, and poll CreateToken (grantType='urn:ietf:params:oauth:grant-type:device_code') at the returned interval until accessToken is issued. Jentic stores the resulting tokens in the vault.

### Is the AWS SSO OIDC free?

IAM Identity Center, including its OIDC endpoints, is offered at no additional charge. You pay only for the underlying AWS resources accessed through the federated roles.

### Can I limit what my agent is allowed to do with the AWS SSO OIDC API?

Yes. AWS SSO OIDC exposes only three handshake operations, RegisterClient, StartDeviceAuthorization, and CreateToken, and because you run Jentic One yourself, your own rules decide which of those the agent may call. You can allow just StartDeviceAuthorization and CreateToken so the agent completes an existing device flow without ever registering new clients, or restrict it to token refresh alone. The client id, client secret, and issued tokens are held by your Jentic One instance and injected at execution, so the agent runs only the steps you permit.
