Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: [RP] same device flow #77

Merged
merged 9 commits into from
Jul 28, 2023
Merged

feat: [RP] same device flow #77

merged 9 commits into from
Jul 28, 2023

Conversation

peppelinux
Copy link
Member

This PR closes #74

Comment on lines 135 to 150
Same Device Flow
----------------
In the **Same Device Authorization Flow**, the User interacts with a Verifier that resides in the same device of the Wallet Instance.
This scenario utilizes HTTP redirects to finalize the authorization phase and obtain Verifiable Presentation(s).

The flow is identical to the cross device with the only replacement of the steps relating to the use of the QRCode, i.e. steps number **3**, **4**, **5** and **6**, which are replaced by a single step described below.

The Relying Party produces a URL similar to the one contained in the QRCode produced in the Cross Device Flow, then provides it to the Wallet Instance via an HTTP 302 response (redirect), represented in the following non-normative example:

.. code:: text

HTTP/1.1 /pre-authz-endpoint Found
Location: https://verifier.example.org/request_uri_endpoint?
client_id=https%3A%2F%2Fverifier.example.org%2Fcb
&request_uri=https%3A%2F%2Fverifier.example.org%2Frequest_uri_endpoint

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we add that the user will first have to select their wallet provider?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why?

in the presentation phase the user interact directly to the RP with their wallet instance.

What would you like to say?

Copy link
Collaborator

@grausof grausof Jul 24, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if the user has multiple wallet providers (multiple verifier apps) how do they decide which one to use?
The universal link is unique for each verifier app

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should better clarify the scenario. I see at least the following scenarios:

  1. The User starts a browser (external to the Walle Instance) in the device, wants to get access to a RP and the RP trigger the Wallet Instance for the User authentication...
  2. The User interacts directly with the Wallet Instance that provide a list of RP services to the User. The User select the service to which requesting the access and the Wallet Instance starts an embedded browser for the interaction with the RP.

In the case 1 we need the User select the Wallet Provider directly into the RP. In the second case, the wallet instance could handle the redirect as the User is already in the Wallet Instance.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, we really have to take out the possibility that the user should select the wallet provider in a RP discovery page.

The RP provides the QRCode, the User open their Wallet Instance and starts the flow.
At the end of the road we must adopt all the compromises to have the EUDI interop, then every member state will support the same things (even with custom extension but the same for interop needs)

for the PoC the user knows that a specific app is needed to start the flow

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, we should (or MUST??) avoid burdening the user with this. At the same time we should understand how to handle the Wallet Instance invocation in an external initiated scenario. I think this is the point. We could reach a compromise for the PoC but I think we should have a clear proposal on this topic regarding the EUDI interoperability.

docs/en/relying-party-solution.rst Outdated Show resolved Hide resolved
docs/en/relying-party-solution.rst Outdated Show resolved Hide resolved
docs/en/relying-party-solution.rst Outdated Show resolved Hide resolved
@peppelinux peppelinux requested a review from grausof July 26, 2023 11:00
Comment on lines -61 to +56
- The Relying Party inserts the reference URI of the *request_uri* into a QR Code.
- In the **Same Device Flow** the Relying Party responses with the Request URI in the form of HTTP Location (302). In the **Cross Device Flow** the Request URI is provided in the form of a QR Code.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is valid if there is only one verifier. If there is more than one then RP will have to make the user choose his Wallet Provider to provide the correct redirect url.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@grausof

I'm going to merge this, your comment was moved here:
#81

@peppelinux peppelinux merged commit 69a02fc into versione-corrente Jul 28, 2023
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

RP Solution - same device flow
3 participants