-
Notifications
You must be signed in to change notification settings - Fork 17
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
DID:WEB resolves to DID Resolution Result #63
Conversation
…ution Document that contains a DID Document and not the DID Document itself. 2. Establishing the presence of DID Document Metadata with possibilities of adding cryptographic proofs to verify DID Documents. 3. Allowing multiple representations (JSON, JSONLD, XML, CBOR, etc) of the DID Resolution Document for the same DID:WEB.
Co-authored-by: Orie Steele <[email protected]>
index.html
Outdated
by prepending <code>https://</code>. | ||
</li> | ||
<li> | ||
If no path has been specified in the URL, append | ||
<code>/.well-known</code>. | ||
</li> | ||
<li> | ||
Append <code>/did.json</code> to complete the URL. | ||
Map the DID Document Option's accept property to a file extension: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we are going to do content negotiation, we should follow the HTTP standard: https://www.rfc-editor.org/rfc/rfc7231#section-5.3 or at least ask the HTTP WG what the suggested path is for Conneg these days.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we are going to do content negotiation, we should follow the HTTP standard
Strong +1 on following HTTP. DID core is very consistent with HTTP content negotiation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general, +1 to this PR -- the response being a DID Resolution result makes a lot of sense.
The only concerning bits are: 1) the way the proof
is detached from the DID Document (don't do that), and 2) the content negotiation bit.
Regarding concern 1, if you leave the proof
as a part of the DID Document (and add an appropriate context), that would address that issue. Unless you were really trying to digitally sign the DID Document metadata, in which case, the proof is probably fine where it is?
Regarding concern 2, move the content negotiation changes into a separate PR, as that is a permathread that has been burning for a while: #52 ...we might just want to ask the HTTP WG what the suggested path is for Conneg these days.
I know that in VCs and Data Integrity, the assumption has always been that the Semantically, having the Structurally, having the From a pure RDF/JSON-LD perspective, I think there shouldn't be a strict necessity to have the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't really have a strong opinion whether or not did:web
should be changed, but if the decision is to support metadata, then this needs to be better aligned with the DID Resolution specification, e.g.:
- Use of different names for the same thing "DID Resolution Document" vs. "DID Resolution Result".
- The DID Resolution specification already defines an HTTP(S) mapping of the DID Resolution process (e.g. the use of the Accept: header), so there should be no need to re-define these things here.
- This PR seems to introduce a strange new JSON-LD context
https://www.w3.org/ns/didMetadata/v1
, even thoughhttps://w3id.org/did-resolution/v1
already defines terms for metadata.
@peacekeeper Thanks Markus! I fixed them all. I think the text could use a lot of improvements outside the context of this PR to be better aligned with the DID Resolution specification. I am just trying to not change everything. :) For instance, I think we need to force DNSSec just like we force HTTPS. But that is for another day. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really interested in breaking changes right now
Hi Mike, any suggestion on how to add the DID Document Metadata with backwards compatibility? |
Doesn't this prevent the actual resolver from adding its own metadata? |
There are two "buckets" of metadata. DID document metadata and DID resolution metadata. Metadata about the resolution process itself should only go into the second bucket. |
I suggest we close this PR, and perhaps tackle some of the concepts addressed here using additional headers. |
Closing this PR (it does not seem like it can reach consensus). I am open to discussing on issues, feel free to file, and link here. |
Fixes #20:
did.json
document to become a DID Resolution Result that contains a DID Document and not the DID Document itself.Impact on current implementers
This is a backward incompatible change.
Current producers must wrap the root property of their
did.json
file into adidDocument
property.DID Resolvers should check for the presence of a
didDocument
property to indicate compliance of the producer with this new version. If the property is present, an optionaldidDocumentMetadata
property can also be available and should be parsed accordingly.The spec's
did.json
goes from:To: