Open kneckinator opened 2 years ago
From discussions, it should be noted that the revocation only applies to VID:s and that it only affects future use of the VID as a source for generating a VC.
Thus, it will be possible to revoke a VID by opening any VC derived from it and selecting "revoke". This means that is should not be possible to request a revoke from within a VC that is derived from a UIN. As existing VC:s will not be affected by the revocation, the requirement to check for a revocation status update does not apply,
Updating title and description.
@kneckinator do we have a design for it? or we could do it like lock/unlock?
@danicaerediano we can do it like lock/unlock. @walidkhouryNL to confirm.
Open question: How does the app differentiate the VC derived using UIN from VID?
@rakhimosip this can be done through the id
in the VC. If the id
suffix is the UIN, the VC is derived from the UIN. If not, it is derived from the VID.
This can be crosschecked through the UIN
property.
@kyanthony if it is not yet done, can you please raise a ticket in the mimoto
repository to create the usual proxy-functionality that inji
can use?
Cc: @uocnb
@kneckinator I have summarised the discussion on 10 Aug below. Please review. Post that we can update the content of this ticket.
Assumption: The credential/VC will only have one ID attribute (UIN or VID) at a time.
Mimoto should have the ability to identify the ID attribute in VC and deduce if it contains a UIN or a VID value. For now, we can hardcode the attribute name in Mimoto. In the next phase when we use templates to map VC attributes this logic will need to be revisited.
How will the Mimoto identify if the ID value is UIN or VID? A list of active VIDs for an individual will be available (hardcoded list for now later replaced with API call). If the ID value is present in this list then its a VID. This logic will only work when applied on a VC that is newly downloaded from the platform.
Feature details: An option to revoke VIDs will be given in the profile section of the app. This will provide a list of active VIDs for a resident after UIN/VID + OTP auth or OIDC token auth.
The resident can revoke a VID by selecting that option in the UI and providing OTP. Before revoking the user should be prompted about the impact of revoking the VID with a message like "Your wallet contains a credential with VID 123**89. Revoking this will automatically remove the same from the wallet. Are you sure you want to proceed?"
On successful revocation, a message will be displayed to the user. "VID 123**89 has been revoked. Any credential containing the same will be removed automatically from the wallet". A log for the same will be available in the Transaction History section of the app.
A revoke request failure should display a message indicating the same and not alter the state of the app. A log for the same will be available in the Transaction History section of the app.
If a credential contains VID as ID, then an option to revoke it will be provided when the resident view the credential details.
Given here are the designs for both options: You’ll find two pages in the prototype (check top left corner side panel to find the two pages: Option 1: Revoke VID from profile page Option 2: Revoke single VC from a single VC view
Impact of revoking a VID:
Is there a need to display revoked VIDs in the app? NOT Required
This feature will NOT be supported in 1.1.5 version of platform.
@danicaerediano The overlay/popup looks fine. But why is it displayed on top of a detail view?
Tested on build: MOCKMOTO_io.mosip.residentapp-0.4.0-rc2-newlogic_20220921_1801 Server: Mock server
Observations:
Assigned back to dev.
Screenshots https://user-images.githubusercontent.com/102940764/191943318-d7f98f8e-3d19-4d71-bd84-833c206c8a14.mp4 https://user-images.githubusercontent.com/102940764/191943346-4d9c58a4-9b50-401b-94b7-31a000bbcaf6.mp4
Tested on: [MOCKMOTO_io.mosip.residentapp-0.4.0-rc2-newlogic_20220921_1801.apk] Resident app build: v0.4.0 R3 (android) MOSIP server: Mockmoto Devices: Samsung Galaxy A23
Observations
History
Requesting credential...
My IDs
Bulk Revoking VID
and Individually Revoking VID
has the same function. Described below...Bulk Revoke VID
- Go to profile and select VIDs to revoke. VIDs with the same ID number in that list will be ticked if selected. Once revoked, all of the selected VID with the same ID number should not be in My IDs.
Individual Revoke VID
- Go My ID's and select a VID. Click the kebab menu on the upper right corner and select Revoke . Revoking this ID will also revoke all the VIDs with the same ID number.
Expected Results:
History
should log the downloads correctlyRequesting credential...
when downloading VID - for iOSMy IDs
Bulk Revoke VID
should delete all selected VIDs (multiple revocation) while Individual Revoke VID
revokes that specific VIDASSIGNED BACK TO DEV @danicaerediano @pmigueld @kyanthony
Tested on: MOCK_io.mosip.residentapp-0.4.0-rc3-17-5f7c994-develop-temp-dirty-newlogic_20221003_0914.apk Resident app build: v0.4.0 R3-17-5f7c994 (android) MOSIP server: Mockmoto Device: Samsung Galaxy A23
Observations
History
. Only one download is displayed instead of two.Revoke VID
Individually Revoking VID
still has the same function with Bulk revoke VID
My IDs
does not revoke the VID.STEPS TO REPLICATE OBSERVATIONS
Observation 1
My IDs
My IDs
with same dataHistory
Observation 2
My IDs
My IDs
with same dataProfile
then click on Revoke VID
Observation 3
My IDs
My IDs
with same dataMy IDs
My IDs
are revoked instead of just oneObservation 4
My IDs
My IDs
then click on first VID Profile
then select the remaining VIDMy IDs
My IDs
Observation 5
My IDs
*Expected Results
History
Revoke VID
listMy IDs
ASSIGN BACK TO DEV @pmigueld @danicaerediano @kyanthony
@jannahadlaon
2.) When 2 or more identical VID are downloaded, only one version is displayed in the list of VIDs in Revoke VID
since we are revoking all VIDs that have the same number it is only right we display them uniquely, Bulk Revoke is a feature to revoke multiple VIDs that may or may not have the same VID numbers
3.) Individually Revoking VID still has the same function with Bulk revoke VID
It is only correct that we should revoke all VIDs that have the same number since these VIDs are the same
Thanks for the clarification @danicaerediano! I'll take a note of this in my future testing
@jannahadlaon
1.) Generating VC with same VID is not correctly displayed in History. Only one download is displayed instead of two.
5.) Renaming a VID and then revoking that VID will retain the nametag once that VID is downloaded again.
this only happens since we are using mock server which makes the VCs have the exact same vcKey
Tested on: Android - MOCK_io.mosip.residentapp-0.4.0-rc6-newlogic_20221014_1757.apk iOS - 0.4.0 (11.1)
MOSIP server: Mock
Devices: Samsung Galaxy A23 iPhone 11
WORKS AS EXPECTED for both android and iOS @pmigueld @danicaerediano @kyanthony
Additional notes
in bulk revoke, VIDs should come from the list of VIDs that can be requested via this API (and is available in QA4)
When viewing a VC, there should be a button to revoke the VID that was used to generate the VC. It should not be possible to revoke a UIN. Technically, revoking the VID will perform a call to a MOSIP API endpoint https://docs.mosip.io/1.1.5/apis/resident-service-apis#patch-resident-v1-vid-vid <-- this might no longer be correct. See https://github.com/mosip/inji/issues/50#issuecomment-1196715775
The revocation request requires an OTP, just like to auth factor lock/unlock.
~The revocation status is updated asynchronously and there may be a requirement to check for/get notified about revocation status updates.~