The Dynamic Client Registration API provides operations to register and manage client Applications for use with Okta's OAuth 2.0 and OpenID Connect endpoints. This API largely follows the contract defined in RFC7591: OAuth 2.0 Dynamic Client Registration Protocol and OpenID Connect Dynamic Client Registration 1.0.
Note: Clients managed through this API are modeled as Applications in Okta and appear in the Applications section of the Admin Console. Changes made through the API appear in the UI and vice versa. Tokens issued by these clients follow the rules for access tokens and ID tokens.
okta.clients.read
Lists all the client applications with pagination
after | string The cursor to use for pagination. It is an opaque string that specifies your current location in the list and is obtained from the
|
limit | integer [ 1 .. 200 ] Default: 20 A limit on the number of objects to return. |
q | string Searches the
|
Success
Forbidden
Too Many Requests
[- {
- "client_id": "B6YnDUIpt6Oq354YYaNR",
- "client_id_issued_at": 1495059435,
- "client_secret_expires_at": 0,
- "client_name": "Native client",
- "client_uri": null,
- "logo_uri": null,
- "response_types": [
- "id_token",
- "code",
- "token"
], - "grant_types": [
- "password",
- "refresh_token",
- "authorization_code",
- "implicit"
], - "token_endpoint_auth_method": "client_secret_basic",
- "application_type": "native",
- "frontchannel_logout_session_required": false
}, - {
- "client_id": "etwquEhEjxqyA7HDB8lD",
- "client_id_issued_at": 1495059868,
- "client_secret_expires_at": 0,
- "client_name": "Service client",
- "client_uri": null,
- "logo_uri": null,
- "redirect_uris": [ ],
- "response_types": [
- "token"
], - "grant_types": [
- "client_credentials"
], - "token_endpoint_auth_method": "client_secret_basic",
- "application_type": "service",
- "frontchannel_logout_session_required": false
}, - {
- "client_id": "l3O8MfR0eTVfLJ7jG2UB",
- "client_id_issued_at": 1495059734,
- "client_name": "Browser client",
- "client_uri": null,
- "logo_uri": null,
- "response_types": [
- "code"
], - "grant_types": [
- "authorization_code"
], - "token_endpoint_auth_method": "none",
- "application_type": "browser"
}, - {
- "client_id": "rHQoApjizqc4MGVlW5En",
- "client_id_issued_at": 1495059117,
- "client_secret_expires_at": 0,
- "client_name": "Web client",
- "client_uri": null,
- "logo_uri": null,
- "response_types": [
- "code",
- "id_token",
- "token"
], - "grant_types": [
- "authorization_code",
- "refresh_token",
- "implicit"
], - "token_endpoint_auth_method": "client_secret_basic",
- "application_type": "web",
- "frontchannel_logout_session_required": false
}
]
okta.clients.register
Registers a new client application
Note: You can create apps on the Apps endpoint (
/api/v1/apps
) and default toconsent_method=TRUSTED
, while those created with Dynamic Client Registration (/oauth2/v1/clients
) default toconsent_method=REQUIRED
.
Note: If you want to specify the
client_id
orclient_secret
, you can use Apps API to create or update a client Application.
Different Application types have different valid values for the corresponding grant type:
Application Type | Valid Grant Type | Requirements |
---|---|---|
browser |
authorization_code , implicit , urn:ietf:params:oauth:grant-type:saml2-bearer . The following grant types are urn:okta:params:oauth:grant-type:otp , urn:okta:params:oauth:grant-type:oob , http://auth0.com/oauth/grant-type/mfa-otp , http://auth0.com/oauth/grant-type/mfa-oob |
|
native |
authorization_code , implicit , password , refresh_token , urn:ietf:params:oauth:grant-type:saml2-bearer . The following grant types are urn:okta:params:oauth:grant-type:otp , urn:okta:params:oauth:grant-type:oob , http://auth0.com/oauth/grant-type/mfa-otp , http://auth0.com/oauth/grant-type/mfa-oob |
Must have at least authorization_code |
service |
client_credentials , urn:ietf:params:oauth:grant-type:saml2-bearer . The following grant types are urn:okta:params:oauth:grant-type:otp , urn:okta:params:oauth:grant-type:oob , http://auth0.com/oauth/grant-type/mfa-otp , http://auth0.com/oauth/grant-type/mfa-oob |
Works with OAuth 2.0 flow (not OpenID Connect) |
web |
authorization_code , implicit , refresh_token , client_credentials (*), urn:ietf:params:oauth:grant-type:saml2-bearer . The following grant types are urn:okta:params:oauth:grant-type:otp , urn:okta:params:oauth:grant-type:oob , http://auth0.com/oauth/grant-type/mfa-otp , http://auth0.com/oauth/grant-type/mfa-oob |
Must have at least authorization_code |
Note: The
client_credentials
grant with a web Application type allows you to use oneclient_id
for an Application that needs to make user-specific calls and back-end calls for data.
Note: The
grant_types
andresponse_types
values described above are partially orthogonal, as they refer to arguments passed to different endpoints in the OAuth 2.0 protocol. However, they are related in that thegrant_types
available to a client influence theresponse_types
that the client is allowed to use and vice versa. For instance, agrant_types
value that includesauthorization_code
implies aresponse_types
value that includescode
, as both values are defined as part of the OAuth 2.0 Authorization Code grant.
application_type | string (ApplicationType) The type of client application. Default value: |
client_name required | string Human-readable string name of the client application |
frontchannel_logout_session_required | boolean Include user session details |
frontchannel_logout_uri | string or null URL where Okta sends the logout request |
grant_types | Array of strings (GrantType) Array of OAuth 2.0 grant type strings. Default value: |
initiate_login_uri | string URL that a third party can use to initiate a sign-in flow by the client |
object A JSON Web Key Set for validating JWTs presented to Okta | |
jwks_uri | string URL string that references a JSON Web Key Set for validating JWTs presented to Okta |
logo_uri | string or null URL string that references a logo for the client consent dialog (not the sign-in dialog) |
policy_uri | string or null URL string of a web page providing the client's policy document |
post_logout_redirect_uris | string Array of redirection URI strings for use for relying party initiated logouts |
redirect_uris | Array of strings Array of redirection URI strings for use in redirect-based flows. All redirect URIs must be absolute URIs and must not include a fragment component. At least one redirect URI and response type is required for all client types, with the following exceptions: If the client uses the Resource Owner Password flow (if |
request_object_signing_alg | Array of strings (SigningAlgorithm) The type of JSON Web Key Set algorithm that you must use for signing request objects. When you specify a value for the |
response_types | Array of strings (ResponseType) Array of OAuth 2.0 response type strings. Default value: |
token_endpoint_auth_method | string (EndpointAuthMethod) Requested authentication method for OAuth 2.0 endpoints. |
tos_uri | string or null URL string of a web page providing the client's terms of service document |
Created
Bad Request
Forbidden
Too Many Requests
{- "client_name": "Example OAuth Client",
- "application_type": "web",
- "response_types": [
- "code",
- "id_token"
], - "grant_types": [
- "authorization_code",
- "refresh_token",
- "implicit"
], - "token_endpoint_auth_method": "client_secret_post",
}
{- "client_id": "0jrabyQWm4B9zVJPbotY",
- "client_secret": "5W7XULCEs4BJKnWUXwh8lgmeXRhcGcdViFp84pWe",
- "client_id_issued_at": 1453913425,
- "client_secret_expires_at": 0,
- "client_name": "Example OAuth Client",
- "application_type": "web",
- "response_types": [
- "id_token",
- "code"
], - "grant_types": [
- "authorization_code"
], - "token_endpoint_auth_method": "client_secret_post",
- "frontchannel_logout_session_required": false
}
okta.clients.read
Retrieves a Client application by clientId
Success
Forbidden
Not Found
Too Many Requests
{- "client_id": "0jrabyQWm4B9zVJPbotY",
- "client_secret": "5W7XULCEs4BJKnWUXwh8lgmeXRhcGcdViFp84pWe",
- "client_id_issued_at": 1453913425,
- "client_secret_expires_at": 0,
- "client_name": "Example OAuth Client",
- "application_type": "web",
- "response_types": [
- "id_token",
- "code"
], - "grant_types": [
- "authorization_code"
], - "token_endpoint_auth_method": "client_secret_post",
- "frontchannel_logout_session_required": false
}
okta.clients.manage
Replaces the settings for a client application.
Note: You must specifiy all settings when you update a client Application. Partial updates aren't supported. If any settings are missing when you update a client application, the update fails. The exceptions are that you can't include
client_secret_expires_at
orclient_id_issued_at
in the request, and you can omit theclient_secret
.
application_type | string (ApplicationType) The type of client application. Default value: | ||||||||||||||||||
client_name required | string Human-readable string name of the client application | ||||||||||||||||||
frontchannel_logout_session_required | boolean Include user session details | ||||||||||||||||||
frontchannel_logout_uri | string or null URL where Okta sends the logout request | ||||||||||||||||||
grant_types | Array of strings (GrantType) Array of OAuth 2.0 grant type strings. Default value: | ||||||||||||||||||
initiate_login_uri | string URL that a third party can use to initiate a sign-in flow by the client | ||||||||||||||||||
object A JSON Web Key Set for validating JWTs presented to Okta | |||||||||||||||||||
| |||||||||||||||||||
jwks_uri | string URL string that references a JSON Web Key Set for validating JWTs presented to Okta | ||||||||||||||||||
logo_uri | string or null URL string that references a logo for the client consent dialog (not the sign-in dialog) | ||||||||||||||||||
policy_uri | string or null URL string of a web page providing the client's policy document | ||||||||||||||||||
post_logout_redirect_uris | string Array of redirection URI strings for use for relying party initiated logouts | ||||||||||||||||||
redirect_uris | Array of strings Array of redirection URI strings for use in redirect-based flows. All redirect URIs must be absolute URIs and must not include a fragment component. At least one redirect URI and response type is required for all client types, with the following exceptions: If the client uses the Resource Owner Password flow (if | ||||||||||||||||||
request_object_signing_alg | Array of strings (SigningAlgorithm) The type of JSON Web Key Set algorithm that you must use for signing request objects. When you specify a value for the | ||||||||||||||||||
response_types | Array of strings (ResponseType) Array of OAuth 2.0 response type strings. Default value: | ||||||||||||||||||
token_endpoint_auth_method | string (EndpointAuthMethod) Requested authentication method for OAuth 2.0 endpoints. | ||||||||||||||||||
tos_uri | string or null URL string of a web page providing the client's terms of service document |
Success
Bad Request
Forbidden
Not Found
Too Many Requests
{- "client_id": "0jrabyQWm4B9zVJPbotY",
- "client_name": "Updated OAuth Client",
- "application_type": "web",
- "response_types": [
- "id_token",
- "code"
], - "grant_types": [
- "authorization_code"
], - "token_endpoint_auth_method": "client_secret_post",
}
{- "client_id": "0jrabyQWm4B9zVJPbotY",
- "client_secret": "5W7XULCEs4BJKnWUXwh8lgmeXRhcGcdViFp84pWe",
- "client_id_issued_at": 1453913425,
- "client_secret_expires_at": 0,
- "client_name": "Updated OAuth Client",
- "application_type": "web",
- "response_types": [
- "id_token",
- "code"
], - "grant_types": [
- "authorization_code"
], - "token_endpoint_auth_method": "client_secret_post",
- "frontchannel_logout_session_required": false
}
okta.clients.manage
Deletes a client application
No Content
Forbidden
Not Found
Too Many Requests
{- "errorCode": "E0000006",
- "errorSummary": "You do not have permission to perform the requested action",
- "errorLink": "E0000006",
- "errorId": "sampleNUSD_8fdkFd8fs8SDBK",
- "errorCauses": [ ]
}
okta.clients.manage
Generates a new client secret for the specified client Application.
Note: This operation only applies to client Applications that use the
client_secret_post
orclient_secret_basic
method for token endpoint authorization.
Success
Forbidden
Not Found
Too Many Requests
{- "client_id": "0jrabyQWm4B9zVJPbotY",
- "client_secret": "6W7XvLCrs4ByKn7Ucwh8ygeeXRhdGFdVOTp75eOc",
- "client_id_issued_at": 1453913425,
- "client_secret_expires_at": 0,
- "client_name": "Updated OAuth Client",
- "application_type": "web",
- "response_types": [
- "id_token",
- "code"
], - "grant_types": [
- "authorization_code"
], - "token_endpoint_auth_method": "client_secret_post",
- "frontchannel_logout_session_required": false
}