oauth-wg / oauth-sd-jwt-vc

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

Drop all references to DIDs and DID resolution #250

Closed leifj closed 6 days ago

leifj commented 3 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 3 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 3 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 3 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 3 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 3 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 3 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 3 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 3 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 3 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 3 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 3 months ago

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

leifj commented 3 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 2 months 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 2 months 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 2 months ago

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

kimdhamilton commented 2 months 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 2 months 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

bc-pi commented 6 days ago

standards are about making choices and nobody stops you from creating a profile that uses DIDs

bc-pi commented 6 days ago

My assessment, acting as co-editor of this draft and endeavoring to represent the rough consensus of the WG, is that consensus favors removal of the references.

peacekeeper commented 6 days ago

rough consensus of the WG, is that consensus favors removal of the references

How does the co-editor understand "rough consensus", and how has he come to this assessment?

decentralgabe commented 6 days ago

rough consensus of the WG, is that consensus favors removal of the references

How does the co-editor understand "rough consensus", and how has he come to this assessment?

Clearly, when 5 people express dissent a co-editor can declare "consensus."

andorsk commented 5 days ago

For consensus building, there are a number of RFC's describing the IETF process. The conversations here seem to indicate to me there is no "rough consensus".

In particular, RFC7282 Section 6 and many of the other sections in RFC7282 focused on "rough" consensus building.

Also, it should be noted a PR was submitted that seems to be a result of this issue #251 but was not linked. It was also named Tightened exposition of Issuer-signed JWT Verification Key Validation section #251 which seems to provide a perception of distance to this issue, when clearly they are related. This harms the visibility of discussion and context for the PR, which from my understanding, is not aligned with IETF Mission Statement around an open/transparent process for discourse.

I understand there are two camps of thought here, but there are solid reasons (technically and practically) provided by pro-DID side, and there is consensus procedure to deal with the objections raised here which need to be addressed and do not seem like they have been.

According to Section 3 of RFC7282, rough consensus can be achieved when all issues are addressed, but not necessarily accommodated:

What can't happen is that the chair bases their decision solely on hearing a large number of voices simply saying, "The objection isn't valid." That would simply be to take a vote. A valid justification needs to me made.

That seems to contradict the actions here: https://github.com/oauth-wg/oauth-sd-jwt-vc/issues/250#issuecomment-2473526620

It seems to me this issue has not been appropriately addressed given the concerns raised. Stating one is "tired" of discussing the issue is not a valid argument, and I for one would like to see the concerns addressed by the previous commenters addressed.