<div dir="ltr"><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">In some consulting work I'm doing for a government-focused use case of OIDC4VP, I have been concerned that the current protocol definition sets users up for a bad UX in certain cases. My questions to this group are:</div><div dir="ltr"><div dir="ltr"><div class="gmail_quote"><div dir="ltr"><p><br>1. Have I diagnosed accurately?<br>2. Do you have an appetite to plug the gap?</p><p>Here's the issue.</p><p>DCQL lets a verifier specify the type of credential they'd like to see, along with an acceptable issuer and which credential fields they need to see. If a user has only one credential that meets the criteria, then such a query is unambiguous. However, if a user has more than one credential that matches the profile, how can the user know which credential alternative will make the verifier happy? They can guess, and send something to the verifier that they think will be acceptable. The verifier can then apply additional business logic that the user knows nothing about, leading to a rejection. In such a case, the user won't understand why their submission was rejected, since it satisfied all the criteria they knew about. Further, the verifier won't know that the user actually <strong>could</strong> satisfy all the criteria they have, because there's no way for the verifier to say everything they actually want, and no way for the user to tell them that they have several matches. </p><p>DCQL does allow query criteria that match a specific claim value ("I must see a credential that shows that you live in a city named Berlin), and that kind of match can be ORed ("I must see a credential that shows that you live in a city named Berlin or Hamburg or Munich"). This is a partial workaround for the problem. However, it is impractical for use cases like this:</p><ul><li><span style="font-size:inherit">Prove that you have a bank account with a credit limit greater than X.</span></li><li><span style="font-size:inherit">Prove that you received a shipment of merchandise type X (supply chain handoff) less than 6 months ago.</span></li></ul><p>The common characteristic of these use cases is that the user might have more than one credential that satisfies most of the criteria, but the last part of the criteria requires checking a range or a very large set that can't simply be enumerated. As long as there's no way to express such criteria in OIDC4VP, the user sees only a request like this:</p><ul><li><span style="font-size:inherit">Prove that you have a bank account</span></li><li><span style="font-size:inherit">Prove that you received a shipment of merchandise type X</span></li></ul><p>...and verifier then rejects proof for no reason the user can understand. </p><p>--Daniel Hardman, involved with identity in various contexts</p></div>
</div></div>
</div>
</div></div>