Remembered Devices
To reduce the friction of frequent authentication requests, your MFA policies can allow the use of a "remember me" option. When you enable this option, you specify the maximum time a device can be remembered. During this period, if a user tries to access applications from the same computer and browser, they will not be asked for further authentication.
The use of this feature requires the following elements:
-
Embedding the Signals SDK in the UI of your application.
-
Adding a "remember me" option to the UI of your application.
-
Enabling the "remember me" option in the MFA policies that you plan on using.
-
Sending an API request with the relevant information so that the user’s browser is recorded as a remembered device.
-
When the user subsequently tries to access an application, sending the API request that compares the current browser information with the information that was recorded previously.
|
To use the remembered device mechanism, the Signals SDK must have the |
Creating a remembered device
To create a remembered device:
-
Get the ID of the MFA policy that is being used.
-
Get the details of the MFA policy.
-
Check the content of the
rememberMeobject in the MFA policy to see if the "remember me" option can be used with this policy (rememberMe.web.enabled). -
If "remember me" is enabled, send a request using the
devicesendpoint, as shown in the Create Remember Me Device example. -
The response to the request will include a cookie in the
set-cookieheader. When it comes time to check if a device is remembered, you will have to include this cookie in the headers for the request.
Checking if device is recognized
To check if a user is using a remembered device:
-
Get the ID of the MFA policy that is being used.
-
Get the details of the MFA policy.
-
Check the content of the
rememberMeobject in the MFA policy to see if the "remember me" option can be used with this policy (ememberMe.web.enabled). -
If "remember me" is enabled, send a request using the
deviceAuthenticationsendpoint and theapplication/vnd.pingidentity.payload.check+jsonheader, as shown in the Check if Device Remembered example. The headers must also include the cookie that was returned when the remembered device was created. Note that if you included the PingOne session ID by using the optionalsession.idparameter when creating the remembered device, you must include thedeviceSession.idparameter when checking if the device is remembered.
Create Remembered Device data model
| Property | Type | Required? | Mutable? | Description |
|---|---|---|---|---|
|
Boolean |
N/A |
Read-only |
Whether cookies are enabled for the browser. |
|
Date |
N/A |
Read-only |
The date and time the remembered device was created. |
|
String |
N/A |
Read-only |
The ID of the PingOne environment. |
|
String |
N/A |
Read-only |
The ID of the remembered device. |
|
String |
N/A |
Read-only |
The fingerprint of the browser. |
|
String |
Optional |
Immutable |
To cover situations where certain applications require a more secure authentication method, you can use this field to provide the authentication method that was used when the remembered device was created. In subsequent access requests, when PingOne checks if a remembered device is being used, it will also verify that the method used during creation is an allowed authentication method for the current MFA policy. If the method used during creation is not allowed by the current MFA policy, the status |
|
Date |
N/A |
Read-only |
The date and time that the create remember me request was last sent for this device. |
|
String |
N/A |
Read-only |
The locale set on the device. |
|
String |
N/A |
Read-only |
The name of the browser. |
|
String |
N/A |
Read-only |
The browser nickname. |
|
String |
N/A |
Read-only |
The operating system installed on the device. |
|
String |
N/A |
Read-only |
The version of the operating system installed on the device. |
|
String |
Required |
Mutable |
The payload from the Signals SDK . |
|
String |
Required |
Mutable |
The ID of the relevant MFA policy. For creating a remembered device, you must use an MFA policy that has been enabled for the "remember me" feature. |
|
Boolean |
N/A |
Read-only |
Whether push notifications are enabled for the browser. |
|
Integer |
N/A |
Read-only |
The screen resolution height. |
|
Integer |
N/A |
Read-only |
The screen resolution width. |
|
String |
Optional |
Mutable |
For an added layer of security, you can also include the ID for a user’s PingOne session. This parameter is optional, however, if you include it when creating the remembered device, you must also include the session ID ( |
|
String |
N/A |
Read-only |
The status of the device, for example, |
|
String |
Required |
Immutable |
Must be set to |
|
Date |
N/A |
Read-only |
The date and time the remembered device was last updated. |
|
String |
N/A |
Read-only |
User agent string for the browser. |
|
String |
N/A |
Read-only |
The version of the browser. |
Check Remembered Device data model
| Property | Type | Required? | Mutable? | Description |
|---|---|---|---|---|
|
Array |
N/A |
Read-only |
Included in response when checking if device is a remembered device. If the device was recognized as a remembered device, the array will contain the values |
|
Boolean |
N/A |
Read-only |
Indicates whether the authentication policy allows users to bypass MFA if they do not have a compatible authentication method. |
|
Date |
N/A |
Read-only |
The date and time the remembered device was created. |
|
String |
Optional |
Mutable |
If you included the ID for a PingOne user session when creating the remembered device, you must also include the session ID when checking if the device is a remembered device. When creating the remembered device the parameter to use is |
|
String |
N/A |
Read-only |
The ID of the PingOne environment. |
|
String |
N/A |
Read-only |
The ID of the flow. |
|
String |
Required |
Immutable |
Value must be set to |
|
String |
Required |
Mutable |
The payload from the Signals SDK. |
|
String |
Required |
Mutable |
The ID of the relevant MFA policy. |
|
String |
N/A |
Read-only |
The ID of the remembered device. |
|
String |
N/A |
Read-only |
The status of the check - |
|
Date |
N/A |
Read-only |
The date and time the remembered device was last updated. |
|
String |
Required |
Mutable |
The ID of the user. Required when checking if the device is a remembered device. |
|
Boolean |
N/A |
Read-only |
Indication of whether the specific user is currently permitted to bypass MFA. |
|
Array |
N/A |
Read-only |
Lists any of the users’s authentication methods that are currently blocked. |
|
Array |
N/A |
Read-only |
Information on all of the authentication methods registered for the user. |