openid / openid/OpenID4VP

Mechanism for trust frameworks to limit the credentials & claims that a verifier is allowed to request

Open
#232 29 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

https://github.com/openid/OpenID4VP/issues/182 and https://github.com/openid/OpenID4VP/issues/189 both propose solutions to an underlying problem - that ecosystems / trust frameworks want to have some way to restrict the credentials and claims within those credentials that a verifier can request.

Unfortunately the mechanisms mentioned in both issues are incompatible with the browser API, as they would require the wallet to fetch an external network resource in order to know if it has any credentials that match the request, and (on Android) the wallet must be able to tell the OS/browser what credentials it has that match the request in a sandboxed request matcher without doing any network operations to avoid leaking information about the request to all installed wallets without user consent (or possibly #189 requires comparison of the presentation exchange JSON, which is akin to canonicalisation of JSON and a known interoperability issue).

This issue hence avoids suggesting a full solution, but I observe that for compatibility with the browser API it seems like the solution must take one of two forms:

  1. The full information as to what the verifier is allowed to request is included inline in the request, in a way that the wallet can later verify if it is genuine (e.g. a JWT signed by a third party that contains the query), or:
  2. Some kind of permission language is defined that allows a wallet (once a credential has been selected) to check if a request is permitted for this verifier or not.

I think initially we should focus on whether there are any ways other than '1' or '2' to achieve this, and try to figure out which of those two solutions is preferred.

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

Read OpenID4VP issues 182 and 189 alongside the WICG Digital Credentials browser API. Compare the proposed approaches with the browser API's sandboxed request-matching constraints; done means reaching and documenting a decision on whether another approach exists and which viable direction should be pursued.

Written by the indexing model from the issue text.

Assessment

Domain
authentication, authorization, backend-api-design, 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.