JanssenProject / jans

An open source enterprise digital identity platform for CIAM or workforce... Janssen is a distribution of standards-based, developer friendly, components that are engineered to work together in any cloud. #OAuth #OpenID #FIDO
https://docs.jans.io
Apache License 2.0
462 stars 73 forks source link

feat(jans-config-api): api to remove 2FA creds for the users. #9145

Closed mjatin-dev closed 2 months ago

mjatin-dev commented 2 months ago

Parent issue# https://github.com/GluuFederation/flex/issues/1747

chat link: https://chat.gluu.org/group/service_admin_ui?msg=BsWv2LJtb7n3GFAsa

We need API in config-api to delete 2FA credentials for each user.

Database details of 2FA cred data

project table Columns
Fido2 jansFido2RegistrationEntry jansFido2RegistrationEntry.jansDeviceData
pujavs commented 2 months ago

@mjatin-dev, can you share how to populate device data for a user so that i can test the delete functionality?

mjatin-dev commented 2 months ago

@pujavs , Please use this endpoint /fido2/registration/entries/username to get list of registered fido devices and use id key comes in response to delete respective device data.

pujavs commented 2 months ago

@mjatin-dev id you install new setup then by default jansFido2RegistrationEntry.jansDeviceData is blank and hence asking you for way to populate the same. image

Alternatively you can share a valid json for the same so that i can manually update the same.

mjatin-dev commented 2 months ago

Sure, you can use that response -

[ { "dn": "jansId=dbec5591-0389-42e1-a180-75338c74fadf,ou=fido2_register,inum=8d1cde6a-1447-4766-b3c8-16663e13b458,ou=people,o=jans", "id": "dbec5591-0389-42e1-a180-75338c74fadf", "challange": "JUF46EU_gddXwe1NDY6x7YFzjXE6sHoKjmFq_tIaMDM", "challengeHash": 79228, "creationDate": "2024-07-31T18:20:49", "userInum": "8d1cde6a-1447-4766-b3c8-16663e13b458", "rpId": "https://admin-ui-test.gluu.org", "deletable": false, "publicKeyId": "DTZJzyMiXGMZZchJNh6Te5x9-pHxOYUy-HU_8uZsoGC1xKVH13YynRLai9RYXEOKf8GFXuz5glu3WCeXAtXe3w", "publicKeyIdHash": 314221, "registrationData": { "createdDate": "2024-07-31T18:20:49", "updatedDate": "2024-07-31T19:00:48", "createdBy": "admin", "updatedBy": "admin", "username": "admin", "domain": "admin-ui-test.gluu.org", "userId": "UWaqAphh6JejDOggrzn5pDN6Ara9Bh0h8KDQilufpPs", "challenge": "JUF46EU_gddXwe1NDY6x7YFzjXE6sHoKjmFq_tIaMDM", "attenstationRequest": "{\"super_gluu_request\":true,\"super_gluu_request_mode\":\"two_step\",\"super_gluu_app_id\":\"https://admin-ui-test.gluu.org\",\"username\":\"admin\",\"displayName\":\"admin\",\"session_id\":\"4ed2c4a5-d2e3-4e84-a58d-b7f6563bc55e\",\"attestation\":\"direct\"}", "attenstationResponse": "{\"super_gluu_request\":true,\"super_gluu_request_mode\":\"two_step\",\"type\":\"public-key\",\"response\":{\"deviceData\":\"eyJuYW1lIjoiU00tTTMxNUYiLCJvc19uYW1lIjoicSIsIm9zX3ZlcnNpb24iOiIxMCIsInBsYXRmb3JtIjoiYW5kcm9pZCIsInB1c2hfdG9rZW4iOiJmV2tCYmJMalQ5ZVdpZ2lnU3hWTnZLOkFQQTkxYkdLdDd3Nnc2Y0l0OWNhZTNTMVdaYkNtdmpWVFg1bWpjTHUzZXowVDFxM29kN2JFZjJyWGVfQzRmQkt1WGVBMVVxVEpiV3phbnQtSUZDVkdJZnJ2SnRrVXdTN3ZkZEhnakt1SUEyQVo0X0RMYlNlaWFMSmpzeTYyVFBIZGpmOU1XaDB2NkhQIiwidHlwZSI6Im5vcm1hbCIsInV1aWQiOiIxYzM1NGUxOC01MGViLTMxZWUtYmY1Mi01YzM5MjFiZDNiMjYifQ\",\"clientDataJSON\":\"eyJjaGFsbGVuZ2UiOiJKVUY0NkVVX2dkZFh3ZTFORFk2eDdZRnpqWEU2c0hvS2ptRnFfdElhTURNIiwib3JpZ2luIjoiaHR0cHM6Ly9hZG1pbi11aS10ZXN0LmdsdXUub3JnIiwidHlwZSI6Im5hdmlnYXRvci5pZC5maW5pc2hFbnJvbGxtZW50In0\",\"attestationObject\":\"v2NmbXRzZmlkby11MmYtc3VwZXItZ2x1dWdhdHRTdG10v2N4NWOBeQQETUlJQy96Q0NBcVdnQXdJQkFnSUNFQUV3Q2dZSUtvWkl6ajBFQXdJd2dhQXhDekFKQmdOVkJBWVRBbFZUTVFzd0NRWURWUVFJREFKVVdERVJNQThHQTFVRUNnd0lSMngxZFNCSmJtTXhLakFvQmdOVkJBc01JVWRzZFhVZ1NXNWpJRk5ISUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVURWtNQ0lHQTFVRUF3d2JSMngxZFNCSmJtTWdVMGNnU1c1MFpYSnRaV1JwWVhSbElFTkJNUjh3SFFZSktvWklodmNOQVFrQkZoQnpkWEJ3YjNKMFFHZHNkWFV1YjNKbk1CNFhEVEl6TURNd056RTBNalV3TjFvWERUSTJNRFF3TlRFME1qVXdOMW93Z2JFeEN6QUpCZ05WQkFZVEFsVlRNUXN3Q1FZRFZRUUlEQUpVV0RFUE1BMEdBMVVFQnd3R1FYVnpkR2x1TVJFd0R3WURWUVFLREFoSGJIVjFJRWx1WXpFcU1DZ0dBMVVFQ3d3aFIyeDFkU0JKYm1NZ1UwY2dRMlZ5ZEdsbWFXTmhkR1VnUVhWMGFHOXlhWFI1TVNRd0lnWURWUVFEREJ0VFJ5QkhiSFYxSUVsdVl5QlRSeUJCYm1SeWIybGtJRkJ5YjJReEh6QWRCZ2txaGtpRzl3MEJDUUVXRUhOMWNIQnZjblJBWjJ4MWRTNXZjbWN3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFUcFNWb1R5SThEM29EVzNMZmRBTG5hZkdQK3FpT2xleTRhVFRTYlFVbVVzalJrUnJHSU9ISHhrVlVjd2txTGxyZ3pkWE1FNEYyUHJ5emdSaURoOWJWbzRHN01JRzRNQWtHQTFVZEV3UUNNQUF3RVFZSllJWklBWWI0UWdFQkJBUURBZ2VBTURNR0NXQ0dTQUdHK0VJQkRRUW1GaVJQY0dWdVUxTk1JRWRsYm1WeVlYUmxaQ0JEYkdsbGJuUWdRMlZ5ZEdsbWFXTmhkR1V3SFFZRFZSME9CQllFRkYvNGtINUZCUm9CS0NIWVljb0U2QXNEZXpwVE1COEdBMVVkSXdRWU1CYUFGTGRod1lyVDZqRUNXTDI0TVhvV0ZXcUlyVzh3TUE0R0ExVWREd0VCL3dRRUF3SUZvREFUQmdOVkhTVUVEREFLQmdnckJnRUZCUWNEQWpBS0JnZ3Foa2pPUFFRREFnTklBREJGQWlBcEFKVDZKb0F4WlRBSzRGQm0wZVRTR0ZDQ3BEcUZHcXBtdHZJaWJJa1MzQUloQUpVZ01lMTRBbWo5b0t1cXUzS3JlaFhxUXVOZHBpem5xd3BtRWh6QTd3ZWZjc2lnWEcwRQIgctIRyIYzLJRcquT8GBQ7DR0RuXddRo76yNmvtVNsoRgCIQDBfbw5ddxaKtiEEClqgGBBaqOgX-D-yuado51K-2lBF_9oYXV0aERhdGFYzZI-L9TtvvSwxSt4bS_rQbyy4n9DCWmQEif4BgsbkFxWQQAAAAAAAAAAAAAAAAAAAAAAAAAAAEANNknPIyJcYxllyEk2HpN7nH36kfE5hTL4dT_y5mygYLXEpUfXdjKdEtqL1FhcQ4p_wYVe7PmCW7dYJ5cC1d7fv2ExAmEzJmItMQFiLTJYIB23Km61M_Q5GKs_n5uz28oP-ozBkyLYTTzCx3n8xEWcYi0zWCBCAuf34KhVij3e8xRY9gSgmSFtkDt9_fNgr1nB06x4Gf__\"},\"super_gluu_request_cancel\":false,\"id\":\"DTZJzyMiXGMZZchJNh6Te5x9-pHxOYUy-HU_8uZsoGC1xKVH13YynRLai9RYXEOKf8GFXuz5glu3WCeXAtXe3w\"}", "uncompressedECPoint": "v2ExAmEzJmItMQFiLTJYIB23Km61M_Q5GKs_n5uz28oP-ozBkyLYTTzCx3n8xEWcYi0zWCBCAuf34KhVij3e8xRY9gSgmSFtkDt9_fNgr1nB06x4Gf8", "publicKeyId": "DTZJzyMiXGMZZchJNh6Te5x9-pHxOYUy-HU_8uZsoGC1xKVH13YynRLai9RYXEOKf8GFXuz5glu3WCeXAtXe3w", "type": "public-key", "status": "registered", "counter": 2, "attestationType": "fido-u2f-super-gluu", "signatureAlgorithm": -7, "applicationId": "https://admin-ui-test.gluu.org" }, "counter": 2, "registrationStatus": "registered", "deviceData": { "uuid": "1c354e18-50eb-31ee-bf52-5c3921bd3b26", "type": "normal", "platform": "android", "name": "SM-M315F", "os_name": "q", "os_version": "10", "push_token": "fWkBbbLjT9eWigigSxVNvK:APA91bGKt7w6w6cIt9cae3S1WZbCmvjVTX5mjcLu3ez0T1q3od7bEf2rXe_C4fBKuXeA1UqTJbWzant-IFCVGIfrvJtkUwS7vddHgjKuIA2AZ4_DLbSeiaLJjsy62TPHdjf9MWh0v6HP" }, "baseDn": "jansId=dbec5591-0389-42e1-a180-75338c74fadf,ou=fido2_register,inum=8d1cde6a-1447-4766-b3c8-16663e13b458,ou=people,o=jans" }, { "dn": "jansId=96c4a338-f208-4337-917b-94d6ea5e8e04,ou=fido2_register,inum=8d1cde6a-1447-4766-b3c8-16663e13b458,ou=people,o=jans", "id": "96c4a338-f208-4337-917b-94d6ea5e8e04", "challange": "2U3GpkG_wuKCKiB65t2WJ7g3DJ-3ZV7tpAUnC3ibSJY", "challengeHash": 72373, "creationDate": "2024-08-02T15:34:07", "userInum": "8d1cde6a-1447-4766-b3c8-16663e13b458", "rpId": "https://admin-ui-test.gluu.org/jans-casa", "deletable": false, "displayName": "admin-ui", "publicKeyId": "cNUVL_PHpTDS-_DgirAji8dTcRoYoDSrafGV-8LkMr_jIbtD8KcoEmk83ytmgUdJEPRJ5aoknqrRd4psUrfTFA", "publicKeyIdHash": 328859, "registrationData": { "createdDate": "2024-08-02T15:34:07", "updatedDate": "2024-08-02T15:34:08", "createdBy": "admin", "updatedBy": "admin", "username": "admin", "domain": "admin-ui-test.gluu.org", "userId": "5nYEeGSiUuLJX5bANsJeohnqricS4_wJKRHa7wxfsx0", "challenge": "2U3GpkG_wuKCKiB65t2WJ7g3DJ-3ZV7tpAUnC3ibSJY", "attenstationRequest": "{\"super_gluu_request\":true,\"super_gluu_request_mode\":\"two_step\",\"super_gluu_app_id\":\"https://admin-ui-test.gluu.org/jans-casa\",\"username\":\"admin\",\"displayName\":\"admin\",\"session_id\":\"295e2541-3b75-4715-ac54-2822fd8601b3\",\"attestation\":\"direct\"}", "attenstationResponse": "{\"super_gluu_request\":true,\"super_gluu_request_mode\":\"two_step\",\"type\":\"public-key\",\"response\":{\"deviceData\":\"eyJwdXNoX3Rva2VuIjoiNzQ3ZjBlZTlkYmRiZTEwOGVjNGIxNThjNzM2NTQ1NzJhNzI2NWI0YzhmMjAxMDE5NTI2MjllYzMwNDFhNDRkZSIsInBsYXRmb3JtIjoiaW9zIiwib3NfdmVyc2lvbiI6IjE3LjUuMSIsInV1aWQiOiIzOEFFQjJBMS0wMkExLTRFNUYtQkEyQi1BQzA4MzM0NjFENTkiLCJvc19uYW1lIjoiaU9TIiwidHlwZSI6ImlQaG9uZSIsIm5hbWUiOiJpUGhvbmUifQ==\",\"clientDataJSON\":\"eyJjaGFsbGVuZ2UiOiIyVTNHcGtHX3d1S0NLaUI2NXQyV0o3ZzNESi0zWlY3dHBBVW5DM2liU0pZIiwib3JpZ2luIjoiaHR0cHM6Ly9hZG1pbi11aS10ZXN0LmdsdXUub3JnIiwidHlwZSI6Im5hdmlnYXRvci5pZC5maW5pc2hFbnJvbGxtZW50In0\",\"attestationObject\":\"v2NmbXRzZmlkby11MmYtc3VwZXItZ2x1dWdhdHRTdG10v2N4NWOBeQP_TUlJQyt6Q0NBcUdnQXdJQkFnSUNFQU13Q2dZSUtvWkl6ajBFQXdJd2dhQXhDekFKQmdOVkJBWVRBbFZUTVFzd0NRWURWUVFJREFKVVdERVJNQThHQTFVRUNnd0lSMngxZFNCSmJtTXhLakFvQmdOVkJBc01JVWRzZFhVZ1NXNWpJRk5ISUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVURWtNQ0lHQTFVRUF3d2JSMngxZFNCSmJtTWdVMGNnU1c1MFpYSnRaV1JwWVhSbElFTkJNUjh3SFFZSktvWklodmNOQVFrQkZoQnpkWEJ3YjNKMFFHZHNkWFV1YjNKbk1CNFhEVEl6TURNd056RTBNekl6TkZvWERUSTJNRFF3TlRFME16SXpORm93Z2EweEN6QUpCZ05WQkFZVEFsVlRNUXN3Q1FZRFZRUUlEQUpVV0RFUE1BMEdBMVVFQnd3R1FYVnpkR2x1TVJFd0R3WURWUVFLREFoSGJIVjFJRWx1WXpFcU1DZ0dBMVVFQ3d3aFIyeDFkU0JKYm1NZ1UwY2dRMlZ5ZEdsbWFXTmhkR1VnUVhWMGFHOXlhWFI1TVNBd0hnWURWUVFEREJkVFJ5QkhiSFYxSUVsdVl5QlRSeUJKVDFNZ1VISnZaREVmTUIwR0NTcUdTSWIzRFFFSkFSWVFjM1Z3Y0c5eWRFQm5iSFYxTG05eVp6QlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJJdUxkY1dRVGRXY2pIZ2pUM05FRnR0S2grUTByRXl3MVdzeUZJZUFsNUpCZUZPanZWTUNoMThyK1ZwbGNoWHVFc1BDQUJ2dXhId3dieDhBT1dvZVBjaWpnYnN3Z2Jnd0NRWURWUjBUQkFJd0FEQVJCZ2xnaGtnQmh2aENBUUVFQkFNQ0I0QXdNd1lKWUlaSUFZYjRRZ0VOQkNZV0pFOXdaVzVUVTB3Z1IyVnVaWEpoZEdWa0lFTnNhV1Z1ZENCRFpYSjBhV1pwWTJGMFpUQWRCZ05WSFE0RUZnUVVFM3pUVTRDU3NTL0JhTVZPZ2U0dHpwTGh2WVF3SHdZRFZSMGpCQmd3Rm9BVXQySEJpdFBxTVFKWXZiZ3hlaFlWYW9pdGJ6QXdEZ1lEVlIwUEFRSC9CQVFEQWdXZ01CTUdBMVVkSlFRTU1Bb0dDQ3NHQVFVRkJ3TUNNQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJQVBrNlRDaTc5dUtVa2JJLzVmMzFYT29SU1JYV1RDV1VlditwZ3F2ZUxhUUFpRUFwRVZsMEpSZkpsZUticXB3SkxBNVBzRWg3bDl4SkU2SHlOMWtac2ZrbkJRY3NpZ1hIMEYCIQDLSqDrHpHYTtEn8ZjQ0KH3nrwKhSf6-HiQFkav3J0KeQIhALS1u8cJQyIX5nyBYfKnIIGzCfnlQ45tlump7hYpK6-z_2hhdXRoRGF0YVjNkj4v1O2-9LDFK3htL-tBvLLif0MJaZASJ_gGCxuQXFZBAAAAAAAAAAAAAAAAAAAAAAAAAAAAQHDVFS_zx6Uw0vvw4IqwI4vHU3EaGKA0q2nxlfvC5DK_4yG7Q_CnKBJpPN8rZoFHSRD0SeWqJJ6q0XeKbFK30xS_YTECYTMmYi0xAWItMlggvWfFFIUvYiwEe_JHSUbvwUY6uIbs4JM7fuC7TmYdcOJiLTNYIBQkPnXfPJeOeRO-jfk8LRQ6KGB5v5d29Yt216Ld0VQ3__8\"},\"super_gluu_request_cancel\":false,\"id\":\"cNUVL_PHpTDS-_DgirAji8dTcRoYoDSrafGV-8LkMr_jIbtD8KcoEmk83ytmgUdJEPRJ5aoknqrRd4psUrfTFA\"}", "uncompressedECPoint": "v2ExAmEzJmItMQFiLTJYIL1nxRSFL2IsBHvyR0lG78FGOriG7OCTO37gu05mHXDiYi0zWCAUJD513zyXjnkTvo35PC0UOihgeb-XdvWLdtei3dFUN_8", "publicKeyId": "cNUVL_PHpTDS-_DgirAji8dTcRoYoDSrafGV-8LkMr_jIbtD8KcoEmk83ytmgUdJEPRJ5aoknqrRd4psUrfTFA", "type": "public-key", "status": "registered", "counter": 0, "attestationType": "fido-u2f-super-gluu", "signatureAlgorithm": -7, "applicationId": "https://admin-ui-test.gluu.org/jans-casa" }, "counter": 0, "registrationStatus": "registered", "deviceData": { "uuid": "38AEB2A1-02A1-4E5F-BA2B-AC0833461D59", "type": "iPhone", "platform": "ios", "name": "iPhone", "os_name": "iOS", "os_version": "17.5.1", "push_token": "747f0ee9dbdbe108ec4b158c73654572a7265b4c8f20101952629ec3041a44de" }, "baseDn": "jansId=96c4a338-f208-4337-917b-94d6ea5e8e04,ou=fido2_register,inum=8d1cde6a-1447-4766-b3c8-16663e13b458,ou=people,o=jans" }, { "dn": "jansId=512d7b2c-89ea-4be1-92af-cb114e730f6d,ou=fido2_register,inum=8d1cde6a-1447-4766-b3c8-16663e13b458,ou=people,o=jans", "id": "512d7b2c-89ea-4be1-92af-cb114e730f6d", "challange": "BnDl0uYRNYObEug3z6PjiVc9VYjAiDONra62mjXIwBk", "challengeHash": 78955, "creationDate": "2024-08-07T10:23:14", "userInum": "8d1cde6a-1447-4766-b3c8-16663e13b458", "rpId": "admin-ui-test.gluu.org", "deletable": false, "publicKeyId": "gaEcBxaTkMBUsJt2pvvxglJzVMHxXUzEK2lZzYVF5lQ", "publicKeyIdHash": 81724, "registrationData": { "createdDate": "2024-08-07T10:23:14", "updatedDate": "2024-08-07T10:27:15", "createdBy": "admin", "updatedBy": "admin", "username": "admin", "domain": "admin-ui-test.gluu.org", "userId": "OjvEsPNnDZ7xTm3Xwkf7-UPSFJQ-NXqlOd_Ck12pSeY", "challenge": "BnDl0uYRNYObEug3z6PjiVc9VYjAiDONra62mjXIwBk", "attenstationRequest": "{\"attestation\":\"none\",\"displayName\":\"admin\",\"username\":\"admin\"}", "attenstationResponse": "{\"id\":\"gaEcBxaTkMBUsJt2pvvxglJzVMHxXUzEK2lZzYVF5lQ\",\"isSuccessful\":true,\"response\":{\"attestationObject\":\"o2NmbXRkbm9uZWdhdHRTdG10oGhhdXRoRGF0YVikjZHVp5tBCFVmGadN9klm_j50zRn-V4OMG9wljvmxv3dBAAAAAAAAAAAAAAAAAAAAAAAAAAAAIIGhHAcWk5DAVLCbdqb78YJSc1TB8V1MxCtpWc2FReZUpQECAyYgASFYIHW-ErWvaL5_IWvM5HFVokedxFxbPjzA3On7CyYFFAUcIlggvm5iufi3RRGPHlEtlUcnTLbhrdCMPL2zHsZK5XqfZvg=\",\"clientDataJSON\":\"eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiQm5EbDB1WVJOWU9iRXVnM3o2UGppVmM5VllqQWlET05yYTYybWpYSXdCayIsIm9yaWdpbiI6Imh0dHBzOi8vYWRtaW4tdWktdGVzdC5nbHV1Lm9yZyJ9\"},\"type\":\"public-key\"}", "uncompressedECPoint": "pQECAyYgASFYIHW-ErWvaL5_IWvM5HFVokedxFxbPjzA3On7CyYFFAUcIlggvm5iufi3RRGPHlEtlUcnTLbhrdCMPL2zHsZK5XqfZvg", "publicKeyId": "gaEcBxaTkMBUsJt2pvvxglJzVMHxXUzEK2lZzYVF5lQ", "type": "public-key", "status": "registered", "counter": 1, "attestationType": "none", "signatureAlgorithm": 0, "applicationId": "admin-ui-test.gluu.org" }, "counter": 1, "registrationStatus": "registered", "baseDn": "jansId=512d7b2c-89ea-4be1-92af-cb114e730f6d,ou=fido2_register,inum=8d1cde6a-1447-4766-b3c8-16663e13b458,ou=people,o=jans" } ]

pujavs commented 2 months ago

Fixed via PR 9240

image image