-
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
Define expected response if claims
and claim_sets
is omitted in DCQL
#304
Comments
Section 6.3.1 says: "The following rules apply for selecting claims via claims and claim_sets: So I'd say currently you would have to return everything.
I'd propose to make the presence of claims mandatory |
Not sure where we want to discuss this - here or in #367? I agree that requesting a "full" credential might be dangerous, but I guess that also depends heavily on the context/use-case. There should be security mechanisms in place to make sure this is not abused, but imho the biggest question is where that is dealt with - in the Query Language or in the user interaction (the consent requested from the user). I can see cases where you would want to request the full payload of a credential (especially for credentials without a lot different claims) and in principle the protocols also support credential formats without selective disclosure support (in which case it wouldn't make sense to specify specific claims). This question also seems to overlap to some degree with the topic of RP authentication/authorization. If you have a trust ecosystem that also requires RP registration, then requesting/returning everything becomes much less of a problem because within that ecosystem, there was some process that checked and approved that kind of request. |
let's discuss here |
Feedback at today's ISO meeting was that they don't want the "requesting no claims means return all claims". This would mean removing/changing the text Martijn mentioned above:
|
WG discussion:
|
Some use cases to consider:
|
It sounds like there are cases for both options:
If we want to support both options, it would make sense to make the "empty" case (no claims / claim_sets) the show nothing case -> we present no claims that are selectively disclosable. That would mean that we probably would want to introduce something explicit that means "give me everything" within the credential query - that might also be of help for wallet implementations to warn the user accordingly as it is more explicit? I guess a boolean flag in the Credential Query would be the easiest option then? If that flag is set, neither |
|
The "empty" case would actually also solve the problem with formats that do not support selective disclosure - they would then share everything that is not selectively disclosable, so everything. I would propose to add the "empty" case as a first step: That way we
@danielfett any thoughts? |
We actually noticed a lot oof cases from RPs where So I agree with @c2bo, it makes sense that the "empty" case should only disclose the base credential. If you need an attribute you have to request it. |
WG discussion
|
I can create a draft PR for the "empty" case if that helps the discussion |
I support the notion that when not requesting specific claims, a wallet should disclose the least amount of information possible. From a privacy by design perspective, this feels obvious. Two things I did want to add to the discussion: I wonder how such a request can be explained to a user (but that's probably out-of-scope here) Another interpretation is that when not specifying any
This interpretation can also help to protect the RP to not receive any information that it didn't want to see in the first place. |
I think this would lead to confusing semantics for both the RP and wallet with polymorphic behaviour based on credential types and proof type (eg. Wallets can choose to support or not support this kind of disclosure |
Not really right, if the default is "Disclose the least amount of data possible" that would work the same for all credential types. The end result might differ per credential type, but not the behaviour. I guess for formats that don't support selective disclosure "nothing" and "everything" means the same. |
I think "nothing"/"everything" can be misunderstood here, my interpretation would be "return the base credential, but no selectively disclosable attributes". That means for an SD-JWT only return the base JWT + KB-JWT, or for mdoc only return mso and Device Auth. For a format that supports no selective disclosure, the "return base credential" would automatically return the whole thing. It would imho also fit well to multi-message based variants like BBS: |
@c2bo I would take up on your offer as the discussion seems to have entered the area of bikeshedding and concrete text would really help. thank you so much in advance.
|
Both,
claims
andclaim_sets
are OPTIONAL. It is unclear what claims the response should have to satisfy the request. Options are "all" or "no" claims at all.The text was updated successfully, but these errors were encountered: