Identity Verifier Plugin
Identity Verifier plugin helps an external relying party to come as a trusted eKYC partner (verifier). The plugin is used by the verifier to verify an authenticated user (who already signed up with eSignet). An 'authenticated user' can now go to the signup portal, and choose from the list of trusted verifiers, and go through the verification process to update his/her profile with verification metadata and mark claims as verified. With this identity Verifier plugin a video based online verification process has been designed.
The video based process can be used to verify for following:
Liveliness check
Face match
Document verification
Disability check
After a successful verification, the verified claims and the verification metadata can be stored in the ID registry which essentially means a successful user verification and thus user creation in the system.
How does it work under the hood?
Every verification process can consist of any combination of steps.
Signup service can start the process and end the process when signaled by the chosen verifier.
The end-step will expect verification details of the User and will update this in the ID registry (against this authenticated end user's individual ID).
How is the 'user authenticated' context shared with the signup portal?
Authentication of the user before the verification process is carried out in eSignet(OP).
An authenticated user's transaction is shared as an id_token_hint to the signup portal.
The signup portal now takes the role of an RP and starts OIDC flow in eSignet with "mosip:idp:acr:id-token" ACR. As the authorize request already contains id_token_hint, the user will not be prompted to enter credentials, However! It may still prompt to user to provide consent, only if required, Most of the time, a "sub" claim in the user info response should suffice the requirement.
Provision to integrate with any Identity verification workflow
The signup service has a provision to add any steps between the start and end step in the verification workflow. We have defined the IdentityVerifierPlugin.java abstract class.
What is it that the Verifier will only need to take care of?
Initializing every workflow run with the required configuration based on the provided input.
Verify the input frame based on the current step and publish the feedback or details about the next step to start in this run to kafka (publishAnalysisResult concrete method is already defined in the plugin abstract class).
Once the verifier decides to end the workflow run, it should hint the signup service by publishing end step details using the same publishAnalysisResult concrete method.
The signup service will invoke the getVerificationResult method implemented by the verifier to fetch the verification details. VerificationResult can either be a failure or successful. The same will be conveyed to the end user.
How to add Verifier and its workflow details?
Verifier details should be added signup-identity-verifier-details.json
Create a JSON file with workflow details, file should be named after the verifier ID as defined in the signup-identity-verifier-details.json
Refer to signup-idv_mock-identity-verifier.json the sample workflow details file. Note the file name is prepended with constant "signup-idv_"
Please refer to the sequence diagram below for the detailed working flow of the identity verifier plugin.
Please refer below for the Identity Verifier Plugin reference implementation:
Last updated
Was this helpful?