-
Notifications
You must be signed in to change notification settings - Fork 25
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
Support for selecting multiple credentials via a single dcql #298
Comments
@danielfett I spoke with you at IIW about the above requirement that we have. A suggestion I would make is to add a
ConsiderationsThe benefit of the proposal above is that it changes the behaviour for all Also another consideration is the name of this property but I'll leave that for a discussion WDYT? |
ISO have implemented a way to say that the verifier will accept multiple matching credentials being returned in the latest draft of ISO 18013-5 and would like to see OID4VP mdoc profile also supporting that use case (so we need to expand DCQL somehow to allow that). Examples given were having two driving licenses for two different people and presenting them both, or presenting multiple cinema tickets at the same time. |
The use cases described by @sloops77 resonates with me. I think either all RPs must be ready to receive multiple instances (in the same way every wallet must be able to receive multiple instances in OID4VCI) or the RP declares it is ready to process multiple of them. If the RP would be not ready and the user would have multiple instances, I would assume the user would need to pick one. |
This means that Is this what you had in mind? {
"degrees" : [ "deg1" , "deg2" ],
"work_experience" : [ "we1", "we2" ]
} BTW, I find somehow confusing to have an option that requires both |
on the response, I would say that on the request, i think we should introduce a mechanism to indicate verifier wants multiple credentials to be returned for the same credential query (not sure if |
An alternative would be keep the vp_token a json object of string to VP, and then have have the VP contain multiple credentials all matching the Credential Query. Since VP is a lower level primitive, this would be my preference. Otherwise there would be two valid ways to respond to the same query adding processing complexity for the RPs |
That would be a welcomed simplification, IMHO. For request the
|
WG discussion
|
WG discussion started with the proposal that for the request, one design can be to add a boolean "credential_sets": { feedback that Ask for a specific use-case. some examples from the zoom chat:
Outcome seems to be that it is similar to a selective disclosure at the credential level that the wallet should not blankly return all credentials, and should let the user choose whether to return, one, three or all (10?) credentials. |
I can also add a use-case that we recently implemented for EUIPO, where the verifier queries wallet for one or more credentials, each one representing an intellectual property right of the holder.
Returning to DCQL, IMHO
{
"purpose": "Identification",
"multiple": true,
"options": [
[ "pid" ],
[ "other_pid" ],
[ "pid_reduced_cred_1", "pid_reduced_cred_2" ]
]
} |
The heart of this issue seems to be that a verifier may have a legit need to request multiple credentials, but we also don't want verifiers to over-request credentials from the holder's wallet, essentially becoming credential hoovers. One solution approach might be at the wallet UI level: a holder could pre-select which credentials may be released ahead of a given presentation -- say, before presenting credential(s) at an airport customs control point. However, AFAIK, wallet UI is out of scope for our DCP specs. Perhaps we could add some non-normative text for wallet implementers might be a middle-ground way forward? Alternatively, we could get into which verifiers are allowed to make what kinds of requests. This would be very messy though from a trust model perspective and I cannot recommend it. |
I think the "multiple" element should go into the credential part, not the credential set. It doesn't make sense in the credential set. The logic would be that if it is true, in the response, an array is used for this credential ID. |
I agree. This would solve another potential issue, as well. Given that |
ISO 18013-5 rev 2 has a text relevant to this and
|
I've created a PR (#398) implementing |
In Velocity Network, a career and education ecosystem, wallets are using PE to select multiple credentials based on a particular claim.
dcql (#266) does not seem to currently support a common use case we have is to return all credentials matching
“vct”: “https://credentialrepository.com/education_degree”
The text was updated successfully, but these errors were encountered: