Conversation
|
This is good. Backwards-compatible, minimal changes to the existing specification document, and easing adoption of CIDs in existing not-yet-CID-based systems. 👍 |
|
iherman marked as non substantive for IPR from ash-nazg. |
|
pchampin marked as substantive for IPR from ash-nazg. |
Co-authored-by: Manu Sporny <msporny@digitalbazaar.com>
|
This was discussed during the vcwg meeting on 20 May 2026. View the transcriptw3c/cid#168Manu: one that is ready that Pierre-Antoine opened trying to qualify what the primary identifier is, one where I would appreciate more reviews on PR before merging. Don't think it harms anything, would also address one or two issues there Manu: this PR is about allowing for fragment identifier in DID Document ID <Zakim> JoeAndrieu, you wanted to say it sounds backwards <dlongley> +1 to Joe JoeAndrieu: manu, seems like what you said is opposite of this PR Manu: think you are right, that would be bad Ivan: so, I can fully understand where he is coming from, whether we like it or not, using fragment ID has been around and used for last 25 years, very often can even see formal ID of TBL Brent: with the realization we were looking at this backwards, what are comments? We have the Issue, believe Issue links to conversation, I'm not super familiar with conversation in LWS <Zakim> JoeAndrieu, you wanted to say it feels off <dlongley> +1 to Joe ... i think this just needs careful consideration ... and comparison against what the DID spec does for compatibility, etc. JoeAndrieu: I think this feels a bit off, part of hesitation is simply not having had time to understand if there is something deeply wrong with why it feels off Manu: apologies, totally misrepresented PR, read through it twice <dlongley> needs a little security analysis for things like how comparing controllers when resolving verification methods changes, etc. Manu: just a warning it is HTTPRange 14 territory, keep in mind while reviewing. But to agree with Ivan, that community agrees that there should be hash identifiers on these IDs Benjamin: I don't think I'd be quite as HTTP range 14, think it is clarifying something that isn't clarified now Joe: not permitted now bigbluehat: in CID spec, fragment identifier can appear? Manu: no, specifically banned that Manu: long discussion, fragment IDs not allowed <Zakim> manu, you wanted to note it's not as straightforward as it seems. Manu: if we are going to allow people to use fragment idenfiers, how does it change ??? could it be used as an attack vector to use key or object mix-ups, all these things come up when we allow this <dlongley> +1 it might end up being ok, but requires more analysis. Manu: may be okay, but need to look at Data Integrity spec and se how it it is used Bigbluehat: I think one of the things triggering the range 14 bits is the section using hash me, but that could be any identifiable thing with a fragment, is a JSON-LD document <Zakim> manu, you wanted to note it is not always a JSON-LD document. <ivan> +1, it is also used that way in my own foaf file Manu: just to highlight why this seems simple - not always JSON-LD document, people who worked on this spec wanted to be able to use it without JSON-LD, so algorithms are not always straightforward <Zakim> JoeAndrieu, you wanted to ask where in the spec is the fragment outlawed Brent: that is PR 168, let's look at our Issues now Manu: yes |
This PR addresses #164 , and extends the current spec without any breaking change (any valid document remains valid).
As outlined in #164, the current spec does not allow the subject identifier to contain a fragment identifier, e.g.
https://example.org/my-cid#me. This PR extends the conditions under which a Controlled Identifier Document is considered valid:document.iddocument.idwithout fragment identifierThis is especially important for HTTP(S) based CIDs, where the use of a fragment identifier is common practice for distinguishing the document's identifier from the subject's identifier.
With this change, the following CID document, living at
https://example.org/my-cid, would be valid (while currently it is not).{ "@context": "https://www.w3.org/ns/cid/v1", "id": "https://example.org/my-cid#me", "authentication": [{ "id": "https://example.org/my-cid#authn-key-123", "type": "Multikey", "controller": "https://example.org/my-cid#me", "publicKeyMultibase": "z6MkmM42vxfqZQsv4ehtTjFFxQ4sQKS2w6WR7emozFAn5cxu" }] }cc @uvdsl
Preview | Diff