openid / openid/OpenID4VCI

adding an optional `sub` claim in Key proof

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

Nobody has claimed this yet.

Dominant language
No language data
Stars
125
Forks
41
PR merge metrics
No merged PRs in 30d

Description

The spec currently defines that an optional iss value in key proof MUST be the client_id of the Client making the Credential request. However, in many cases, keys to validate a JWT are obtained in combination of iss and kid claims, in which case, having iss set to client_id can be pretty limiting.

To be specific about the problem we face. In our implementation, the key used to sign a key proof is represented as a DID. kid will contain a reference to a key contained in a DID Doc. So the payload needs to contain an actual DID that is used to obtain that DID Doc. The most natural option would be to include DID in the iss value, but that does not match the current spec text requirement. Alternative we are considering is putting DID in sub and it kind of logically makes sense since the Wallet is issuing a proof for a user that is a subject, but from a signature validation perspective, it is very counterintuitive and probably error-prone to obtain a key from a sub claim...

Can we consider removing the requirement that iss must be client_id? I don't think wallet's client_id carry much value in the context of these protocols.

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

The issue names no repository files, tests, or entry points; start by reviewing the current key proof specification and the four-comment discussion. Compare the proposed iss and sub claim semantics for DID-based key lookup, and consider the work done only when the specification change is agreed and documented.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.