openid / openid/OpenID4VP

FR: Deferred Presentation over DC API

Open
#581 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Shell
Stars
112
Forks
38
Avg merge
12d 19h
Merged PRs (30d)
4

Description

This is a feature request for a use case we are looking into. It is of interest when:

  • The Verifier is happy to accept a response within a relatively long window (e.g. many existing KYC, account recovery, account verification may take 24 hours or more), but wants to have reasonable confidence that it will get a verfication
  • A wallet does not have a credential, but has the potentially to get one from pre-registered issuers (e.g. an EUDI Wallet may be installed, but the user has not yet issued their PID). Additionally, the authorization or credential issuance is deferred.

The flow today would be something like:

  • The Verifier calls DC API with a request.
  • No registered wallet has credentials but one or more wallets believe they can authenticate the user to an issuer with credentials that may be able to.
  • User selects a wallet and/or issuer and performs issuance per OpenId4VCI (specifics is out of scope)
  • If the credential is issued synchronously it can be returned as a response as if it is always there
  • If it is deferred, currently we are stuck (and would have to return an error).

The proposed flow would instead allow a response to be returned indicating that the full credential response will be deferred. At some point later after issuance completes, with proper consent, the presentation can be completed in a back channel.

The benefits

  • Verifiers are encouraged to call the API even when total coverage of existing credentials is low, and need to fall back to existing mechanisms less often.
  • Users end up with a re-usable credential, benefiting them for future presentations.

Both of these help solve the bootstrapping problem that otherwise exists for deferred issuance credentials. Doing it through the standard (vs wallets attempting to create side channels) provides a better user experience and better inter-op.

Proposed Solution

My proposal to solve this is to leverage the existing 'direct_post.jwt' response mechanism within the context of the DC API. To do this, request_uri and request_uri_method may optionally be included in a request with dc_api response_mode. DC API may then either return the response (in band) or return a response code indicating that it will come as a post sometime later.

I'm curious if this sounds reasonable and is something the group would be interested in supporting?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No repository files or tests are identified. Start by reviewing the existing direct_post.jwt response mechanism and the DC API request fields request_uri and request_uri_method. Done would require an agreed specification for deferred response signaling and later back-channel presentation after OpenID4VCI issuance.

Written by the indexing model from the issue text.

Assessment

Domain
api, authentication, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.