MFA Device Authentications
The /deviceAuthentications endpoint initiates and completes an MFA action without requiring a call to the PingOne authorize service. It supports actions to select a supported MFA device device type and to validate a one-time passcode (OTP).
When a device authentication MFA flow is initiated, the flow returns a status property in the response that identifies the next action in the flow. The following flow states prompt for a specific flow action:
-
OTP_REQUIREDFor a
statusvalue ofOTP_REQUIRED, theotp.checkaction validates the one-time passcode. -
DEVICE_SELECTION_REQUIREDFor a
statusvalue ofDEVICE_SELECTION_REQUIRED, thedevice.selectaction prompts the user to select a supported device type for use in a multi-factor authentication flow. -
ASSERTION_REQUIREDFor a
statusvalue ofASSERTION_REQUIRED, theassertion.checkaction validates the assertion. -
PUSH_CONFIRMATION_REQUIREDFor a
statusvalue ofPUSH_CONFIRMATION_REQUIRED, a push was sent to the specified mobile device to confirm the authentication. -
PUSH_CONFIRMATION_TIMED_OUTFor a
statusvalue ofPUSH_CONFIRMATION_TIMED_OUT, a push was sent to the specified mobile device, but the mobile device did not answer the push during the allowed timeframe.
Device authentications data model
| Property | Type? | Required? | Mutable? | Description |
|---|---|---|---|---|
|
Boolean |
N/A |
Read-only |
Indication of whether the available authentication method list should include only a single generic FIDO2 option rather than including an entry for each paired FIDO2 device. The field is included in the response to the request to initiate an MFA device authentication flow ( |
|
String |
Optional |
Mutable |
The requesting application’s unique identifier. This identifier is required only during device authorization flows when the |
|
Date |
N/A |
Immutable |
When the resource was created. |
|
Object |
N/A |
Read-only |
The error field indicating the reason for a device authentication failure. |
|
String |
N/A |
Read-only |
The error code. |
|
String |
N/A |
Read-only |
The error message. |
|
String |
N/A |
Read-only |
The resource’s unique identifier. |
|
String |
N/A |
Read-only |
The JSON that is the result of a |
|
Object |
Optional |
Immutable |
Holds dynamic notification data. |
|
Object |
Optional |
Immutable |
Holds dynamic mobile push data. |
|
String |
Optional |
Mutable |
The policy ID for the notification. |
|
Object |
Optional |
Immutable |
Holds dynamic template data. |
|
String |
Optional |
Immutable |
The notification template name. |
|
String |
Optional |
Immutable |
The notification template variant. |
|
String |
Optional |
Immutable |
The notification template locale. |
|
Map |
Optional |
Immutable |
The notification template variables. |
|
String |
Optional |
Mutable |
The device authentication policy ID. |
|
String |
N/A |
Read-only |
A string that specifies the public key credential request options object generated for the selected device that should be used to call the navigator.credentials.get() on the browser to generate the assertion. If you are using dynamic linking to attach a unique identifier to a FIDO transaction, |
|
String |
Optional |
Mutable |
In situations where the user wants to authenticate from a different device, you can cancel an authentication flow that has begun. For such requests, the body consists of a single field, |
|
String |
Optional |
Mutable |
The ID of the relying party, used for logging in without having to provide a username. The value of the field should be a domain name, such as sample.com. If not provided, the relying party ID is taken from the associated FIDO2 policy. |
|
String |
Optional |
Mutable |
The unique identifier of a user’s MFA device. You can use this property to specify that authentication should be carried out with a specific device if the user has more than one. In responses, the value is the ID of the device that was in fact used for authentication. |
|
String |
Optional |
Mutable |
For organizations that prefer to maintain their own user device information, you can use the |
|
String |
Optional |
Mutable |
If |
|
String |
Optional |
Mutable |
If |
|
Boolean |
Optional |
Mutable |
To simplify automated testing of your applications, you can create dedicated testing devices. When you use the API to send authentication requests to such a device, the OTP is not sent to the actual device, but instead is returned as part of the body of the response. To specify that a one-time device should serve as a testing device, set the value of |
|
String |
Optional |
Mutable |
Enables the user to enter their OTP when triggering MFA. |
|
String |
N/A |
Read-only |
The flow status. Options are |
|
String |
N/A |
Read-only |
If you are using a test device or you used the |
|
Date |
N/A |
Immutable |
When the resource was last updated. |
|
String |
Required |
Mutable |
The requesting user’s unique identifier. |
|
String |
Optional |
Immutable |
If you want to use dynamic linking to attach a unique identifier to a FIDO transaction, provide a value for the |
|
Array |
N/A |
Read-only |
The list of authenticating devices. |
|
String |
N/A |
Read-only |
Whether or not the device can be used currently for OTP-based authentication. Value returned is ENABLED or DISABLED. Relevant only for devices where |
|
String |
N/A |
Read-only |
If the status is DISABLED, contains the reason that the device cannot be used for OTP-based authentication, for example, that the application used a version of the MFA SDK that does not support OTP. Relevant only for devices where |
|
String |
N/A |
Read-only |
Whether or not the device can be used currently for push-based authentication. Value returned is ENABLED or DISABLED. Relevant only for devices where |
|
String |
N/A |
Read-only |
If the status is DISABLED, contains the reason that the device cannot be used for push-based authentication, for example, that the push option was disabled for the application in the MFA policy. Relevant only for devices where |
|
String |
N/A |
Read-only |
Whether or not the device can be used currently for authentication. Value returned is ENABLED or DISABLED. |
|
String |
N/A |
Read-only |
If the status is DISABLED, contains the reason that the device cannot be used for authentication, for example, that the defined daily notifications limit has already been reached. |
Device authentication events generated
Refer to Audit Reporting Events for the events generated.