The SSIKit also supports the OIDC/SIOPv2 credential presentation flow, allowing SDK and CLI users to present verifiable credentials to an OIDC compliant verifier.
The respective OIDC4VP/SIOPv2 specification can be found at:
The credential presentation flow is triggered from a Verifier portal, sending an OIDC/SIOP authorization request to the wallet, which acts as a Self-Issued OpenID Provider (SIOP).
To play through the verification flow, let's start at our demo verifier web portal at:
https://verifier.walt.id
SIOP request
To obtain a valid SIOP request URL from the verifier, let's open the verifier portal in a web browser.
Hit the F12 button, to open the developer tools and navigate to the "Network" tab (make sure the request type filter shows All requests), like shown in the following screenshot:
Now hit the "Connect to wallet using VerifiableID" button. The verifier portal redirects to the web wallet, and you find the relevant SIOP request, in the network tab with the request URI starting as /api/wallet/siopv2/initPresentation, like shown in this screenshot:
We want to copy the SIOP request URL, in this example it's:
The command prints the SIOP request URI containing the required credential types, as specified in the command parameters.
Parse SIOP request
Continuing the real-case scenario we started on our demo verifier portal, we can copy the SIOP request URL from the browser network tab, like shown in the previous section, and inspect the SIOP request to see which credentials we have to present, using the parse subcommand like this:
The command prints the requested credentials and their schema IDs. Now we can create and send the SIOP response to the verifier portal.
SIOP response
Using the SIOP request URL we got in the previous sections, we can now generate and post the SIOP response, using the DID and credential issued in the issuance credential request example, to the verifier portal like so:
The command prints the SIOP response object and the redirection address, to which we now have to point our web browser, in order to complete the presentation flow.
The verifier portal shows a successful verification, like shown by this screenshot: