- Initiate Presentation
- Retrieve Request Object
- Retrieve Presentation Definition
- Send Presentation
Actors:
- Developer/Tester
- Verifier app
Intention: To Provide a presentation definition in order to initiate a Presentation Process
.
Steps:
- Tester provides a Presentation Definition (in JSON) and hits
Initiate Presentation
button - Back-ends gets the Presentation Definition, validates it and initiates
Presentation Process
- Back-end identifies each
Presentation Process
in terms of a UUID - Back-end stores (in memory) the
Presentation Process
- Back-end returns to UI a
AutherizationRequest
which is actually object with two attributes- client_id (just a fixed string value, for now) and
- request_uri : A URL encoded URL pointing to
request_uri
end point. This URL (the request_uri) will have to include somehow (path variable, query variable etc) the UUID of thePresentation Process
- Finally the UI draws either a QR code and/or a deep link for the
AuthorizationRequest
.
For details on AuthorizationRequest using request_uri please check JAR
This is defined in JAR
Actors: Wallet, Verifier (back-end) Intention: Wallet wants to retrieve the Request Object.
This RequestObject
is actually a JWT which includes (as claims) the
parameters of an OpenID4VP and/or SIOPv2 AuthorizationRequest (actually of any OAUTH2 authorization request)
Preconditions:
- Wallet has been informed about the URL of the request_uri (using QR or deep link)
Steps:
- Wallets sends a HTTP Get to the
request_uri
end point - Verifiers extracts from the call the UUID of the
PresentationProcess
and checks its repo to locate the process. - if found should return a
RequestObject
as defined in JAR with a HTTP 200
This is defined in OpenID4VP protocol
Actors: Wallet, Verifier (back-end)
Intention: Wallet wants to get the PresentationDefinition
from the Verifier
Preconditions:
- Wallet has received the
RequestObject
and this includes apresentation_definition_uri
. This URL should somehow include the UUID of thePresentationProcess
(path or query param)
Steps:
- Wallet sends a HTTP Get to the
presentation_definition_uri
- Verifiers extracts from the call the UUID of the
PresentationProcess
and checks its repo to locate the process - if found should return a
PresentationDefinition
in JSON as defined with HTTP 200
This is defined in OpenID4VP protocol and in JARM
Actors: Wallet, Verifier (back-end) Intention: Wallet wants to send to the Verifier his response which include the Verifiable Presentations
TBD