URL: /nnlgateway/nnl/<tenant_id>/reg Method: POST |
These operations manage FIDO registrations, including those created with both FIDO2 and UAF authenticators. Use these operations to manage all FIDO registrations, whether the end user registered using Out-of-band or not.
LIST_REG
For the specified user, LIST_REG can either list all their registered FIDO authenticators, regardless of protocol, or list all their registered authenticators by protocol family. Assign all or the desired protocol to the protocolFamily attribute. This operation does not list registered authenticators that have a deleted status.
Assign 3 to the optionsData.needDetails attribute to get additional information in the response about an authenticator's public key, keyID, and attestation ID. This also returns the device's push handle, if it exists.
For the FIDO2 protocol, LIST_REG may return the same registered authenticator for more than one device in the following situations:
A roaming (cross-platform) authenticator is registered on one device and used on more than one device.
A fingerprint authenticator on Android is registered via a native FIDO2 app and used for authentication via a web browser.
A fingerprint authenticator on Android is registered via a web browser and used for authentication via a native FIDO2 app.
Recommended workaround:
Postprocess the JSON response from LIST_REG to filter out device entries with the same handle. A handle is the unique identifier for a registered authenticator. You cannot rely on the order of the device entries in the LIST_REG response to determine the device that was used for registration.
Request
Attribute | Description |
|---|---|
operation | Required. The string LIST_REG. |
callerOrigin | Required if a web app is sending the request and that app has a different origin than the Digipass S3 API Server. A web origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. The API Server checks if this origin is listed in its origin allow list, if not, the request is rejected. See My Web Apps Have a Different Origin. |
id | Optional. The correlation ID, a unique identifier that associates API operations for the same user. An alphanumeric string, maximum 255 characters. No special characters are allowed. If not provided, the Server generates a unique id and returns it in the response. |
optionsData | Optional. An object used to pass additional attributes to REST API operations. The attribute listed below pertains to LIST_REG. See OptionsData for a complete description. |
optionsData.needDetails | Optional. Enter 2 or 3 as follows.
You must configure the API Server to return authenticator information in additionalInfo by modifying its response filter configuration. Refer to Response Filter Configuration. |
protocolFamily | Optional. View the associated registrations for a specific protocol family. One of:
|
sessionData | Required. An object containing the user's session information. See SessionData. |
Response
The following attributes are always present in the JSON payload of the response.
Attribute | Description |
|---|---|
id | The unique id that correlates INIT_REG and FINISH_REG operations for the same user. A Base64-URL encoded string. If id was sent in the request, the same id is returned. If not, a server-generated ID is returned. If id was provided in the REST payload but the server was unable to parse the payload, the value is unknown. |
statusCode | Server-specific status code that reports the success or failure of this operation. Integer. See Response Status Codes below for the status and error codes. |
The following attributes are present in the response upon a successful operation (Server status 4000).
Refer to Sample Response for UAF Registrations, optionsData.needDetails =3 and the attribute tables for AuthenticatorInfo, DeviceDetail, and AdditionalInfo for the specific fields that are returned when needDetails is 3 and you have properly configured the API Server's response filter.
Attribute | Description |
|---|---|
additionalInfo | An object containing information about the client app and device initiating this request. Contains the 3 attributes listed below. In order for the API Server to return this information,
|
additionalInfo.elapsedTime | The amount of time, in milliseconds, to process the request. |
additionalInfo.protocol | Protocol selected by the Server based on information from the request. Not present when registrations from two or more protocols were deleted. |
additionalInfo.protocolFamily | Protocol family processed by server. Registrations belonging to this protocol were deleted. One of:
|
additionalInfo.rpID | The client app's FIDO2 RP ID. |
extensions | Information about extensions associated with the registration. A List<Extension>. |
registrations | List of the authenticators that are registered for a user. See the sample responses for an example of Registration. List<Registration>. |
Response status codes
The following are the descriptions of the Auth Server status codes returned by LIST_REG. Under certain circumstances, the API Server returns an unsuccessful HTTP status code. Examples include an invalid request or invalid session. You can find descriptions of these in API Server Status Codes.
Server Status Code | Description | Examples |
|---|---|---|
4000 | OK. Operation completed | The available registrations for the user are listed. |
4404 | InternalServer Exception | Internal server error. Failed to read from the database. Failed to connect to the database. |
4406 | Payload Exception | There were problems with one or more attributes. For example, protocolFamily has invalid content or the username extracted from sessionData.sessionKey has an invalid length. |
4430 | UserNotFound Exception | User does not exist in the Server. |
Samples
Sample Request URL
https://www.example.com:8443/nnlgateway/nnl/<tenant_id>/regSample Request for UAF Registrations, optionsData.needDetails not Used
{
"operation":"LIST_REG",
"id":"sample",
"sessionData":{
"sessionKey":"<session JWT>"
}
}Sample response for UAF registrations, optionsData.needDetails not used
{
"statusCode":4000,
"registrations":[
{
"device":{
"info":"samsung",
"deviceType":"android",
"os":"android 6.0.1",
"manufacturer":"samsung",
"model":"SAMSUNG-SM-G900A",
"id":"-7l1bKtusVglQerkvzGESR8h-88qwertTieR6xcebIg"
},
"app":{
"id":"com.noknok.android.onramp",
"name":"OnRamp",
"qrSupported":true
},
"authenticators":[
{
"authenticatorName":"SampleNewAuthName",
"description":"Samsung Pass",
"status":1,
"createdTimeStamp":1543162094005,
"handle":"WyJ1YWZfMS4wIiwiNGU0ZSM0MDExIiwiveehZVFvY2NJQ1poUEdDdWdpTHE0ZzJYb0YzcWJFdGZ0NjR1WDFmUm1aOCJd"
}
]
}
],
"id":"JNrs-Ash9tKZLcnDAlvIJw",
"extensions":[
{
"id":"noknok.uaf.location",
"data":"{\"accuracy\":99.2,\"countryCode\":\"IN\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
"operation":"FINISH_REG"
},
{
"id":"noknok.uaf.location",
"data":"{\"accuracy\":99.2,\"countryCode\":\"IN\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
"operation":"INIT_REG"
}
]
}Sample request for UAF registrations, optionsData.needDetails = 3
{
"operation":"LIST_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"optionsData":{"needDetails":3}
}Sample response for UAF registrations, optionsData.needDetails = 3
The highlighted attributes are the additional information that is returned.
{
"statusCode":4000,
"id":"r_g3CvijzORiv362U5GsEg",
"registrations":[
{
"device":{
"id":"abcdef123456789AnotherDevice",
"deviceType":"android",
"info":"NokNok Emulator",
"model":"NokNok-AE 8.0",
"os":"NokNokOS 8.0",
"manufacturer":"NokNok",
"push":{
"handleLifetimeDays":30,
"createdTimeStamp":"2021-10-21T11:33:33.303Z",
"pushHandle":
"a2V5aGFuZGxlAAAAAQFs2pNtaEX3xblMs26Jzc2m05Iy2_73LxyeoJFzN1v56q7zSQ5iXs_oFxMPDLmRnMPiK3bB0-q0u9ZB65qcJJ1SMU0UoBiAjrqV1MGYg31PE9C97seR_bk0z7y8Cp11iWLeoioOpN1XawjYuUaXUCOgvNJOY1qn8Xdyfl6E4h8"
}
},
"app":{
"id":"android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name":"android:com.noknok.test.client",
"qrSupported":false
},
"authenticators":[
{
"description":"ABCD#ABCD description",
"createdTimeStamp":1634813051152,
"handle":"WyJ1YWZfMS4wIiwiQUJDRCNBQkNEIiwiRW84RU54U0VUNDRUMVpVOTR5eVJxLW81ckhTa3ZNNmtubXRJNi1nSUJGUSJd",
"status":1,
"publicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAESeCIsvWjojkiNjqzBuDIko6sDBB1cfItXh5qZQyFMS7Zk7npRWtiKeUvT-6Bnr-AahoymhkGdHN9vDtQq719hg",
"aaid":"ABCD#ABCD",
"keyId":"Eo8ENxSET44T1ZU94yyRq-o5rHSkvM6knmtI6-gIBFQ",
"lastUsedTimeStamp":1634813051152,
"authCount":0
}
]
},
{
"device":{
"id":"123456789abcdef1234567890",
"deviceType":"android",
"info":"NokNok Emulator",
"model":"NokNok-AE 8.0",
"os":"NokNokOS 8.0",
"manufacturer":"NokNok",
"push":{
"handleLifetimeDays":30,
"createdTimeStamp":"2021-10-21T11:33:33.304Z",
"pushHandle":"a2V5aGFuZGxlAAAAAVZXEr6hR9QQw9DrGBT6QUBC0J-5l-i4ztfkf5E6FBuEfgwQecME5A-Kdo3ijeiqu3nwvmMbC4zk4ZvH7ov-FeheB5-f1ma14ATIKbrDIISAAbjJR1FFGwZU0L3HxDilLJsCWgZWErgnFPEfr_9U5ExCx5V8w0THS-CeYg4"
}
},
"app":{
"id":"android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name":"android:com.noknok.test.client",
"qrSupported":false
},
"authenticators":[
{
"description":"ABCD#ABCD description",
"createdTimeStamp":1634730204104,
"handle":"WyJ1YWZfMS4wIiwiQUJDRCNBQkNEIiwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsayJd",
"status":1,
"publicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqp-sG1m2HPcil6UglSC9BurnMaJO8_EXlHJiTEPhcKSyFnCyD_nz4kPNs6iX1BYeBT3GpISafSh1SAGz5p7vGg",
"aaid":"ABCD#ABCD",
"keyId":"w_IgYcIiPF2DMmz6VXWNT88D3oHOpmCxaBk-KbSLdlk",
"lastUsedTimeStamp":1634732412853,
"authCount":0
}
]
}
],
"additionalInfo":{
"protocol":"uaf_1.0",
"protocolFamily":"uaf",
"appID":"https://127.0.0.1:8443/SampleApp"
},
"extensions":[
{
"id":"noknok.uaf.location",
"data":"{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
"operation":"FINISH_REG"
},
{
"id":"noknok.uaf.location",
"data":"{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
"operation":"INIT_REG"
}
]
}Sample request for FIDO2 registrations
{
"operation":"LIST_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"protocolFamily":"web"
}Sample response for FIDO2 registrations
{
"statusCode":4000,
"registrations":[{
"device":{
"info":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3537.0 Safari/537.36",
"deviceType":"browser",
"id":"ecf5c7ba-27b0-43c5-b5ff-1a2e1ac9c740"
},
"app":{
"id":"https://www.example.com:8443",
"name":"https://www.example.com:8443/gwtutorial/",
"qrSupported":false
},
"authenticators":[{
"authenticatorName":"SampleNewAuthName",
"createdTimeStamp":1535670595601,
"description":"Windows Hello Hardware Authenticator",
"handle":"WyJ3ZWIiLCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJIN19aUnpDT2ZmbEs3RzU4Y29wbkRQMnJ1UVYyMzZEyTWlIVi16UXRFVmZPNG1UUERNWXFNby1aejlfMFctMkFZU1hiQ01JUTV1ekUzWm1Kak1qaGxMV05tWVdFdE5ESmtaQzA0Tnpoa0xUa3lNalJsWTJRNU5USTFOdyJd"
}]
}],
"id":"bd2e92c9-0eef-4225-bb0b-fb9e9717330c",
"extensions":[{
"id":"noknok.uaf.location",
"data":"{\"accuracy\":99.2,\"countryCode\":\"IN\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
"operation":"INIT_REG"
}]
}Sample response for FIDO2 registrations with several AppAttest objects
A developer updated the response filter configuration so the API Server returns the protocol and protocol family in additionalInfo.
{
"statusCode":4000,
"id":"xEIxXSkzMA2m3CWhrKtJ5A",
"registrations":[
{
"device":{
"id":"124D7BC9-C756-4A92-806E-D003EB4FFEF3",
"deviceType":"ios",
"info":"iPhone",
"model":"iPhone11,8",
"os":"iOS 16.6",
"manufacturer":"Apple",
"push":{
"handleLifetimeDays":30,
"createdTimeStamp":"2023-06-09T05:21:04.092Z",
"pushHandle":"a2V5aGFuZGxlAAAAAr7ro8sI2cbKYNBzl111E590AWIfa53TUpEday4Y1bpE-IngvILY_ANvsUwQ4vFVSbrMzXYtnXJq0buOJ8DApkLHVDO1UL0_sktOjwpFAtp-0FVTPoIBtdYIJoc20vLDnr0QN4ESPbmCqiyYP4dqaEr5elGn_1dOSubOWMoDfEcgW13JcRKkLSpQX2_138NhU8fR"
}
},
"app":{
"id":"ios:bundle-id:com.noknok.ios.tutorialappplus",
"name":"ios:com.noknok.ios.tutorialappplus",
"qrSupported":true
},
"authenticators":[
{
"authenticatorName":"iPhone authenticator",
"description":"Generic FIDO 2 Authenticator",
"createdTimeStamp":1686045692278,
"handle":"WyJ3ZWIiLCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCItd3ZWcWdCcFdoUUZuNWJDajd2ZjVxN0hieE0iXQ",
"status":1,
"publicKey":"BESZ68pPGcFNn5kPZjinV3LV4cYjbmRC_-5ocGOhdK2C5MiRlUf0o1isrNqqoNr9w36FkKFDIvLWW9RAt81hN-w",
"aaguid":"00000000-0000-0000-0000-000000000000",
"credentialId":"-wvVqgBpWhQFn5bCj7vf5q7HbxM",
"lastUsedTimeStamp":1686209605506,
"authCount":2,
"appAtts":[
{
"authenticatorName":"iPhone",
"description":"Apple AppAttest credential for development environment",
"createdTimeStamp":1686045692279,
"handle":"WyJ3ZWIiLCI2MTcwNzA2MS03NDc0LTY1NzMtNzQ2NC02NTc2NjU2YzZmNzAiLCJqMGpRX0Zkay1kcXZaVlhLcEN5WnJvUk1qMmdXTzRwTWFGUjloVG1YenZjIiwiV3lKM1pXSWlMQ0l3TURBd01EQXdNQzB3TURBd0xUQXdNREF0TURBd01DMHdNREF3TURBd01EQXdNREFpTENJdGQzWldjV2RDY0Zkb1VVWnVOV0pEYWpkMlpqVnhOMGhpZUUwaVhRIl0",
"status":1,
"publicKey":"BIarC9V6h29hmrwNP-3vgz1uhdUa2ykGAXm94XT3sZ9d1yNHblu_mcxlHL-SdYbaj1W32NQUejALmaFIR9SqW-E",
"aaguid":"61707061-7474-6573-7464-6576656c6f70",
"credentialId":"j0jQ_Fdk-dqvZVXKpCyZroRMj2gWO4pMaFR9hTmXzvc",
"lastUsedTimeStamp":1686209605506,
"authCount":2
}
]
}
]
},
{
"device":{
"id":"AD5D2029-383A-47FE-BF80-DF133A9E0221",
"deviceType":"ios",
"info":"iPhone",
"model":"iPhone13,1",
"os":"iOS 16.4.1",
"manufacturer":"Apple",
"push":{
"handleLifetimeDays":30,
"createdTimeStamp":"2023-06-09T05:21:04.093Z",
"pushHandle":"a2V5aGFuZGxlAAAAAu5rU1kskHRgAAip_5GDQkGQVXfTWRvmanW5atASWzaK19eUdkoVMPemLtZ6D78upSQZRkHlREVFQaWMXKi8_Y-CGyBVfyxfT7wvwXL-D-VUpm0oO3DRP9s7VyWKdK_fXaQ7cTAcp5iUq_MHqAgaz7UWEmX966XIZs8Qsw_8tNA_uD7gkOylObm7zbjyHYt9Tws9"
}
},
"app":{
"id":"ios:bundle-id:com.noknok.ios.tutorialappplus",
"name":"ios:com.noknok.ios.tutorialappplus",
"qrSupported":true
},
"authenticators":[
{
"authenticatorName":"iPhone authenticator",
"description":"Generic FIDO 2 Authenticator",
"createdTimeStamp":1686044012946,
"handle":"WyJ3ZWIiLCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCI4dnBtSlBmNXFRWHFEczYzdFVoMjhrVHpQNE0iXQ",
"status":1,
"publicKey":"BIYjwqbXknX4mLNmDKPkjC9TdEy6bMI1SgS5Ea2pUTeZbdNJw28Vlhz5STVik7bjsGUMhsz-f50cXrZkqnGUIBA",
"aaguid":"00000000-0000-0000-0000-000000000000",
"credentialId":"8vpmJPf5qQXqDs63tUh28kTzP4M",
"lastUsedTimeStamp":1686210963190,
"authCount":1,
"appAtts":[
{
"authenticatorName":"iPhone",
"description":"Apple AppAttest credential for development environment",
"createdTimeStamp":1686044029325,
"handle":"WyJ3ZWIiLCI2MTcwNzA2MS03NDc0LTY1NzMtNzQ2NC02NTc2NjU2YzZmNzAiLCJydTctek5kOW93Mk5MYTBnN2JJWWh4TFFreWVSa2g4bXFOOHNDdVRoTHQ0IiwiV3lKM1pXSWlMQ0l3TURBd01EQXdNQzB3TURBd0xUQXdNREF0TURBd01DMHdNREF3TURBd01EQXdNREFpTENJNGRuQnRTbEJtTlhGUldIRkVjell6ZEZWb01qaHJWSHBRTkUwaVhRIl0",
"status":1,
"publicKey":"BL5IfXjNA_886BVJC6n8flFG6JTJ-iIJIVMH6V9ikQOpm_H-VRT5WSyYGtddwAqsOOY6XkI4llNCrOMUTJmsEZo",
"aaguid":"61707061-7474-6573-7464-6576656c6f70",
"credentialId":"ru7-zNd9ow2NLa0g7bIYhxLQkyeRkh8mqN8sCuThLt4",
"lastUsedTimeStamp":1686210963193,
"authCount":1
}
]
},
{
"authenticatorName":"iPhone authenticator",
"description":"Generic FIDO 2 Authenticator",
"createdTimeStamp":1686037503922,
"handle":"WyJ3ZWIiLCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJwc0htUVI3TjdkdS00TWlidW1kNWxUUGtqS1UiXQ",
"status":1,
"publicKey":"BMBprJdNKvJyJakktMrJkRkFecGFaCSTCn1QZBEOXzGinXwg58dRSBnYJiAVzMDnImDDon2seP420y2P63UyIIY",
"aaguid":"00000000-0000-0000-0000-000000000000",
"credentialId":"psHmQR7N7du-4Mibumd5lTPkjKU",
"lastUsedTimeStamp":1686209605506,
"authCount":2,
"appAtts":[
{
"authenticatorName":"iPhone",
"description":"Apple AppAttest credential for development environment",
"createdTimeStamp":1686037503926,
"handle":"WyJ3ZWIiLCI2MTcwNzA2MS03NDc0LTY1NzMtNzQ2NC02NTc2NjU2YzZmNzAiLCJMUkF1XzlqcTZfc0h4SGppQmtwTWVheHI4R1U0a005OFh2c0F6VWlHaF9vIiwiV3lKM1pXSWlMQ0l3TURBd01EQXdNQzB3TURBd0xUQXdNREF0TURBd01DMHdNREF3TURBd01EQXdNREFpTENKd2MwaHRVVkkzVGpka2RTMDBUV2xpZFcxa05XeFVVR3RxUzFVaVhRIl0",
"status":1,
"publicKey":"BK0zuacNcJ1peya_vywkLij_Xe9QMyuZLtIZ96_D4LBE4pc5r6WM0gPcD1CrHvReh_XU4wPzM4NxZbe9oyBS_AQ",
"aaguid":"61707061-7474-6573-7464-6576656c6f70",
"credentialId":"LRAu_9jq6_sHxHjiBkpMeaxr8GU4kM98XvsAzUiGh_o",
"lastUsedTimeStamp":1686209605506,
"authCount":1
},
{
"authenticatorName":"iPhone",
"description":"Apple AppAttest credential for development environment",
"createdTimeStamp":1686043986245,
"handle":"WyJ3ZWIiLCI2MTcwNzA2MS03NDc0LTY1NzMtNzQ2NC02NTc2NjU2YzZmNzAiLCJydTctek5kOW93Mk5MYTBnN2JJWWh4TFFreWVSa2g4bXFOOHNDdVRoTHQ0IiwiV3lKM1pXSWlMQ0l3TURBd01EQXdNQzB3TURBd0xUQXdNREF0TURBd01DMHdNREF3TURBd01EQXdNREFpTENKd2MwaHRVVkkzVGpka2RTMDBUV2xpZFcxa05XeFVVR3RxUzFVaVhRIl0",
"status":1,
"publicKey":"BL5IfXjNA_886BVJC6n8flFG6JTJ-iIJIVMH6V9ikQOpm_H-VRT5WSyYGtddwAqsOOY6XkI4llNCrOMUTJmsEZo",
"aaguid":"61707061-7474-6573-7464-6576656c6f70",
"credentialId":"ru7-zNd9ow2NLa0g7bIYhxLQkyeRkh8mqN8sCuThLt4",
"lastUsedTimeStamp":1686209605506,
"authCount":1
}
]
}
]
}
],
"additionalInfo":{
"protocol":"web_1.0",
"protocolFamily":"web",
"rpId":"st-mysql.noknoktest.com"
},
"extensions":[
{
"id":"noknok.uaf.location",
"data":"{\n \"accuracy\" : 35,\n \"countryCode\" : \"AM\",\n \"latitude\" : 40.192657470703125,\n \"longitude\" : 44.509494781494141,\n \"status\" : 0\n}\n",
"operation":"INIT_ADAPTIVE"
}
]
}Sample request for FIDO2 registrations, optionsData.needDetails =3
{
"operation":"LIST_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"protocolFamily":"web",
"optionsData":{"needDetails":3}
}Sample response for FIDO2 registrations, optionsData.needDetails = 3
The highlighted attributes are additional information that is returned, provided that the response filter was configured to allow this data to be returned.
{
"statusCode":4000,
"id":"jnGQ5IVoFaet_aK02OL9Pg",
"registrations":[
{
"device":{
"id":"d05e976e-cb31-45a1-a3b0-24d542c748d6",
"deviceType":"browser",
"info":"Chrome on Windows",
"os":"Windows 10"
},
"app":{
"id":"https://www.example.com:8443",
"name":"https://www.example.com:8443/gwtutorial/",
"qrSupported":false
},
"authenticators":[
{
"authenticatorName":"Windows authenticator",
"description":"Generic FIDO 2 Authenticator",
"createdTimeStamp":1636449390511,
"handle":"WyJ3ZWIiLCI2MDI4YjAxNy1iMWQ0LTRjMDItYjRiMy1hZmNkYWZjOTZiYjIiLCJoM2pMS0ZsT1UzMnVlTWlFMTF3ZE9SNk9FU01OMmcwSGVEdHdSSEhRNDdRIl0",
"status":1,
"publicKey":"zy92PIK4hncJ-ix72tAnF038DOsFcZ6J9b8yqtqkmWbwPjzl__2RgjdR2-u0cue5eHDrvP4fgQAbE2WxvNJDVIHwg_TXCFN3EG-EZDRetNwjdMduq1buCO75ROYVDw6U7oGdSh8rchHgrSglUBW_QeFDativnzFXclYvOPKzy143FI6Denk4cOpFKycfh6fJSpXxK4qHlhIAjEuxRLvVezA6qmjxHoX95vKKrJL6hivvUCz2_QHVkHbbkiuCKzDasFRGi7anbS7o21I_ccoATgW2JbufjvvuVksLuYiNmX0DHo55pok8cBEi0s2_E-Cp5tjame5jrmvYSwV6bKcRiQEAAQ",
"aaguid":"060b2b06-0104-0182-e51c-010104041204",
"credentialId":"h3jLKFlOU32ueMiE11wdOR6OESMN2g0HeDtwRHHQ47Q",
"lastUsedTimeStamp":1636449390511,
"authCount":0
}
]
}
],
"additionalInfo":{
"protocol":"web_1.0",
"protocolFamily":"web",
"rpId":"www.example.com"
},
"extensions":[
{
"id":"noknok.uaf.location",
"data":"{\"status\":0,\"longitude\":73.7830746,\"latitude\":18.5850598,\"accuracy\":1574.4294553344173}",
"operation":"INIT_REG"
}
]
}Sample request with protocolFamily=all and optionsData.needDetails =3
{
"operation":"LIST_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"protocolFamily":"all",
"optionsData":{"needDetails":3}
}Sample response when protocolFamily=all and optionsData.needDetails = 3
The highlighted attributes are the additional information that is returned. A developer must also update the response filter configuration so the API Server returns the protocol family in additionalInfo.
{
"statusCode":4000,
"registrations":[
{
"device":{
"id":"abcdef123456789AnotherDevice",
"deviceType":"android",
"info":"NokNok Emulator",
"model":"NokNok-AE 8.0",
"os":"NokNokOS 8.0",
"manufacturer":"NokNok",
"push":{
"handleLifetimeDays":30,
"createdTimeStamp":"2021-10-21T11:31:42.635Z",
"pushHandle":"a2V5aGFuZGxlAAAAAXcEALFnjOULBpwM0qh6Tc-ff8PmWZ2osBZ9eHPEpKhPfkS-MzH0LpHclSU7P4YeoQUGxcn065FOPlsvb8eqSo3MGfVaSf8-WlmwMaB64WEyij0D7V5bmaB3fCLxZ6pgd7CV9MmkUY92N4jg0vN_Yw_d5evKqFlHpkdpKK3DtmM"
}
},
"app":{
"id":"android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name":"android:com.noknok.test.client",
"qrSupported":false
},
"authenticators":[
{
"description":"ABCD#ABCD description",
"createdTimeStamp":1634813051152,
"handle":
"WyJ1YWZfMS4wIiwiQUJDRCNBQkNEIiwiRW84RU54U0VUNDRUMVpVOTR5eVJxLW81ckhTa3ZNNmtubXRJNi1nSUJGUSJd",
"status":1,
"publicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAESeCIsvWjojkiNjqzBuDIko6sDBB1cfItXh5qZQyFMS7Zk7npRWtiKeUvT-6Bnr-AahoymhkGdHN9vDtQq719hg",
"aaid":"ABCD#ABCD",
"keyId":"Eo8ENxSET44T1ZU94yyRq-o5rHSkvM6knmtI6-gIBFQ",
"lastUsedTimeStamp":1634813051152,
"authCount":0
},
{
"description":"Generic webauthn authenticator",
"createdTimeStamp":1634813137682,
"handle":"WyJ3ZWIiLCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDQiLCJjSHJ5VFpIdmNhelY5Qm9YYXlyOTdwOWdaY2M4Z1BpMUNFMXBGNGMyRkNnIl0",
"status":1,
"publicKey":"vtXO0TfH6XFcRVC4Y0nlcqrPkqFm1dRA8b6juUv5iF9vo1I9sC8bB_5Mb6uBuLgwS3CHMXhx-QL6D0eosAXzrUCIDZgAt1dioWJtRXbiNfxVs1UwbyGYyvvOV8RmE7uOmJVuax9EYsAANazWwH622qrRmBeo_ZqI0kw3sdC4DQ__cqDCwYXKTqwkmM5g2qN6DcpC1qDR6PzLPCYLnqg4d5gwhqiZ2zA8GTJl3ulZrgOz-J2AJXUPhT6l7nnOPi-h4h9nMaJ5VRtQs9C89jQqF9y24pMHEdkf333B5v5tuml3isgSqmaCNXg-wIv_em9n_o5DOyebZDYZFNE_CovMYwEAAQ",
"aaguid":"060b2b06-0104-0182-e51c-010104041204",
"credentialId":"cHryTZHvcazV9BoXayr97p9gZcc8gPi1CE1pF4c2FCg",
"lastUsedTimeStamp":1634813137682,
"authCount":0
}
]
},
{
"device":{
"id":"123456789abcdef1234567890",
"deviceType":"android",
"info":"NokNok Emulator",
"model":"NokNok-AE 8.0",
"os":"NokNokOS 8.0",
"manufacturer":"NokNok",
"push":{
"handleLifetimeDays":30,
"createdTimeStamp":"2021-10-21T11:31:42.702Z",
"pushHandle":"a2V5aGFuZGxlAAAAAVi1vD3qucVonq4O0db4EPFq3tWJutnXXxEFegDLtEnY1CU7sqA7KSsW62nROMPix3IdaM76i64jPv2mT2eCigjovTrxoxJSXI5Dm6Vrn5tsW4FLDC_LrGADmllcHGw6lwrGfN44xkcAV-0MQZrlVGXSVrd7BUkrkJWVJdQ"
}
},
"app":{
"id":"android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name":"android:com.noknok.test.client",
"qrSupported":false
},
"authenticators":[
{
"description":"ABCD#ABCD description",
"createdTimeStamp":1634730204104,
"handle":"WyJ1YWZfMS4wIiwiQUJDRCNBQkNEIiwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsayJd",
"status":1,
"publicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqp-sG1m2HPcil6UglSC9BurnMaJO8_EXlHJiTEPhcKSyFnCyD_nz4kPNs6iX1BYeBT3GpISafSh1SAGz5p7vGg",
"aaid":"ABCD#ABCD",
"keyId":"w_IgYcIiPF2DMmz6VXWNT88D3oHOpmCxaBk-KbSLdlk",
"lastUsedTimeStamp":1634732412853,
"authCount":0
},
{
"description":"Generic webauthn authenticator",
"createdTimeStamp":1634721757346,
"handle":"WyJ3ZWIiLCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDQiLCJpQXE1V01YRk85elN5UWVSb1lLSGZRLVVKQ1hzODYtVjdqTDFHQVpFeGEwIl0",
"status":1,
"publicKey":"jsGPIIC6S0qqV3l9D0z9MJ2SuLNtbgP1QfLmJeNKMEThw4HnuK6Vb8G2SP-D6xjYTIqKZzDbhrxx_CH3BK4iFi3wbpK9J3qjC05MghnJCrRT2zlbAvp3BU2FaWeBcqD43vGGINvkDxh8vMs38ZmvIdhnKR0f_K9G1XS2OfHXsz2d4NrfL6qmMEC39FevqdmokCYAsO34kT_30spA0assNQhWOIbUBc5ri0ob0JrPheG7UbSoBB3-OHheh8HochRSAIZNQtC7bJ-FOtoYehu7It5GSftVaAuDnx5vJIWssEOpis5VTXzuDy-wzGr1lAT_ffcLsjpTqZXYR5pK1GWfeQEAAQ",
"aaguid":"060b2b06-0104-0182-e51c-010104041204",
"credentialId":"iAq5WMXFO9zSyQeRoYKHfQ-UJCXs86-V7jL1GAZExa0",
"lastUsedTimeStamp":1634732409166,
"authCount":0
}
]
}
],
"additionalInfo":{
"protocolFamily":"all"
},
"extensions":[
{
"id":"noknok.uaf.location",
"data":"{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
"operation":"INIT_REG"
}
]
}Sample request with protocolFamily=web and optionsData.needDetails=4
{
"operation":"LIST_REG",
"userName":"username",
"protocolFamily":"web",
"needDetails":4
}Sample response when protocolFamily=web and optionsData.needDetails=4
The response contains a single icon attribute, highlighted in the sample below. If the metadata contains iconDark, providerLogoLight, and providerLogoDark, then all of these 4 icons will be returned.
{
"statusCode": 4000,
"id": "4qWRz2xGleVR3urhMidBRw",
"registrations": [
{
"device": {
"id": "abcde12345fghij",
"deviceType": "browser",
"info": "NokNok Emulator",
"model": "NokNok-AE 7.0",
"os": "NokNokOS 7.0",
"manufacturer": "NokNok",
"push": {
"handleLifetimeDays": 30,
"createdTimeStamp": "2024-11-26T17:30:51.732Z",
"pushHandle": "AAAAAAAAAAGddGA98zir_gjBM3LfQcwy0m4Ro7i8fO9fTMKAQ0OUBdBINDAUHQ86BiXF1wRd-4mViAW6td_ynjFtaPnoJwy-B87qaZUEQtFBjenzj64PMd9eE7zaUToxLiEQs5uYe68mYfPiv_f2jEkTZ_-clB0"
}
},
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client",
"qrSupported": true
},
"authenticators": [
{
"description": "Generic webauthn authenticator",
"createdTimeStamp": 1732636585628,
"handle": "WyJ3ZWIiLCJhYmNkZWYxMi0zNDU2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAiLCJMd001ZUdVaVJ3UmpBN3g1MTUzaVY2LWZxbkVfM2V5ODViZ0hjNnZabVA4Il0",
"status": 1,
"publicKey": "BJ3wdhlIE8oYlnVeEirZ-xK5Tyoyx_CQEwhaaH69YDTQeDRjIIx4j83n2eD0CofqMsJHTTmsnyWKttA8G6ovOsA",
"aaguid": "abcdef12-3456-7890-abcd-ef1234567890",
"credentialId": "LwM5eGUiRwRjA7x5153iV6-fqnE_3ey85bgHc6vZmP8",
"lastUsedTimeStamp": 1732636585628,
"authCount": 0,
"icon": "data:image/png;base64,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",
}
]
}
],
"additionalInfo": {
"protocol": "web_1.0",
"protocolFamily": "web"
},
"extensions": [
{
"id": "noknok.uaf.location",
"data": "{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
"operation": "FINISH_REG"
},
{
"id": "noknok.uaf.location",
"data": "{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
"operation": "INIT_REG"
}
]
}Sample response showing metadata field when needDetails=5 for UAF protocol. When the protocol is UAF, the response includes metadata-specific information in the registrations.authenticators.metadata section.
{
"statusCode": 4000,
"id": "WN_Nz5y_ZSz5r6XXlot9FA",
"registrations": [
{
"device": {
"id": "123456789abcdef1234567890",
"deviceType": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 7.0",
"os": "NokNokOS 7.0",
"manufacturer": "NokNok",
"push": {
"handleLifetimeDays": 30,
"createdTimeStamp": "2025-10-15T18:13:33.830Z",
"pushHandle": "AAAAAAAAAAGiJ-sD5k5InHqf3e8NAllafsylEeLBfxK9W4wRr91Hmh7zgqLnZ0Qf25wZzs57vS86yFrCcconuBPYFDBRQlJlZ8pA7m7l4pYJ6vTnNqaFTDkJU9dofydKa1X7Ny20lIb8GMsj17tslFqcuvSBlKIrmosmuu85-AytSQ"
}
},
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client",
"qrSupported": true
},
"authenticators": [
{
"description": "4e4e#abcd description",
"createdTimeStamp": 1760551349232,
"handle": "WyJ1YWZfMS4wIiwiNGU0ZSNhYmNkIiwiUVItRkM1ZGxsYTR5bXJGQTl3UWFWRjkyQUZkbkN5Snd0aFdxLU04eXM3OCJd",
"status": 1,
"publicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExtVQ6OXX_OPH-BTCng21C145eBREKaNdQ_bqyIcREFskgSwK8PVc8CeEwWiSXt72VwxYfimOCkY3sJ8shAYkLQ",
"aaid": "4e4e#abcd",
"keyId": "QR-FC5dlla4ymrFA9wQaVF92AFdnCyJwthWq-M8ys78",
"icon": "data:image/png;base64,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",
"lastUsedTimeStamp": 1760551857856,
"authCount": 1,
"metadata": {
"aaid": "4e4e#abcd",
"description": "4e4e#abcd description",
"authenticatorVersion": 1,
"userVerificationMethods": [
[
{
"userVerification": 4,
"userVerificationMethod": "passcode_internal"
}
],
[
{
"userVerification": 2,
"userVerificationMethod": "fingerprint_internal"
}
]
],
"matcherProtection": [
"MATCHER_PROTECTION_ON_CHIP"
],
"tcDisplay": {
"schema": 1,
"secureDisplayList": [
"SECURE_DISPLAY_ANY"
]
},
"isKeyRestricted": true,
"isFreshUserVerificationRequired": true,
"attestationType": [
null
],
"keyProtection": [
"KEY_PROTECTION_TEE"
],
"authenticatorSpecCustomAttributes": {
"authenticatorFidoCertificationLevel": "FIDO_CERTIFIED_L1",
"authenticatorFipsCertificationLevel": "FIPS140_CERTIFIED_L1_PHY_2"
}
}
}
]
}
],
"extensions": [
{
"id": "noknok.uaf.location",
"data": "{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
"operation": "INIT_ADAPTIVE"
},
{
"id": "noknok.uaf.location",
"data": "{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
"operation": "VERIFY"
}
]
}
Sample response showing metadata field when needDetails=5 for web protocol. When the protocol is web, the response includes metadata-specific information in the registrations.authenticators.metadata section.
{
"statusCode": 4000,
"id": "6u5F6Ygxil29fYItycGueg",
"registrations": [
{
"device": {
"id": "abcde12345fghij",
"deviceType": "browser",
"info": "NokNok Emulator",
"model": "NokNok-AE 7.0",
"os": "NokNokOS 7.0",
"manufacturer": "NokNok",
"push": {
"handleLifetimeDays": 30,
"createdTimeStamp": "2025-10-15T18:13:53.302Z",
"pushHandle": "AAAAAAAAAAHnBl9CUJLaB2GAb3Zrx1PesgQI-sGLCxLMN4UVb7LojlaBZFUxcyvR7Qaat6Yw3sIQvS4DOUJLxgNiNQuDUY1dzmk5MTdYmAVx2bYOcsJRIaRAf67_Mf8tW59O2JOU2P4hirnh6SWwsCfQoyYo6RYB"
}
},
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client",
"qrSupported": true
},
"authenticators": [
{
"description": "Generic webauthn authenticator",
"createdTimeStamp": 1760551634631,
"handle": "WyJ3ZWIiLCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDQiLCJIajdIWWpzcmxuS0ZnNFNCdWtlWXd4RGJhaDZsekhLbUtsNUFRc2NzZW9VIl0",
"status": 1,
"publicKey": "BPxe-NJGwAhtdNPeAEPYuu_z3SK-9hUhcUAKmg3zsce7UrAA-eSdbrM8JY161MxH_6rJlmW7QDvlbgl6GLGjSt0",
"aaguid": "060b2b06-0104-0182-e51c-010104041204",
"credentialId": "Hj7HYjsrlnKFg4SBukeYwxDbah6lzHKmKl5AQscseoU",
"lastUsedTimeStamp": 1760551979931,
"authCount": 1,
"metadata": {
"aaguid": "060b2b0601040182e51c010104041204",
"description": "Generic webauthn authenticator",
"authenticatorVersion": 0,
"userVerificationMethods": [
[
{
"userVerification": 1,
"userVerificationMethod": "presence_internal"
}
]
],
"matcherProtection": [
"MATCHER_PROTECTION_TEE",
"MATCHER_PROTECTION_ON_CHIP"
],
"tcDisplay": {
"schema": 1,
"secureDisplayList": [
"SECURE_DISPLAY_ANY"
]
},
"isKeyRestricted": true,
"isFreshUserVerificationRequired": true,
"keyProtection": [
"KEY_PROTECTION_HARDWARE",
"KEY_PROTECTION_TEE"
],
"authenticatorSpecCustomAttributes": {
"authenticatorFidoCertificationLevel": "FIDO_CERTIFIED_L1",
"authenticatorFipsCertificationLevel": "FIPS140_CERTIFIED_L1_PHY_2"
}
}
}
]
}
],
"extensions": [
{
"id": "noknok.uaf.location",
"data": "{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
"operation": "INIT_ADAPTIVE"
},
{
"id": "noknok.uaf.location",
"data": "{\"accuracy\":99.2,\"countryCode\":\"US\",\"latitude\":32.52,\"longitude\":-124.482,\"status\":0}",
"operation": "VERIFY"
}
]
}
DELETE_REG
URL: /nnlgateway/nnl/<tenant_id>/reg Method: POST |
Use DELETE_REG to either deregister a specific registered authenticator or a set of registered authenticators for a designated user. The set of affected registrations can be defined by the protocol family and/or device. For example, it's possible to deregister all of a user's UAF registrations on their device, all of a user's FIDO2 registrations on all their devices, all UAF and FIDO2 registration on their device, or all registrations across all their devices.
To deregister a specific registration, assign the registration's handle to the handle attribute in the request. A handle is an ID that uniquely identifies a registration. If you provide the handle, the Server ignores the message and protocolFamily attributes.
To deregister a set of registered authenticators from the user's device, assign 1 to the deleteAll attribute in the request. The message attribute is mandatory in this situation. The Server extracts the specific device from the message. This is the device that is sending the deregistration request. The protocolFamily attribute in the request specifies the protocol. If protocolFamily is not provided, then the Server extracts the protocols from the message attribute. The protocols in message are all the protocols that the device is capable of supporting.
To deregister all registrations across all of the user's devices, omit the deleteAll attribute from the request. Pass in the protocolFamily attribute to delete registrations by protocol family across all the user's devices. If protocolFamily is not provided, then the Server extracts the protocols from the message attribute. If message only contains one protocol, then the Server deletes all registrations for that protocol family. If message contains both uaf and web, the Server gives preference to web and only deletes the FIDO2 registrations. If the request is missing both protocolFamily and message, then all UAF registrations are deleted on all the user's devices.
In all cases, if protocolFamily specifies a protocol (other than all) that the device does not support, the request fails. For example, both protocolFamily and message are present in the request. protocolFamily's value is web but message only contains uaf. Because the device only supports UAF registrations, this results in an error.
If both the handle and deleteAll=1 are present in the request, the request fails.
DELETE_REG processes the following requests differently starting with the 8.0.0 release.
Request contains deleteAll=1, protocolFamily=uaf, message with uaf and web
New behavior: Deletes all UAF registrations from the device that is sending the request.
Previous behavior: Deleted FIDO2 registrations on the device.Request contains deleteAll=1, protocolFamily=uaf, message with web.
New behavior: Error.
Previous behavior: Deleted all FIDO2 registrations on the device.Request contains deleteAll=1, protocolFamily=web, message with uaf
New behavior: Error.
Previous behavior: Deleted all UAF Registrations on the device identified by message.Request contains deleteAll=0, protocolFamily=uaf, message with uaf and web
New behavior: Deletes all UAF registrations from all the devices
Previous behavior: Deleted all FIDO2 registrations from all the devicesRequest contains deleteAll=0, protocolFamily=uaf, message with web
New behavior: Error.
Previous behavior: Deleted all FIDO2 registrations.Request contains deleteAll=0, protocolFamily=web, message with uaf
New behavior: Error.
Previous behavior: Deleted all UAF registrations.
Request
Attribute | Description |
|---|---|
operation | Required. The string DELETE_REG. |
callerOrigin | Required if a web app is sending the request and that app has a different origin than the Digipass S3 API Server. A web origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. The API Server checks if this origin is listed in its origin allow list, if not, the request is rejected. See My Web Apps Have a Different Origin. |
deleteAll | Optional. 0 (default) or 1. When 1, the Server deregisters a set of registered authenticators. The set is restricted by protocol and device. |
handle | Optional. Uniquely identifies a specific registration to deregister. Takes precedence over the protocolFamily and message attributes. An alphanumeric string, maximum 4000 characters. You can get the handle in the response from the List operations. |
id | Optional. The correlation ID, a unique ID used to associate different requests that comprise an operation. An alphanumeric string, maximum 255 characters. If not provided, the Server generates a unique id and returns it in the response. |
message | Mandatory when deleteAll=1, otherwise optional. Generated by the App SDK on the client. This is an opaque value. The client app is responsible for sending a message. This is a base64-URL encoded string. This string is present if deregistration is initiated from the device where registration was done. Device is derived from message. If protocolFamily is not provided, then the protocol is also derived from message. |
optionsData | Optional. An object used to pass additional attributes to REST API operations. See OptionsData for a complete description. |
protocolFamily | Optional. Restricts deregistration to registered authenticators that use the specified protocol family. One of:
|
sessionData | Required. An object containing the user's session information. See SessionData. |
Response
The following attributes are always present in the JSON payload of the response.
Attribute | Description |
|---|---|
id | A unique id used to correlate different requests comprising an operation. A Base64-URL encoded string. If id was sent in the request, the same id is returned. If not, a server-generated ID is returned. If id was provided in the REST payload but the server was unable to parse the payload, the value is unknown. |
statusCode | Server-specific status code that reports the success or failure of this operation. Integer. See Response Status Codes below for the status and error codes. |
The following attributes are present in the response upon a successful operation (Server status 4000).
Attribute | Description |
|---|---|
additionalInfo | An object containing information about the client app and device initiating deregistration. Contains the attributes listed in the rows below. In order for the API Server to return this information,
|
additionalInfo.app | App information received from the client. App. |
additionalInfo.device | Device details received from the client, provided that the Server received this information in the request via message. DeviceDetail |
additionalInfo.elapsedTime | The amount of time, in milliseconds, to process the request. |
additionalInfo.extensions | Message payload extensions, provided that the Server received this information in the request. List<Extension>. |
additionalInfo.protocol | Protocol used by the Authentication Server based on information from the request. Not present when registrations from two or more protocols were deleted. |
additionalInfo.protocolFamily | Protocol family processed by the Server. Registrations belonging to this protocol were deleted. One of:
|
message | An opaque value that contains the deregistration request to send to the App SDK. A base64-URL encoded string. |
Response status codes
The following are the descriptions of the Auth Server status codes returned by DELETE_REG. Under certain circumstances, the API Server returns an unsuccessful HTTP status code. Examples include an invalid request or invalid session. You can find descriptions of these in API Server Status Codes.
Server Status Code | Description | Examples |
|---|---|---|
4000 | OK. Operation completed | Request created successfully. Deregistration successfully completed on Server. |
4003 | OK. Operation completed | The request was created successfully, but the registration doesn’t exist in the Server. To understand what causes the Auth Server to return a 4003, you need to understand how each protocol handles registration.
|
4402 | Security exception | The tenantID is invalid. |
4404 | Internal Server Error | Internal server error. Failed to write to the database. Failed to read from the database. Failed to connect to the database. |
4406 | Payload Exception | A problem occurred in one or more of the following attributes:
|
4408 | UnsupportedClient MessageException |
|
4409 | ClientMessageException | The message attribute is invalid (for example, a JSON syntax error). The message attribute from the App SDK is malformed (base64URL decode failed). |
4430 | UserNotFound Exception | Failed to locate the user in the Server. |
Samples
Sample request URL
https://www.example.com:8443/nnlgateway/nnl/<tenant_id>/regSample request when a UAF handle is provided and optionsData.needDetails =2
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"handle": "WyJ1YWZfMS4wIiwiQUJDRCNBQkNEIiwiRW84RU54U0VUNDRUMVpVOTR5eVJxLW81ckhTa3ZNNmtubXRJNi1nSUJGUSJd",
}Sample response when a UAF handle is provided and optionsData.needDetails =2
A developer updated the response filter configuration so the API Server returns the protocol and protocol family in additionalInfo.
{
"statusCode": 4000,
"id": "Oa5dUDqY4EhNxtlf381snQ",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwiRW84RU54U0VUNDRUMVpVOTR5eVJxLW81ckhTa3ZNNmtubXRJNi1nSUJGUVwifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbEZhbWlseSI6InVhZiJ9",
"additionalInfo": {
"protocol": "uaf_1.0",
"protocolFamily": "uaf"
}
}Sample request: deleteAll=0, no protocolFamily, no message, and optionsData.needDetails =2
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
}
}Sample response: deleteAll=0, no protocolFamily, no message, and optionsData.needDetails =2
A developer updated the response filter configuration so the API Server returns the protocol and protocol family in additionalInfo.
{
"statusCode": 4000,
"id": "uYGbUDoWaHDbRKZrwpkjnw",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifSx7XCJhYWlkXCI6XCJBQkNEI0FCQ0RcIixcImtleUlEXCI6XCJFbzhFTnhTRVQ0NFQxWlU5NHl5UnEtbzVySFNrdk02a25tdEk2LWdJQkZRXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sIjoidWFmXzEuMCIsInByb3RvY29sRmFtaWx5IjoidWFmIn0",
"additionalInfo": {
"protocol": "uaf_1.0",
"protocolFamily": "uaf"
}
}Sample request: deleteAll=0, no protocolFamily, and message contains UAF and web
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll": 0,
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogICAgIHsKICAgICAgICAicHJvdG9jb2xWZXJzaW9uIjogIndlYl8xLjAiCiAgICAgIH0KICAgIF0KICB9LAogICJ2ZXJzaW9uIjogIjEuMCIsCiAgImRldmljZSI6IHsKICAgICJpZCI6ICIxMjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwIiwKICAgICJ0eXBlIjogImFuZHJvaWQiLAogICAgImluZm8iOiAiTm9rTm9rIEVtdWxhdG9yIiwKICAgICJtb2RlbCI6ICJOb2tOb2stQUUgNy4wIiwKICAgICJvcyI6ICJOb2tOb2tPUyA3LjAiLAogICAgIm1hbnVmYWN0dXJlciI6ICJOb2tOb2siLAogICAgInN1cHBvcnRzUGxhdGZvcm1BdXRoZW50aWNhdG9yIjogZmFsc2UKICB9LAogICJhcHAiOiB7CiAgICAiaWQiOiAiYW5kcm9pZDphcGsta2V5LWhhc2g6ckRRNFRuNjBmQXZ4UDh0aHRwNnNPaDVvY29jIiwKICAgICJuYW1lIjogImFuZHJvaWQ6Y29tLm5va25vay50ZXN0LmNsaWVudCIKICB9Cn0"
}Sample response: deleteAll=0, no protocolFamily, & message contains UAF and web
A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.
{
"statusCode": 4000,
"id": "DTSPbJsvj3ASVr2g8wltCQ",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiY0hyeVRaSHZjYXpWOUJvWGF5cjk3cDlnWmNjOGdQaTFDRTFwRjRjMkZDZ1wifSx7XCJhYWd1aWRcIjpcIjA2MGIyYjA2LTAxMDQtMDE4Mi1lNTFjLTAxMDEwNDA0MTIwNFwiLFwiY3JlZGVudGlhbElEXCI6XCJpQXE1V01YRk85elN5UWVSb1lLSGZRLVVKQ1hzODYtVjdqTDFHQVpFeGEwXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sIjoid2ViXzEuMCIsInByb3RvY29sRmFtaWx5Ijoid2ViIn0",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocol": "web_1.0",
"protocolFamily": "web",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=0, no protocolFamily, and message contains UAF
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll": 0,
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}Sample response: deleteAll=0, no protocolFamily, and message contains UAF
A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.
{
"statusCode": 4000,
"id": "vTk4WVf1Au4q_7ahCkkmlw",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifSx7XCJhYWlkXCI6XCJBQkNEI0FCQ0RcIixcImtleUlEXCI6XCJFbzhFTnhTRVQ0NFQxWlU5NHl5UnEtbzVySFNrdk02a25tdEk2LWdJQkZRXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sIjoidWFmXzEuMCIsInByb3RvY29sRmFtaWx5IjoidWFmIn0",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocol": "uaf_1.0",
"protocolFamily": "uaf",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=0, protocolFamily=uaf, and message contains UAF
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll": 0,
"protocolFamily":"uaf",
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}Sample response: deleteAll=0, protocolFamily=uaf, and message contains UAF
{
"statusCode": 4000,
"id": "G8ql264nwz5Dbt6kL1eviQ",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifSx7XCJhYWlkXCI6XCJBQkNEI0FCQ0RcIixcImtleUlEXCI6XCJFbzhFTnhTRVQ0NFQxWlU5NHl5UnEtbzVySFNrdk02a25tdEk2LWdJQkZRXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sIjoidWFmXzEuMCIsInByb3RvY29sRmFtaWx5IjoidWFmIn0",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocol": "uaf_1.0",
"protocolFamily": "uaf",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=0, protocolFamily=uaf, & message contains UAF and web
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll": 0,
"protocolFamily":"uaf",
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogewogICAgICAgICJwcm90b2NvbFZlcnNpb24iOiAid2ViXzEuMCIKICAgICAgfQogICAgXQogIH0sCiAgInZlcnNpb24iOiAiMS4wIiwKICAiZGV2aWNlIjogewogICAgImlkIjogIjEyMzQ1Njc4OWFiY2RlZjEyMzQ1Njc4OTAiLAogICAgInR5cGUiOiAiYW5kcm9pZCIsCiAgICAiaW5mbyI6ICJOb2tOb2sgRW11bGF0b3IiLAogICAgIm1vZGVsIjogIk5va05vay1BRSA3LjAiLAogICAgIm9zIjogIk5va05va09TIDcuMCIsCiAgICAibWFudWZhY3R1cmVyIjogIk5va05vayIsCiAgICAic3VwcG9ydHNQbGF0Zm9ybUF1dGhlbnRpY2F0b3IiOiBmYWxzZQogIH0sCiAgImFwcCI6IHsKICAgICJpZCI6ICJhbmRyb2lkOmFway1rZXktaGFzaDpyRFE0VG42MGZBdnhQOHRodHA2c09oNW9jb2MiLAogICAgIm5hbWUiOiAiYW5kcm9pZDpjb20ubm9rbm9rLnRlc3QuY2xpZW50IgogIH0KfQ"
}Sample response: deleteAll=0, protocolFamily=uaf, & message contains UAF & web
A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.
{
"statusCode": 4000,
"id": "9tV8OK5NSR98g4xXtQhCiw",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifSx7XCJhYWlkXCI6XCJBQkNEI0FCQ0RcIixcImtleUlEXCI6XCJFbzhFTnhTRVQ0NFQxWlU5NHl5UnEtbzVySFNrdk02a25tdEk2LWdJQkZRXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sIjoidWFmXzEuMCIsInByb3RvY29sRmFtaWx5IjoidWFmIn0",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocol": "uaf_1.0",
"protocolFamily": "uaf",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=0, protocolFamily=uaf, and message contains web
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll": 0,
"protocolFamily":"uaf",
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ3ZWJfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}Sample response: deleteAll=0, protocolFamily=uaf, and message contains web
A developer updated the response filter configuration so the API Server returns client app information in additionalInfo.
{
"statusCode": 4408,
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=0, protocolFamily=web, and message contains UAF and web
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll": 0,
"protocolFamily":"web",
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogewogICAgICAgICJwcm90b2NvbFZlcnNpb24iOiAid2ViXzEuMCIKICAgICAgfQogICAgXQogIH0sCiAgInZlcnNpb24iOiAiMS4wIiwKICAiZGV2aWNlIjogewogICAgImlkIjogIjEyMzQ1Njc4OWFiY2RlZjEyMzQ1Njc4OTAiLAogICAgInR5cGUiOiAiYW5kcm9pZCIsCiAgICAiaW5mbyI6ICJOb2tOb2sgRW11bGF0b3IiLAogICAgIm1vZGVsIjogIk5va05vay1BRSA3LjAiLAogICAgIm9zIjogIk5va05va09TIDcuMCIsCiAgICAibWFudWZhY3R1cmVyIjogIk5va05vayIsCiAgICAic3VwcG9ydHNQbGF0Zm9ybUF1dGhlbnRpY2F0b3IiOiBmYWxzZQogIH0sCiAgImFwcCI6IHsKICAgICJpZCI6ICJhbmRyb2lkOmFway1rZXktaGFzaDpyRFE0VG42MGZBdnhQOHRodHA2c09oNW9jb2MiLAogICAgIm5hbWUiOiAiYW5kcm9pZDpjb20ubm9rbm9rLnRlc3QuY2xpZW50IgogIH0KfQ"
}Sample response: deleteAll=0, protocolFamily=web, and message contains UAF and web
A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.
{
"statusCode": 4000,
"id": "Dw9rVDBE-nzhZgNliigP1A",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiY0hyeVRaSHZjYXpWOUJvWGF5cjk3cDlnWmNjOGdQaTFDRTFwRjRjMkZDZ1wifSx7XCJhYWd1aWRcIjpcIjA2MGIyYjA2LTAxMDQtMDE4Mi1lNTFjLTAxMDEwNDA0MTIwNFwiLFwiY3JlZGVudGlhbElEXCI6XCJpQXE1V01YRk85elN5UWVSb1lLSGZRLVVKQ1hzODYtVjdqTDFHQVpFeGEwXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sIjoid2ViXzEuMCIsInByb3RvY29sRmFtaWx5Ijoid2ViIn0",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocol": "web_1.0",
"protocolFamily": "web",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=0, protocolFamily=web, and no message
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll": 0,
"protocolFamily":"web"
}Sample response: deleteAll=0, protocolFamily=web, and no message
A developer updated the response filter configuration so the API Server returns the protocol and protocol family in additionalInfo.
{
"statusCode": 4000,
"id": "lrV1YTRL9XVUaBovxR9nXw",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiY0hyeVRaSHZjYXpWOUJvWGF5cjk3cDlnWmNjOGdQaTFDRTFwRjRjMkZDZ1wifSx7XCJhYWd1aWRcIjpcIjA2MGIyYjA2LTAxMDQtMDE4Mi1lNTFjLTAxMDEwNDA0MTIwNFwiLFwiY3JlZGVudGlhbElEXCI6XCJpQXE1V01YRk85elN5UWVSb1lLSGZRLVVKQ1hzODYtVjdqTDFHQVpFeGEwXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sIjoid2ViXzEuMCIsInByb3RvY29sRmFtaWx5Ijoid2ViIn0",
"additionalInfo": {
"protocol": "web_1.0",
"protocolFamily": "web"
}
}Sample request: deleteAll=0, protocolFamily=web, and message contains UAF
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll": 0,
"protocolFamily":"web",
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}Sample response: deleteAll=0, protocolFamily=web, and message contains UAF
A developer updated the response filter configuration so the API Server returns client app information in additionalInfo.
{
"statusCode": 4408,
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=0, protocolFamily=all, and message present
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll": 0,
"protocolFamily":"all",
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogewogICAgICAgICJwcm90b2NvbFZlcnNpb24iOiAid2ViXzEuMCIKICAgICAgfQogICAgXQogIH0sCiAgInZlcnNpb24iOiAiMS4wIiwKICAiZGV2aWNlIjogewogICAgImlkIjogIjEyMzQ1Njc4OWFiY2RlZjEyMzQ1Njc4OTAiLAogICAgInR5cGUiOiAiYW5kcm9pZCIsCiAgICAiaW5mbyI6ICJOb2tOb2sgRW11bGF0b3IiLAogICAgIm1vZGVsIjogIk5va05vay1BRSA3LjAiLAogICAgIm9zIjogIk5va05va09TIDcuMCIsCiAgICAibWFudWZhY3R1cmVyIjogIk5va05vayIsCiAgICAic3VwcG9ydHNQbGF0Zm9ybUF1dGhlbnRpY2F0b3IiOiBmYWxzZQogIH0sCiAgImFwcCI6IHsKICAgICJpZCI6ICJhbmRyb2lkOmFway1rZXktaGFzaDpyRFE0VG42MGZBdnhQOHRodHA2c09oNW9jb2MiLAogICAgIm5hbWUiOiAiYW5kcm9pZDpjb20ubm9rbm9rLnRlc3QuY2xpZW50IgogIH0KfQ"
}Sample response: deleteAll=0, protocolFamily=all, and message present
A developer updated the response filter configuration so the API Server returns the protocol family and client app information in additionalInfo.
{
"statusCode": 4000,
"id": "pTjnMDZnoKXB9BwYuuKRRA",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiY0hyeVRaSHZjYXpWOUJvWGF5cjk3cDlnWmNjOGdQaTFDRTFwRjRjMkZDZ1wifSx7XCJhYWd1aWRcIjpcIjA2MGIyYjA2LTAxMDQtMDE4Mi1lNTFjLTAxMDEwNDA0MTIwNFwiLFwiY3JlZGVudGlhbElEXCI6XCJpQXE1V01YRk85elN5UWVSb1lLSGZRLVVKQ1hzODYtVjdqTDFHQVpFeGEwXCJ9XX1dIn0seyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifSx7XCJhYWlkXCI6XCJBQkNEI0FCQ0RcIixcImtleUlEXCI6XCJFbzhFTnhTRVQ0NFQxWlU5NHl5UnEtbzVySFNrdk02a25tdEk2LWdJQkZRXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sRmFtaWx5IjoiYWxsIn0",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocolFamily": "all",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=0, protocolFamily=all, and no message
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll": 0,
"protocolFamily":"all"
}Sample response: deleteAll=0, protocolFamily=all, and no message
A developer updated the response filter configuration so the API Server returns the protocol family in additionalInfo.
{
"statusCode": 4000,
"id": "cCuvYef07-UsD-M6jLQ2KA",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiY0hyeVRaSHZjYXpWOUJvWGF5cjk3cDlnWmNjOGdQaTFDRTFwRjRjMkZDZ1wifSx7XCJhYWd1aWRcIjpcIjA2MGIyYjA2LTAxMDQtMDE4Mi1lNTFjLTAxMDEwNDA0MTIwNFwiLFwiY3JlZGVudGlhbElEXCI6XCJpQXE1V01YRk85elN5UWVSb1lLSGZRLVVKQ1hzODYtVjdqTDFHQVpFeGEwXCJ9XX1dIn0seyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifSx7XCJhYWlkXCI6XCJBQkNEI0FCQ0RcIixcImtleUlEXCI6XCJFbzhFTnhTRVQ0NFQxWlU5NHl5UnEtbzVySFNrdk02a25tdEk2LWdJQkZRXCJ9XX1dIn1dLCJ2ZXJzaW9uIjoiMS4wIiwib3BlcmF0aW9uIjoiREVMRVRFX1JFRyIsInByb3RvY29sRmFtaWx5IjoiYWxsIn0",
"additionalInfo": {
"protocolFamily": "all"
}
}Sample request: deleteAll=1, no protocolFamily, and message contains web
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll" : 1,
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ3ZWJfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfSwKICAiZXh0ZW5zaW9ucyI6IFsKICAgIHsKICAgICAgImlkIjogIm5va25vay51YWYubG9jYXRpb24iLAogICAgICAiZGF0YSI6ICJ7XCJhY2N1cmFjeVwiOjk5LjIsXCJjb3VudHJ5Q29kZVwiOlwiVVNcIixcImxhdGl0dWRlXCI6MzIuNTIsXCJsb25naXR1ZGVcIjotMTI0LjQ4MixcInN0YXR1c1wiOjB9IiwKICAgICAgImZhaWxfaWZfdW5rbm93biI6IGZhbHNlCiAgICB9LAogICAgewogICAgICAiaWQiOiAibm9rbm9rLndpZmkuc3NpZCIsCiAgICAgICJkYXRhIjogIk92aXlhIiwKICAgICAgImZhaWxfaWZfdW5rbm93biI6IGZhbHNlCiAgICB9LAogICAgewogICAgICAiaWQiOiAibm9rbm9rLmlwYWRkcmVzcyIsCiAgICAgICJkYXRhIjogIjE5Mi4xNjguMC4xMDIiLAogICAgICAiZmFpbF9pZl91bmtub3duIjogZmFsc2UKICAgIH0sCiAgICB7CiAgICAgICJpZCI6ICJub2tub2sudWFmLmphaWxicmVhayIsCiAgICAgICJkYXRhIjogIntcbiAgXCJzdGF0dXNcIiA6IFwiMFwiLFxuICBcImlzSmFpbGJyb2tlblwiIDogXCJmYWxzZVwiXG59IiwKICAgICAgImZhaWxfaWZfdW5rbm93biI6IGZhbHNlCiAgICB9CiAgXSwKICAicXVpY2tBdXRoRGF0YSI6IHsKICAgICJhbGdvcml0aG0iOiB7CiAgICAgICJuYW1lIjogInBia2RmMiIKICAgIH0KICB9Cn0"
}Sample response: deleteAll=1, no protocolFamily, and message contains web
A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.
{
"statusCode": 4000,
"id": "Z-k19R9zdlKuL9sd3FYn6A",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiaUFxNVdNWEZPOXpTeVFlUm9ZS0hmUS1VSkNYczg2LVY3akwxR0FaRXhhMFwifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbEZhbWlseSI6IndlYiJ9",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocol": "web_1.0",
"protocolFamily": "web",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}Sample request: deleteAll=1, no protocolFamily, and message contains UAF
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll" : 1,
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}Sample response: deleteAll=1, no protocolFamily, and message contains UAF
A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.
{
"statusCode": 4000,
"id": "yvnJU7vjBrEy4JI63m29Vw",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbEZhbWlseSI6InVhZiJ9",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocol": "uaf_1.0",
"protocolFamily": "uaf",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=1, no protocolFamily, and message contains UAF and web
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll" : 1,
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAp7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ3ZWJfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}Sample response: deleteAll=1, no protocolFamily, and message contains UAF and web
A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.
{
"statusCode": 4000,
"id": "Z2K2jpAIuhqffXRyNWi2bw",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiaUFxNVdNWEZPOXpTeVFlUm9ZS0hmUS1VSkNYczg2LVY3akwxR0FaRXhhMFwifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbEZhbWlseSI6IndlYiJ9",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocol": "web_1.0",
"protocolFamily": "web",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=1, protocolFamily=uaf, and message contains UAF
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll" : 1,
"protocolFamily" : "uaf",
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}Sample response: deleteAll=1, protocolFamily=uaf, and message contains UAF
A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.
{
"statusCode": 4000,
"id": "hYkk4_jQwp7O41qvTXZUuQ",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbEZhbWlseSI6InVhZiJ9",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocol": "uaf_1.0",
"protocolFamily": "uaf",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=1, protocolFamily=uaf, and message contains web
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll" : 1,
"protocolFamily" : "uaf",
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ3ZWJfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}Sample response: deleteAll=1, protocolFamily=uaf, and message contains web
A developer updated the response filter configuration so the API Server returns client app information in additionalInfo.
{
"statusCode": 4408,
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=1, protocolFamily=uaf, and message contains UAF and web
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll" : 1,
"protocolFamily" : "uaf",
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAp7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ3ZWJfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}Sample response: deleteAll=1, protocolFamily=uaf, and message contains UAF and web
A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.
{
"statusCode": 4000,
"id": "iLYjWaZOheyk7LpIuoQBIQ",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbEZhbWlseSI6InVhZiJ9",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocol": "uaf_1.0",
"protocolFamily": "uaf",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=1, protocolFamily=web, and message contains web
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll" : 1,
"protocolFamily" : "web",
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ3ZWJfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}Sample response: deleteAll=1, protocolFamily=web, and message contains web
A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.
{
"statusCode": 4000,
"id": "4x2kF5RjfIVyBOX0UVXBNg",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiaUFxNVdNWEZPOXpTeVFlUm9ZS0hmUS1VSkNYczg2LVY3akwxR0FaRXhhMFwifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbEZhbWlseSI6IndlYiJ9",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocol": "web_1.0",
"protocolFamily": "web",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=1, protocolFamily=web, and message contains UAF and web
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll" : 1,
"protocolFamily" : "web",
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogICAgIHsKICAgICAgICAicHJvdG9jb2xWZXJzaW9uIjogIndlYl8xLjAiCiAgICAgIH0KICAgIF0KICB9LAogICJ2ZXJzaW9uIjogIjEuMCIsCiAgImRldmljZSI6IHsKICAgICJpZCI6ICIxMjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwIiwKICAgICJ0eXBlIjogImFuZHJvaWQiLAogICAgImluZm8iOiAiTm9rTm9rIEVtdWxhdG9yIiwKICAgICJtb2RlbCI6ICJOb2tOb2stQUUgNy4wIiwKICAgICJvcyI6ICJOb2tOb2tPUyA3LjAiLAogICAgIm1hbnVmYWN0dXJlciI6ICJOb2tOb2siLAogICAgInN1cHBvcnRzUGxhdGZvcm1BdXRoZW50aWNhdG9yIjogZmFsc2UKICB9LAogICJhcHAiOiB7CiAgICAiaWQiOiAiYW5kcm9pZDphcGsta2V5LWhhc2g6ckRRNFRuNjBmQXZ4UDh0aHRwNnNPaDVvY29jIiwKICAgICJuYW1lIjogImFuZHJvaWQ6Y29tLm5va25vay50ZXN0LmNsaWVudCIKICB9Cn0"
}Sample response: deleteAll=1, protocolFamily=web, and message contains UAF and web
A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.
{
"statusCode": 4000,
"id": "VZdG19YgQxK13dBzAWzu6w",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiaUFxNVdNWEZPOXpTeVFlUm9ZS0hmUS1VSkNYczg2LVY3akwxR0FaRXhhMFwifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbEZhbWlseSI6IndlYiJ9",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocol": "web_1.0",
"protocolFamily": "web",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=1, protocolFamily=web, and message contains UAF
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll" : 1,
"protocolFamily" : "web",
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9CiAgICBdCiAgfSwKICAidmVyc2lvbiI6ICIxLjAiLAogICJkZXZpY2UiOiB7CiAgICAiaWQiOiAiMTIzNDU2Nzg5YWJjZGVmMTIzNDU2Nzg5MCIsCiAgICAidHlwZSI6ICJhbmRyb2lkIiwKICAgICJpbmZvIjogIk5va05vayBFbXVsYXRvciIsCiAgICAibW9kZWwiOiAiTm9rTm9rLUFFIDcuMCIsCiAgICAib3MiOiAiTm9rTm9rT1MgNy4wIiwKICAgICJtYW51ZmFjdHVyZXIiOiAiTm9rTm9rIiwKICAgICJzdXBwb3J0c1BsYXRmb3JtQXV0aGVudGljYXRvciI6IGZhbHNlCiAgfSwKICAiYXBwIjogewogICAgImlkIjogImFuZHJvaWQ6YXBrLWtleS1oYXNoOnJEUTRUbjYwZkF2eFA4dGh0cDZzT2g1b2NvYyIsCiAgICAibmFtZSI6ICJhbmRyb2lkOmNvbS5ub2tub2sudGVzdC5jbGllbnQiCiAgfQp9"
}Sample response: deleteAll=1, protocolFamily=web, and message contains UAF
A developer updated the response filter configuration so the API Server returns client app information in additionalInfo.
{
"statusCode": 4408,
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=1, protocolFamily=all, and both UAF and FIDO2 registrations exist
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll" : 1,
"protocolFamily" : "all",
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogICAgIHsKICAgICAgICAicHJvdG9jb2xWZXJzaW9uIjogIndlYl8xLjAiCiAgICAgIH0KICAgIF0KICB9LAogICJ2ZXJzaW9uIjogIjEuMCIsCiAgImRldmljZSI6IHsKICAgICJpZCI6ICIxMjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwIiwKICAgICJ0eXBlIjogImFuZHJvaWQiLAogICAgImluZm8iOiAiTm9rTm9rIEVtdWxhdG9yIiwKICAgICJtb2RlbCI6ICJOb2tOb2stQUUgNy4wIiwKICAgICJvcyI6ICJOb2tOb2tPUyA3LjAiLAogICAgIm1hbnVmYWN0dXJlciI6ICJOb2tOb2siLAogICAgInN1cHBvcnRzUGxhdGZvcm1BdXRoZW50aWNhdG9yIjogZmFsc2UKICB9LAogICJhcHAiOiB7CiAgICAiaWQiOiAiYW5kcm9pZDphcGsta2V5LWhhc2g6ckRRNFRuNjBmQXZ4UDh0aHRwNnNPaDVvY29jIiwKICAgICJuYW1lIjogImFuZHJvaWQ6Y29tLm5va25vay50ZXN0LmNsaWVudCIKICB9Cn0"
}Sample response: deleteAll=1, protocolFamily=all, and both UAF and FIDO2 registrations exist
A developer updated the response filter configuration so the API Server returns the protocol family and client app information in additionalInfo.
{
"statusCode": 4000,
"id": "2AKFSQexyhKmTdtskPGX6Q",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbEZhbWlseSI6ImFsbCJ9",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocolFamily": "all",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=1, protocolFamily=all, and only UAF registrations exist
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll" : 1,
"protocolFamily" : "all",
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogICAgIHsKICAgICAgICAicHJvdG9jb2xWZXJzaW9uIjogIndlYl8xLjAiCiAgICAgIH0KICAgIF0KICB9LAogICJ2ZXJzaW9uIjogIjEuMCIsCiAgImRldmljZSI6IHsKICAgICJpZCI6ICIxMjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwIiwKICAgICJ0eXBlIjogImFuZHJvaWQiLAogICAgImluZm8iOiAiTm9rTm9rIEVtdWxhdG9yIiwKICAgICJtb2RlbCI6ICJOb2tOb2stQUUgNy4wIiwKICAgICJvcyI6ICJOb2tOb2tPUyA3LjAiLAogICAgIm1hbnVmYWN0dXJlciI6ICJOb2tOb2siLAogICAgInN1cHBvcnRzUGxhdGZvcm1BdXRoZW50aWNhdG9yIjogZmFsc2UKICB9LAogICJhcHAiOiB7CiAgICAiaWQiOiAiYW5kcm9pZDphcGsta2V5LWhhc2g6ckRRNFRuNjBmQXZ4UDh0aHRwNnNPaDVvY29jIiwKICAgICJuYW1lIjogImFuZHJvaWQ6Y29tLm5va25vay50ZXN0LmNsaWVudCIKICB9Cn0"
}Sample response: deleteAll=1, protocolFamily=all, and only UAF registrations exist
A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.
{
"statusCode": 4000,
"id": "J6KIbVzvpd-0fKtUyHS_Gg",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wiaGVhZGVyXCI6e1widXB2XCI6e1wibWFqb3JcIjoxLFwibWlub3JcIjowfSxcIm9wXCI6XCJEZXJlZ1wiLFwiYXBwSURcIjpcImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvU2FtcGxlQXBwXCJ9LFwiYXV0aGVudGljYXRvcnNcIjpbe1wiYWFpZFwiOlwiQUJDRCNBQkNEXCIsXCJrZXlJRFwiOlwid19JZ1ljSWlQRjJETW16NlZYV05UODhEM29IT3BtQ3hhQmstS2JTTGRsa1wifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6InVhZl8xLjAiLCJwcm90b2NvbEZhbWlseSI6InVhZiJ9",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocol": "uaf_1.0",
"protocolFamily": "uaf",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}Sample request: deleteAll=1, protocolFamily=all, and only FIDO2 registrations exist
{
"operation": "DELETE_REG",
"sessionData":{
"sessionKey":"<session JWT>"
},
"deleteAll" : 1,
"protocolFamily" : "all",
"message": "ewogICJvb2JEYXRhIjogIm5ld09PYkRhdGEiLAogICJzZGsiOiB7CiAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAicHJvdG9jb2xzIjogWwogICAgICB7CiAgICAgICAgInByb3RvY29sVmVyc2lvbiI6ICJ1YWZfMS4wIgogICAgICB9LAogICAgIHsKICAgICAgICAicHJvdG9jb2xWZXJzaW9uIjogIndlYl8xLjAiCiAgICAgIH0KICAgIF0KICB9LAogICJ2ZXJzaW9uIjogIjEuMCIsCiAgImRldmljZSI6IHsKICAgICJpZCI6ICIxMjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwIiwKICAgICJ0eXBlIjogImFuZHJvaWQiLAogICAgImluZm8iOiAiTm9rTm9rIEVtdWxhdG9yIiwKICAgICJtb2RlbCI6ICJOb2tOb2stQUUgNy4wIiwKICAgICJvcyI6ICJOb2tOb2tPUyA3LjAiLAogICAgIm1hbnVmYWN0dXJlciI6ICJOb2tOb2siLAogICAgInN1cHBvcnRzUGxhdGZvcm1BdXRoZW50aWNhdG9yIjogZmFsc2UKICB9LAogICJhcHAiOiB7CiAgICAiaWQiOiAiYW5kcm9pZDphcGsta2V5LWhhc2g6ckRRNFRuNjBmQXZ4UDh0aHRwNnNPaDVvY29jIiwKICAgICJuYW1lIjogImFuZHJvaWQ6Y29tLm5va25vay50ZXN0LmNsaWVudCIKICB9Cn0"
}Sample response: deleteAll=1, protocolFamily=all, and only FIDO2 registrations exist
A developer updated the response filter configuration so the API Server returns the protocol, protocol family, and client app information in additionalInfo.
{
"statusCode": 4000,
"id": "7qCOX4MVUSgYhMMX_RBTKQ",
"message": "eyJwcm90b2NvbE1lc3NhZ2VzIjpbeyJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbE1lc3NhZ2UiOiJbe1wid2ViQXV0aGVudGljYXRvcnNcIjpbe1wiYWFndWlkXCI6XCIwNjBiMmIwNi0wMTA0LTAxODItZTUxYy0wMTAxMDQwNDEyMDRcIixcImNyZWRlbnRpYWxJRFwiOlwiaUFxNVdNWEZPOXpTeVFlUm9ZS0hmUS1VSkNYczg2LVY3akwxR0FaRXhhMFwifV19XSJ9XSwidmVyc2lvbiI6IjEuMCIsIm9wZXJhdGlvbiI6IkRFTEVURV9SRUciLCJwcm90b2NvbCI6IndlYl8xLjAiLCJwcm90b2NvbEZhbWlseSI6IndlYiJ9",
"additionalInfo": {
"device": {
"id": "123456789abcdef1234567890",
"type": "android",
"info": "NokNok Emulator",
"model": "NokNok-AE 8.0",
"os": "NokNokOS 8.0",
"manufacturer": "NokNok",
"supportsPlatformAuthenticator": false
},
"protocol": "web_1.0",
"protocolFamily": "web",
"app": {
"id": "android:apk-key-hash:rDQ4Tn60fAvxP8thtp6sOh5ococ",
"name": "android:com.noknok.test.client"
}
}
}UPDATE_REG
Use to update any of the following data associated with the registration:
The name of the registered authenticator
User Verification Index (UVI) status
User Verification State (UVS) status
UVI and UVS are applicable to UAF only. The registered authenticator name is applicable to UAF and FIDO2.
UVI is used for Android devices and UVS is used for iOS devices.
The UVI is an optional value sent by the UAF Authenticator in the key registration data during registration and in the signed data during authentication. For example, a fingerprint-based authenticator could send a unique UVI string for a specific fingerprint.
During registration, the Server stores the UVI along with the authenticator data and returns uviStatus (UVI_REGISTERED).
During authentication, the Server compares the UVIs sent by the client with the authenticator-associated UVIs and returns uviStatus with one of the following values:
Value | Status | Description |
|---|---|---|
-1 | UNKNOWN | UVI unknown and not seen before. |
0 | PENDING | UVI seen before, but not activated. |
1 | ACTIVE | UVI seen before and activated. |
2 | DELETED | UVI deleted (this authenticator was deregistered). |
3 | DISABLED | UVI is disabled. |
4 | UVI_REGISTERED | UVI same as the registered UVI. |
5 | UVI_STATUS | UVI status. |
Use the API POST /nnlgateway/nnl/<tenant_id>/reg method with an UPDATE_REG operation to activate a UVI, which updates its status from PENDING to ACTIVE.
In the case of UVS, an optional value is sent by the UAF Authenticator in the key registration data during registration and in the signed data during authentication. For example, a fingerprint-based authenticator could send a unique UVS string for a set of enrolled fingerprints on that device.
During registration, the Server stores the UVS along with the authenticator data and returns uvsStatus (REGISTERED).
During authentication, the Server compares the UVS sent by the client with the authenticator-associated UVS and returns uvsStatus with one of the following values:
Value | Status | Description |
|---|---|---|
0 | UNKNOWN | UVS unknown and not seen before. |
1 | KNOWN | UVS seen before |
2 | UNEXPECTED | UVS not seen before, but was received during authentication |
3 | MISSING | UVS seen before, but was missing during authentication. |
4 | REGISTERED | UVS registered. |
Request
Attribute | Description |
|---|---|
operation | Required. The string UPDATE_REG. |
callerOrigin | Required if a web app is sending the request and that app has a different origin than the Digipass S3 API Server. A web origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. The API Server checks if this origin is listed in its origin allow list, if not, the request is rejected. See My Web Apps Have a Different Origin. |
handle | Required. Uniquely identifies the registration for the user. This must be matched with the registration that has to be updated. handle is returned as a response from FINISH_REG. An alphanumeric string, maximum of 4000 characters. |
id | Optional. The correlation ID, a unique identifier that associates operations like INIT_REG, UPDATE_REG, and FINISH_REG operations for the same user. An alphanumeric string, maximum of 255 characters. No special characters are allowed. If not provided, the Server generates a unique id and returns it in the response. |
optionsData | Optional. An object used to pass additional attributes to REST API operations. See OptionsData for a complete description. |
regData | Required. Name-value pair array with relevant information. This updates the registration data. A list of type RegData.
For example, in the case of UVI: For example, in the case of UVS: For example, in the case of authenticatorName: |
sessionData | Required. An object containing the user's session information. See SessionData. |
Response
The following attributes are always present in the JSON payload of the response.
Attribute | Description |
|---|---|
id | The unique id that correlates INIT_REG and FINISH_REG operations for the same user. An alphanumeric string, maximum of 255 characters. If id was sent in the request, the same id is returned. If not, a server-generated ID is returned. If id was provided in the REST payload but the server was unable to parse the payload, the value is unknown. |
statusCode | Server-specific status code that reports the success or failure of the requested operation. Integer. See Response Status Codes below. |
The following attributes are present in the response upon a successful operation (Server status code 4000).
Attribute | Description |
|---|---|
additionalInfo | An object containing information about the client app and device that is registering. In order for the API Server to return this information,
|
additionalInfo.protocolFamily | The protocol used by the Authentication Server based on information from the request. String. One of UAF or Web. |
Response status codes
The following are the descriptions of the Auth Server status codes returned by UPDATE_REG. Under certain circumstances, the API Server returns an unsuccessful HTTP status code. Examples include an invalid request or invalid session. You can find descriptions of these in API Server Status Codes.
Server Status Code | Description | Examples |
|---|---|---|
4000 | OK. Operation completed | Request created successfully. |
4001 | OK. credential variance | UVI is different |
4400 | Registration NotFound Exception | Failed to authenticate because the user registration does not exist on the Server. |
4404 | InternalServer Exception | Internal server error. Failed to read from the database. Failed to connect to the database. Failed to read required properties. |
4406 | Payload Exception | An error occurred with one or more of the following attributes.
|
4430 | UserNotFound Exception | Failed to locate the user in the Server. |
Samples
Sample request URL
https://www.example.com:8443/nnlgateway/nnl/<tenant_id>/regSample Request
{
"operation":"UPDATE_REG",
"sessionData":{
"sessionKey": "<session JWT>"
},
"id":"sample",
"handle": "WyJ1YWZfMS4wIiwiQUJDRCNBQkNEIiwiR3BJUG92SFhIa1NBdVJKWDdINUNodklWeVp6M2N4LXdpWlg2d08wbktHVSJd",
"regData":[
{
"name":"uvi",
"value":"WtnlSQOq1LUlqCZ-MLpJpiqJ1QTGrSNgah3HCO8kcNU"
},
{
"name":"uviStatus",
"value":"1"
}
]
}Sample response
A developer updated the response filter configuration so the API Server returns the protocol family in additionalInfo.
{
"id":"dEgViadKjxcleujKbpfi6g",
"statusCode":4000,
"additionalInfo":{
"protocolFamily":"u2f"
}
}SUSPEND_REG
Suspends the FIDO authenticator for the given sessionData and authenticator handle. After a successful operation, updates the authenticator status in the database to 3.
Request
Attributes present in the JSON payload of the request.
Attribute | Description |
|---|---|
operation | Required. The string UPDATE_REG |
callerOrigin | Required if a web app is sending the request and that app has a different origin than the Digipass S3 API Server. A web origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. The API Server checks if this origin is listed in its origin allow list, if not, the request is rejected. See My Web Apps Have a Different Origin. |
handle | Required. Uniquely identifies the registration for the user. This must be matched with the relevant registration that has to be updated. handle is returned as a response from the FINISH_REG operation. An alphanumeric string, maximum of 4000 characters. |
id | Optional. A unique identifier that identifies this operation. An alphanumeric string, maximum of 255 characters. No special characters are allowed. If not provided, the Server generates a unique id and returns it in the response. |
optionsData | Optional. An object used to pass additional attributes to REST API operations. See OptionsData for a complete description. |
requestType | Required. The string SUSPEND_REG. |
sessionData | Required. An object containing the user's session information. See SessionData. |
Response
The following attributes are always present in the JSON payload of the response.
Attribute | Description |
|---|---|
id | The unique id to identify this operation. String. If id was sent in the request, the same id is returned. If not, a server-generated ID is returned. If id was provided in the REST payload but the server was unable to parse the payload, the value is unknown. |
statusCode | Server-specific status code that reports the success or failure of the requested operation. Integer. See the previous Response Status Codes for the status and error codes. |
Samples
Sample request URL
https://www.example.com:8443/nnl/v2/regSample request
{
"operation":"UPDATE_REG",
"requestType":"SUSPEND_REG",
"userName":"testUser", "handle":"WyJ1YWZfMS4wIiwiQUJDRCMwMDAxIiwiTFNlZXE3QXJQczhZaW93QlhVUUU1aTQ0cU1ES3hwbDdYTi1ySTl3NUtUUSJd",
"sessionData":{
"sessionKey":"<session JWT>"
},
"tenant":{"id":"default"}
}Sample response
{
"id": "uLijXHuGVEG4qzz31ZCRJQ",
"statusCode": 4000
}RESUME_REG
Resumes the suspended authenticator for the given sessionData and authenticator handle. After a successful operation, the authenticator is available for use.
Request
The following attributes are present in the JSON payload of the request.
Attribute | Description |
|---|---|
operation | Required. The string string UPDATE_REG |
callerOrigin | Required if a web app is sending the request and that app has a different origin than the Digipass S3 API Server. A web origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. The API Server checks if this origin is listed in its origin allow list, if not, the request is rejected. See My Web Apps Have a Different Origin. |
handle | Required. Uniquely identifies the registration for the user. This must be matched with the relevant registration that has to be updated. handle is returned as a response of the FINISH_REG operation. An alphanumeric string, maximum of 4000 characters. |
id | Optional. The correlation ID, a unique identifier that associates operations like INIT_REG, UPDATE_REG, and FINISH_REG operations for the same user. An alphanumeric string, maximum of 255 characters. No special characters are allowed. If not provided, the Server generates a unique id and returns it in the response. |
optionsData | Optional. An object used to pass additional attributes to REST API operations. See OptionsData for a complete description. |
requestType | Required. The string RESUME_REG. |
sessionData | Required. An object containing the user's session information. See SessionData. |
Response
The following attributes are always present in the JSON payload of the response.
Attribute | Description |
|---|---|
| The unique id that correlates INIT_REG and FINISH_REG operations for the same user. String. If id was sent in the request, the same id is returned. If not, a server-generated ID is returned. If id was provided in the REST payload but the server was unable to parse the payload, the value is unknown. |
| Server-specific status code that reports the success or failure of the requested operation. Integer. See Response Status Codes for UPDATE_REG for the status and error codes. |
Samples
Sample request URL
https://www.example.com:8443/nnl/v2/regSample Request
{
"operation":"UPDATE_REG",
"requestType":"RESUME_REG",
"userName":"testUser",
"handle":"WyJ1YWZfMS4wIiwiQUJDRCMwMDAxIiwiTFNlZXE3QXJQczhZaW93QlhVUUU1aTQ0cU1ES3hwbDdYTi1ySTl3NUtUUSJd"
}Sample response
{
"id": "uLijXHuGVEG4qzz31ZCRJQ",
"statusCode": 4000
}