Client-Initiated Backchannel Authentication
The Client-Initiated Backchannel Authentication (CIBA) flow is an OpenID Connect specification. Learn more in CIBA grant type.
Applications must be configured with a grantTypes value of ciba and a tokenEndpointAuthMethod value of CLIENT_SECRET_BASIC, CLIENT_SECRET_JWT, PRIVATE_KEY_JWT, or CLIENT_SECRET_POST.
PingOne supports the following CIBA endpoints:
-
POST /{{envID}}/as/cibaAuthorizationbegins the CIBA flow. The application includes the user identifier in the request body and the endpoint returns anauth_req_idvalue.The application must include a value for either
login_hint,id_token_hint, orlogin_hint_tokenin the request body. Providing more than one of these properties will result in an error. -
POST /{{envID}}/as/tokenreturns tokens to the application. The application polls this endpoint with theauth_req_idvalue until it succeeds or reaches a terminal state.
CIBA data model
| Property | Type | Required? | Mutable? | Description |
|---|---|---|---|---|
|
String |
Required |
Mutable |
Required when the application’s |
|
String |
Required |
Mutable |
Required when the application’s |
|
String |
Required |
Mutable |
Required when the application’s |
|
String |
Required |
Immutable |
Required when the application’s |
|
String |
Optional |
Mutable |
Signed authentication request made by encoding all of the authentication request parameters as claims of a signed JWT with each parameter name as the claim name and its value as a JSON string. Must contain the following RFC7519 registered claims: |
|
String |
Optional |
Mutable |
DaVinci policy ID which handles the end user authentication device. It has to be a "P1" type flow with "CIBA" subtype. If no value is provided then the first P1 type flow with CIBA subtype is used. |
|
String |
Required |
Mutable |
The |
|
String |
Optional |
Mutable |
Message intended to be displayed on both the consumption device and the authentication device. The value must be at least 1 character in length and at most 8 characters. The set of allowed characters is [A-Za-z0123456789_-]. |
|
String or Integer |
Optional |
Mutable |
The |
|
String |
Required |
Mutable |
The application provides a string that PingOne can map to a user, such as a username or email address. |
|
String |
Required |
Mutable |
The application provides an ID token representing a previous authentication for the target user. This ID token must have been issued by PingOne. |
|
String |
Required |
Mutable |
The application provides a JWT containing the user ID as a claim. This token is created and signed by the application. |
Response codes
While the application polls the token endpoint, it may receive the following responses:
| Response message | Description |
|---|---|
|
The user has not yet authenticated. |
|
A variant of |
|
The user denied or failed the authentication request. |
|
The |
|
The |
|
The client provided a non-CIBA grant type. |
|
The client provided bad credentials. |
|
The client is not registered to use the CIBA grant type. |