PE Simple Profile #269
Replies: 3 comments 2 replies
-
At the risk of sounding like I'm missing the point of a subset-profile or being directed to section 3, I have to ask: Is this essential?
If I'm understanding correctly the function of |
Beta Was this translation helpful? Give feedback.
-
Hi David, As you are aware I am pro having a simple profile like this, as implementing the full spec comes with quite a lot of intricacies, so thanks for writing it down. I do have some questions/remarks Formats (2.1)You mention:
The jwt_vp, jwt_vc and ldp_vc, ldp_vp formats, all conform to the W3C datamodel. To me it makes sense as a verifier to communicate what type(s) you are supporting. Without it you are basically expecting that every verifier using this profile should support both the JWT and JSON-LD world Selective disclosure (2.3)Are you removing the limit_disclosure Frame removal (2.1)Already addressed above. Since the profile allows for selective disclosure, I think it should also allow the frame property to be there. If the limited_disclosure is set to Removal of types (2.3)I do get you want to keep it as simple as possible, but I am not sure whether omitting 2.3 types should be in there. I expect that to be one of the most widely used ways of narrowing down to one or more credential types for simple use cases. "Just give me a credential conforming to this type". I also don't think it makes it more complex because it is similar to fields with filters, which are supported by the profile as well. Field ids (2.4)What is the reason you are removing the id? It was already a MAY in the spec. If a wallet/agent does not support ids and they are provided in the definition nothing goes wrong right? Some implementations might be using these ids if present. I do not see the benefit of removing them. PS. |
Beta Was this translation helpful? Give feedback.
-
Hi Niels
thankyou for your comments. Answers
below
On 25/11/2021 16:50, Niels Klomp wrote:
Hi David,
As you are aware I am pro having a simple profile
like this, as implementing the full spec comes with quite a lot
of intricacies, so thanks for writing it down.
I do have some questions/remarks
Formats (2.1)
You mention:
This profile does not cater for credential formats
other than the W3C VC format
And then in 2.1 there is the removal of the format. What does
the W3C VC format mean here?
The jwt_vp, jwt_vc and ldp_vc, ldp_vp formats, all
conform to the W3C datamodel. To me it makes sense as a verifier
to communicate what type(s) you are supporting. Without it you
are basically expecting that every verifier using this profile
should support both the JWT and JSON-LD world
The W3C standard recognises two types of data structure:
- those without a proof property (called credentials and
presentations)
-those with external or embedded proof properties (called
verifiable credentials and verifiable presentations).
I have designed the profile to only consider the first type, so
that it is independent of the proof format and therefore applies
to all types of proof (even ones that have not yet been specified
e.g. a cbor proof). The idea is that the protocol for carrying the
presentation profile will specify the proof format that is
required, so that different RPs that support different proof
formats (and different protocols) can still use the same profile
instance to specify the credentials that they want.
Selective disclosure (2.3)
Are you removing the limit_disclosure required
to make it simpler for implementations that will not support
selective disclosure on the holder side, since they can simply
provide the full credentials if the value is prefered?
That does limit verifiers that really don't want additional
fields as they cannot mark it required
Correct. The idea is to make it as simple as
possible for holders. I dont think this limits verifiers as
they can simply discard extra information that they don't
require. Since they are saying what their preferred attributes
are, they are complying with GDPR by not asking for more than
they want.
Frame removal (2.1)
Already addressed above. Since the profile allows
for selective disclosure, I think it should also allow the frame
property to be there. If the limited_disclosure is set to prefered
and you do have an implementation that can do selective
disclosure it might want to use the frames. If it doesn't
support frames/selective disclosure, no harm would be done, as
the full VCs would be submitted
Another objective is to remove any knowledge of JSON-LD from
implementors and implementations. My understanding is that Frames
are a JSON-LD feature. We were very careful when specifying the
W3C VC Data Model to allow it to be implemented by programmers
that knew nothing about JSON-LD and for VCs to be created and
validated without using any JSON-LD tools or methods.
So the current profile caters for implementations that do support
selective disclosure but do not support JSON-LD. Conversely it can
still be used by implementations that do support JSON-LD (it just
wont use any of these features)
Removal of types (2.3)
I do get you want to keep it as simple as possible,
but I am not sure whether omitting 2.3 types should be in there.
I expect that to be one of the most widely used ways
of narrowing down to one or more credential types for simple use
cases. "Just give me a credential conforming to this type". I
also don't think it makes it more complex because it is similar
to fields with filters, which are supported by the profile as
well.
As I read it, the current PE spec has duplication, since there
are two different ways of specifying exactly the same requirements
in terms of types that are required. Therefore the verifier can
use the fields parameter to specify the types they want. This
simplifies it for the holder since they only need to parse the
fields parameter and have a single way of understanding the RP's
requirements.
Field ids (2.4)
What is the reason you are removing the id? It was
already a MAY in the spec. If a wallet/agent does not support
ids and they are provided in the definition nothing goes wrong
right? Some implementations might be using these ids if present.
I do not see the benefit of removing them.
Unless I am mistaken, field_id is only used for the more complex
filtering rules of same_subject, is_holder etc and since these rules
are excluded from the profile then the field id serves no purpose
PS.
Does it make sense to create a Markdown file of it and create a
PR, as then the discussion can happen more inline?
Yes it would, but I am not an expert in creating the Markdown
file. I would be happy to do this with a bit of hand holding.
Kind regards
David
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
[
{
***@***.***": "http://schema.org",
***@***.***": "EmailMessage",
"potentialAction": {
***@***.***": "ViewAction",
"target": "#269 (comment)",
"url": "#269 (comment)",
"name": "View Discussion"
},
"description": "View this Discussion on GitHub",
"publisher": {
***@***.***": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]
|
Beta Was this translation helpful? Give feedback.
-
Please find attached a simple profile for PE for discussio
DIF CNF Profile.pdf
n
Beta Was this translation helpful? Give feedback.
All reactions