oauth-wg / oauth-sd-jwt-vc

draft-terbu-sd-jwt-vc
Creative Commons Zero v1.0 Universal
19 stars 12 forks source link

Drop all references to DIDs and DID resolution #250

Open leifj opened 2 months ago

leifj commented 2 months ago

Section 3.5 references DIDs and DID resolution but does so in a very underspecified way. The document already supports extensibility so there is no reason why specific ecosystem processing rules need to be in this document at all. The DID community should write a profile doc that describes DID related processing rules in detail.

selfissued commented 2 months ago

DIDs are non-interoperable, since there are no mandatory-to-implement DID methods. It's easy for the spec to say "the recipient MUST retrieve the public key from the DID Document resolved from the DID in the iss value" but that doesn't make it practically implementable.

Therefore, I agree with dropping DIDs from the spec. As the spec says, "Separate specifications or ecosystem regulations MAY define rules complementing the rules defined above". Let DIDs be handled in that manner.

bc-pi commented 2 months ago

[Speaking as an individual] I am in 100% agreement with @leifj and @selfissued and favor (or favour here in Canada) of completely removing all the DID content from this draft. For reasons already mentioned. And others.

peacekeeper commented 2 months ago

-1, this is a bad idea for various reasons:

Please don't reply with "nobody stops you from creating a profile that uses DIDs" or with "standards are about making choices". Support for DIDs is described as optional anyway, so there are no downsides of supporting them, but many upsides (see list above).

decentralgabe commented 2 months ago

The arguments made against DIDs are not only inaccurate (as @peacekeeper notes), they're irrelevant. Retrieving keys from DID Documents in a consistent manner should be all that is needed. This is a close analog to how well-known issuer metadata is resolved with JWKs.

DIDs are and will continue to be used by many organizations, companies, and individuals. Dropping support for them harms interoperability.

What the specification can do, is make it clearer how DIDs can be used with SD-JWT-VCs in a consistent manner. I made a comment here speaking to one such recommendation.

There are already plenty of open source tools and demonstrations that meet this set of capabilities. Not only that, like Markus mentioned, the DID WG is currently working on a Recommendation-track document to further specify DID Resolution, which will only make things better.

There are other ideas we can explore too, like requiring DID Documents to have publicKeyJwk based Verification Methods, which should even further lower the barrier to interoperability.

I am happy to help construct language improvements to Section 3.5 in service of this effort.

bc-pi commented 2 months ago

I understand there are some ardent supporters of DIDs and the VCDM. And some folks who are not. But this issue isn't the place to try and litigate any of that.

peacekeeper commented 2 months ago

@bc-pi What do you mean by "litigate any of that"? Isn't the point of Github issues to discuss (and ideally, offer arguments) whether a certain change should be made or not, in this case, removing DIDs and DID resolution from this specification?

ssanchocanela commented 2 months ago

I'm afraid I have to disagree with this proposal; I don't see any argument in its favour. My proposal is the opposite: to specify examples of DID usage in SD-JWT VC to increase adoption and strengthen the specification. A broad community of wallets supports DIDs, including all those EBSI Conformance. Ignoring DIDs in the specification is a statement of intent.

bc-pi commented 2 months ago

@bc-pi What do you mean by "litigate any of that"? Isn't the point of Github issues to discuss (and ideally, offer arguments) whether a certain change should be made or not, in this case, removing DIDs and DID resolution from this specification?

Well, it sure seems to me that the arguments offered veered well into the territory of general advocacy for the wonders of Decentralized Identifiers from the DID community itself. While also misunderstanding or misconstruing the actual implications of removal from this draft. This issue isn't the place for that. And honestly it's tiresome. Also probably not having the effect you think or hope it is.

peacekeeper commented 2 months ago

Well, it sure seems to me that the arguments offered veered well into the territory of general advocacy for the wonders of Decentralized Identifiers from the DID community itself. While also misunderstanding or misconstruing the actual implications of removal from this draft.

Apologies, I admit I'm not so familiar with the process and culture of this group. If advocacy for the benefits (not "wonders") of a feature that is being proposed for removal is not welcome here, and considered "tiresome", then what would be a more acceptable way of expressing a dissenting opinion about this proposal?

bc-pi commented 2 months ago

Apologies if I've been unable to articulate myself in a meaningful way but I believe the point has been missed.

kimdhamilton commented 2 months ago

Of relevance; for any interested in contributing to DID method standardization: https://identity.foundation/publications/LOI-DIDMethodStandardization.pdf

leifj commented 2 months ago

Getting back to this (apologies for the late feedback). Much has been made in this thread of the importance of DIDs in the ecosystem. My proposal has nothing to do with the importance or non-importance of DIDs but is all about weather the current language is appropriate guidance for implementors. If in fact DIDs are important they deserve more care than half a paragraph and a separate specification that profiles this specification for use with DIDs is imo entirely appropriate in that case. IETF standards are not marketing documents but technical specifications and as such the current language on DIDs is unusable for an implementer.

I propose that the the proponents of keeping DIDs in the current specification open a PR with language that ensures interoperability - something which is clearly a requirement for a standards-track IETF document.

awoie commented 1 month ago

@peacekeeper @kimdhamilton @decentralgabe Do you have an implementation of SD-JWT VC that uses DIDs and did you have the feeling the current spec was clear enough?

decentralgabe commented 1 month ago

@awoie we are planning an implementation at TBD. Reviewing the spec, here is where I think there's room for improvement to support DIDs:

With these tweaks (and maybe some more...) I would say the spec is "clear enough" in interfacing with DIDs. I hope these points illustrate why I believe it's a bad idea to remove DID content from this spec. Doing so would maintain the existing confusion I highlighted and guarantee interoperability issues.

peacekeeper commented 1 month ago

@awoie We are also working on an implementation, and will be happy to share updates as our work progresses.

kimdhamilton commented 1 month ago

In a former life I made a toy implementation of it and had some minor issues with the sd-jwt spec at the time, but I'm sure those have been addressed. No issues with DIDs in my recollection. Here's the writeup with links to code fwiw, but take this with a grain of salt.

peacekeeper commented 4 weeks ago

Those who are following this thread here should be aware of a PR that would remove support for DIDs: https://github.com/oauth-wg/oauth-sd-jwt-vc/pull/251