-
Notifications
You must be signed in to change notification settings - Fork 12
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
defining how DID can be used as user's indetifier #205
Comments
I know that some people propose to use I think that it would be better to register a new sub claim |
Yes, we had that discussion recently. It will be something as follows:
|
Where should cnf.did be defined? |
My intuition is that sd-jwt-vc is not an appropriate place to define and register a new DID based JWT Confirmation Method. I'm not sure where it would be done but that'd be stretching the scope of this draft. Meanwhile cnf.kid seems sufficient for the case. |
cnf.kid instead of cnf.did? why would we need to defined cnf.did if we think cnf.kid is sufficient? |
I guess that was kinda what I was implying/suggesting. That cnf.kid is sufficient so cnf.did doesn't need to be defined. The interpretation of the kid value is application specific (per RFC7800) and can convey the same info as Oliver's example:
|
I fully agree that it is not in scope of SD-JWT VC to define the did cnf method. However, I think this would be the cleaner approach. I would expect clients using this cnf method to register a did cnf method. kid does not really help with interoperability. |
Why? either relative of absolute DID URL, it is being used as a |
There is nothing wrong with this but I would assume that most implementations won't test if |
@Sakurann is there anything where you believe we should update the SD-JWT VC specification? |
one sentence saying that "when key is passed by reference (assuming Briand would not want to explicitly mention DIDs in the spec), cnf.kid should be used" would be helpful, so that people reading the specification know that SD-JWT VC can be used with DIDs too. |
I took a try at the following proposed new text to replace cnf here that attempts to be inclusive of opinions expressed in this issue and also addresses issue #196 :
|
+1 to the proposed text - thank you, Brian! |
I'd be ok with this change although we need to adjust the language a bit. Option 1:
Option 2:
I would prefer Option 1 and recommend that if having a DID as a being included in the Note that I think that using DID URL for the There is a reason why there is a dedicated |
I agree with Oliver. Kid is described as application specific and having a dedicated cnf.did method gives it a more universal touch that may be beneficial for interoperability. |
I think the most beneficial thing for interoperability would be always and only use This document is not going to define a dedicated cnf.did method. The sentence, "When the key is to be conveyed by reference (e.g., via a key thumbprint or DID [W3C.DID]), other JWT confirmation methods MAY be used, such as a key identifier defined in Section 3.4 of [RFC7800]." in the proposed text above is a just |
It depends how we define "proof of possession key" in context of a DID document, where multiple keys can be used to proof the identity. In case of natural persons when they prefer to use dids, it's more likely they use Key rotation in this scenario are a good security feature because they allow me to update my crypto material without issuing me new credentials that are directly bound to it. On the other hand I am unable to insert security mechanism like hashlinks since I want to point not directly to one specific public key, but to one having specific rights. |
Yes, this makes sense. However, cnf.did might be more appropriate to encode this information. |
Yeah, since we can not reuse this approach from the spec since it has a defined response.
Wouldn't it be the best way to extend the RFC for CNF to include the did resolution as an option? Of course this is more work, but then we can reference to a standard |
RFC7800 says:
I do not think that this matches to (most) DID documents. |
That's why I mentioned we need to update or extend the spec so it is compliant with the response of a did doc. |
A standalone |
We should have further restrictions on the DID URL. a I made a mistake previously when I said using a DID URL would solve the problem since a DID is also a DID URL:
whereas path-abempty can be literally completely empty which allows a DID to be a DID URL which makes sense because it is the location of the DID Document. We would need to say that kid must be a DID URL that when dereferenced results in a single key (ideally JWK). |
I think the text Brian suggested originally is sufficient: #205 (comment) (at least initially) please keep the option to use cnf.kid, as limiting the use of DIDs only with cnf.did could be a significant blocker for some implementations to implement sd-jwt vc. especially if sd-jwt vc will not define cnf.did (and I won't even attempt to try convince Brian to do so). I also think it is probably better to say DID URL as opposed to just DID. |
Why is it a blocker if they use cnf.did instead of cnf.kid? |
After some discussions, we believe the best approach is to define a dedicated |
As having implemented DID holder binding for SD-JWT VCs while this discussion has been ongoing, we've decided to add the didUrl (pointing to the specific key that has been verified before issuance) in the So it will look something like:
Not sure if relevant for this discussion, but to show some implementers feedback on something that we have working today. Happy to change our implementation on what comes out of this discussion. |
While I cannot prevent anybody from using this, I would find it much cleaner to use a dedicated DID claim for this for interoperability reasons. It should be fairly easy to write a DID
|
As i mentioned in my post, we're happy to change our implementation on what comes out of this discussion. But until then re-using existing fields is a lot easier to integrate. |
We discussed this on our editors' call and agreed that this method should be defined in a separate spec. |
I don't really have a strong opinion on whether "kid" or "jku" a new DID-based "cnf" method should be used. In any case however, it would still make sense to have language such as what has been proposed by @bc-pi in #205 (comment), considering existing implementations and use cases. Also, an example using a DID as a user's identifier would be useful. |
As previously discussed, a DID based confirmation method should be defined in a separate spec. I'd encourage interested parties to pursue that. |
@peacekeeper @bc-pi would it help to add to the spec that sd-jwt-vc will support all listed JWT Confirmation Methods. This makes clear that this spec is not the place to define new confirmation methods. So the way to go would be to write the spec for Since key binding has no reference to a specific confirmation method, it should have no impact. |
@cre8 I think that might actually be a good idea, but still, PR 251 should be reverted and the corresponding issues re-opened (like this one here), for reasons discussed on the mailing list. |
I originally opened this issue, and I agree with closing it. I think a lot has evolved since I opened this issue and I am not supportive of sd-jwt vc spec mentioning DIDs. If people still want DIDs, cnf.did should be defined (i have been saying it for few years), which would allow DIDs to be used because sd-jwt vc defines the usage of a cnf claim. |
There are use-cases that would like to use IETF SD-JWT VC draft over W3C VCDM draft, while using DID as user's/subject's identifier. Currently, SD-JWT VC mandates
cnf
claim to be present. It would be very helpful to define how a DID can be used with acnf
claim. (as keepingcnf
claim as mandatory is probably better for the interoperability)The text was updated successfully, but these errors were encountered: