From 153428fb73617658a3a9aab9f5d8e996fa1dc05f Mon Sep 17 00:00:00 2001
From: Markus Sabadello zfuOZ}aUx*#z6);g5H`;7SjvLsh-{_)2A*(>xoq
zUs3
+A DID resolver is a software and/or hardware component that is capable
+of executing the DID resolution and optionally the DID URL dereferencing
+functions for at least one DID method.
+
+DID resolution is the process of obtaining a DID document for a given DID.
+
+Building on top of DID resolution, DID URL dereferencing is the process of retrieving a
+representation of a resource for a given DID URL.
+
+DID resolution and DID URL dereferencing are defined as abstract functions
+(see Section and Section ).
+
+These abstract functions are implemented by DID resolvers. A DID resolver is invoked
+by a client via a binding. Bindings define how the abstract functions are realized
+using concrete programming or communication interfaces. It is possible to distinguish between
+local bindings and remote bindings.
+
+
+Additional considerations about architectures of the DID resolution and DID URL
+dereferencing functions, including concepts such as "proxied resolution" or "client-side
+dereferencing", can be found in [[?DID-RESOLUTION]].
+
Adding a DID parameter to a DID URL means that the parameter becomes part of
an identifier for a resource (the DID document or other). Alternatively, the
- DID resolution and the DID URL dereferencing processes can also be influenced
- by passing options to a DID resolver that are not part of the DID URL.
+ DID resolution and the DID URL dereferencing processes can also
+ be influenced by passing input options to a DID resolver that are not
+ part of the DID URL (see Section ).
Such options could for example control caching or the desired encoding of a
resolution result. This is comparable to HTTP, where certain parameters could
either be included in an HTTP URL, or alternatively passed as HTTP headers
@@ -1076,9 +1141,9 @@
-A DID resolver is a software or hardware component with an API for
-resolving DIDs of at least one DID method. It executes the read
-operation for the DID method corresponding to the DID being
-resolved to obtain the authoritative DID document. For more information,
-see Section .
+
+This section defines the interfaces (or the "contracts") of the DID resolution
+and the DID URL dereferencing functions, including their inputs and results.
+For information about architectures, see Section .
-The interfaces and algorithms for resolving DIDs and dereferencing
-DID URLs are specified in [[?DID-RESOLUTION]].
-
+This section defines the inputs and results of the DID resolution function.
+This function relies on the "Read" operation of the applicable DID method
+(see Section ).
+
+The abstract interface to this function is:*sm$=b~B{@s_Jb7eAn!%`Y`
zd5IMmAlls<=rmsV4MLZ#I61qj$dF8|0Vm0Wkx-65tQHC4j}7PB!I|>=_c47&bT}v&
zX~z?6(cVHyXe`utueCFlEG)`iB`Z!(jOhGnlwP*g|R{tgAjjaH)Nt3O*2$1WgDNh=)>H$uy~
za8c+`b#utsShzB~c;}G_FXZo@vJ)cNE-KJrv6FQb{jhWc#JGx>A|0Q)_
zhJW4UljL)|Q*55`L05M{iKTb%;t2#6U){E)aC337Sx(Xc*bbgMIJ{b%II~b~QV_bK
zdVE_Y407fJ1Oke#;<2w=>cnU!H}
DID Resolvers and DID Resolution
+
+
+
+
+
+
+
+
+
+
+
+
Generic DID URL Parameters
Fragment
document
Resolution
-
+Resolving a DID
+
+
+
resolve ( did, options ) --> ( did-document, did-document-metadata, did-resolution-metadata )
+
+ +The inputs of the DID resolution function are: +
++The following rules apply to the above inputs: +
++The results of the DID resolution function are: +
++Implementation details and a concrete algorithm for this function can be found +in [[DID-RESOLUTION]]. +
+ ++This section defines the inputs and results of the DID URL dereferencing function. +This function relies on DID resolution (see Section ). +
++The abstract interface to this function is:
+ + +dereference ( did-url, options ) --> ( content, did-document-metadata, did-resolution-metadata )
+
+ +The inputs of the DID URL dereferencing function are: +
++The following rules apply to the above inputs: +
++The results of the DID URL dereferencing function are: +
++The following table lists example input DID URLs with the corresponding results +of the DID URL dereferencing function: +
+ ++Example Input DID URL + | ++Example Result + | +
---|---|
+did:example:1234
+ |
+ +A DID document. + | +
+did:example:1234#key-1
+ |
+ +A part of a DID document. + | +
+did:example:1234;service=agent
+ |
+ +A service endpoint URL selected from a DID document. + | +
+did:example:1234/path + did:example:1234?query=value
+did:example:1234/path?query=value + |
+ +Another resource as determined by the input DID method and/or DID controller. + | +
+Implementation details and a concrete algorithm for this function can be found +in [[DID-RESOLUTION]]. +
+ ++The DID resolution and DID URL dereferencing functions can +OPTIONALLY support input options that control how the functions are executed. +Input options are different from DID parameters (see Section +) insofar as they are not part of +the input DID or input DID URL syntax. +Input options can for example be used to control caching or content negotiation. +
+ ++Input options are expressed as a map of name-value string pairs. +
++Input options MAY be method-independent or method-specific. +
++The concrete representation of input options MUST be defined by the applicable binding of +the DID resolution or DID URL dereferencing function. +
+ ++For example, a concrete binding of the DID resolution or DID URL +dereferencing function might define how input options are represented in the form +of headers of a network protocol. +
+ ++This specification defines a single concrete input option: +
+accept
input option can be used to indicate the requested
+MIME type of the representation of the resource that is returned by the DID resolution
+or DID URL dereferencing function.
+ +A DID resolver MAY support additional input options. +
+ ++The DID resolution and DID URL dereferencing functions can OPTIONALLY +return DID document metadata as well as DID resolution metadata. +
++These sets of metadata are expressed as maps of name-value string pairs, referred +to as metadata properties. +
++Metadata properties MAY be method-independent or method-specific. +
++The concrete representation of metadata MAY be defined by the applicable binding of +the DID resolution or DID URL dereferencing function. It MAY +also be defined by a compliant representation of the abstract data model for DID +documents (see Section ). +
+ ++For example, a concrete binding of the DID resolution or DID URL +dereferencing function might define how metadata is represented in the form +of headers of a network protocol. Or, a compliant representation of the abstract +data model for DID documents might define a special section of a document +structure that can contain metadata. +
+ ++DID document metadata contains information about the input +DID and its associated DID document. This metadata typically +does not change between multiple DID resolution processes, for example: +
++The authoritative sources of this metadata are the DID controller and/or the DID registry. +
+ ++The following sections should be moved here: , , . +These properties are not part of the abstract data model for DID documents, but rather constitute DID document metadata. +
+ ++DID resolution metadata contains information about the resolution process. +This metadata is typically different between multiple DID resolution +processes, for example: +
++The authoritative source of this metadata is the DID resolver. +
+ ++This specification defines a single concrete metadata property for DID resolution metadata: +
+content-type
metadata property indicates the MIME type
+of the representation of the resource that is returned by the DID resolution
+or DID URL dereferencing function.
+ Implementation details and a concrete algorithm for this function can be found -in [[DID-RESOLUTION]]. +in [[?DID-RESOLUTION]].
@@ -2836,7 +2836,7 @@Implementation details and a concrete algorithm for this function can be found -in [[DID-RESOLUTION]]. +in [[?DID-RESOLUTION]].
From 7ae96d47c869645778d74ad4a642017ab58df9a6 Mon Sep 17 00:00:00 2001 From: Markus Sabadello@@ -2654,7 +2654,7 @@
@@ -2731,7 +2731,7 @@
The DID resolution and DID URL dereferencing functions can -OPTIONALLY support input options that control how the functions are executed. -Input options are different from DID parameters (see Section +OPTIONALLY support resolver options that control how the functions are executed. +Resolver options are different from DID parameters (see Section ) insofar as they are not part of the input DID or input DID URL syntax. -Input options can for example be used to control caching or content negotiation. +Resolver options can for example be used to control caching or content negotiation.
-Input options are expressed as a map of name-value string pairs. +Resolver options are expressed as a map of name-value string pairs.
-Input options MAY be method-independent or method-specific. +Resolver options MAY be method-independent or method-specific.
-The concrete representation of input options MUST be defined by the applicable binding of +The concrete representation of resolver options MUST be defined by the applicable binding of the DID resolution or DID URL dereferencing function.
For example, a concrete binding of the DID resolution or DID URL -dereferencing function might define how input options are represented in the form +dereferencing function might define how resolver options are represented in the form of headers of a network protocol.
-This specification defines a single concrete input option: +This specification defines a single concrete resolver option:
accept
input option can be used to indicate the requested
+The accept
resolver option can be used to indicate the requested
MIME type of the representation of the resource that is returned by the DID resolution
or DID URL dereferencing function.
-A DID resolver MAY support additional input options. +A DID resolver MAY support additional resolver options.
@@ -2676,10 +2676,10 @@
@@ -2770,10 +2770,10 @@
-Resolver options MAY be method-independent or method-specific. +Common fields are included here. Additional resolver options MAY be method-independent or method-specific.
The concrete representation of resolver options MUST be defined by the applicable binding of @@ -2889,7 +2889,7 @@
-The DID resolution and DID URL dereferencing functions can OPTIONALLY +In addition to DID documents, the DID resolution and DID URL dereferencing functions return DID document metadata as well as DID resolution metadata.
These sets of metadata are expressed as maps of name-value string pairs, referred -to as metadata properties. +to as metadata properties. The keys of the map are unique and MUST NOT +be repeated.
-Metadata properties MAY be method-independent or method-specific. +Common fields are included here. Additional metadata properties MAY be +method-independent or method-specific.
-The concrete representation of metadata MAY be defined by the applicable binding of -the DID resolution or DID URL dereferencing function. It MAY -also be defined by a compliant representation of the abstract data model for DID -documents (see Section ). +While the concrete representation of metadata MAY be defined by the applicable binding of +the DID resolution or DID URL dereferencing function, the metadata +MUST be made available to the caller of the DID resolution or DID URL dereferencing +function as a map of associated plain string keys and values.
@@ -2931,7 +2933,9 @@
-A DID resolver is a software and/or hardware component that is capable -of executing the DID resolution and optionally the DID URL dereferencing -functions for at least one DID method. -
--DID resolution is the process of obtaining a DID document for a given DID. -
--Building on top of DID resolution, DID URL dereferencing is the process of retrieving a -representation of a resource for a given DID URL. -
--DID resolution and DID URL dereferencing are defined as abstract functions -(see Section and Section ). -
--These abstract functions are implemented by DID resolvers. A DID resolver is invoked -by a client via a binding. Bindings define how the abstract functions are realized -using concrete programming or communication interfaces. It is possible to distinguish between -local bindings and remote bindings. -
-
-
-
-
-Additional considerations about architectures of the DID resolution and DID URL -dereferencing functions, including concepts such as "proxied resolution" or "client-side -dereferencing", can be found in [[?DID-RESOLUTION]]. -
-Adding a DID parameter to a DID URL means that the parameter becomes part of an identifier for a resource (the DID document or other). Alternatively, the - DID resolution and the DID URL dereferencing processes can also - be influenced by passing resolver options to a DID resolver that are not - part of the DID URL (see Section ). + DID resolution and the DID URL dereferencing processes can also be influenced + by passing options to a DID resolver that are not part of the DID URL. Such options could for example control caching or the desired encoding of a resolution result. This is comparable to HTTP, where certain parameters could either be included in an HTTP URL, or alternatively passed as HTTP headers @@ -1141,9 +1076,9 @@
-This section defines the interfaces (or the "contracts") of the DID resolution -and the DID URL dereferencing functions, including their inputs and results. -For information about architectures, see Section . +
+A DID resolver is a software or hardware component with an API for +resolving DIDs of at least one DID method. It executes the read +operation for the DID method corresponding to the DID being +resolved to obtain the authoritative DID document. For more information, +see Section .
--This section defines the inputs and results of the DID resolution function. -This function relies on the "Read" operation of the applicable DID method -(see Section ). -
--The abstract interface to this function is:
- - -resolve ( did, options ) --> ( did-document, did-document-metadata, did-resolution-metadata )
-
- -The inputs of the DID resolution function are: -
--The following rules apply to the above inputs: -
--The results of the DID resolution function are: -
--Implementation details and a concrete algorithm for this function can be found -in [[?DID-RESOLUTION]]. -
- --This section defines the inputs and results of the DID URL dereferencing function. -This function relies on DID resolution (see Section ). -
--The abstract interface to this function is:
- - -dereference ( did-url, options ) --> ( content, did-document-metadata, did-resolution-metadata )
-
- -The inputs of the DID URL dereferencing function are: -
--The following rules apply to the above inputs: -
--The results of the DID URL dereferencing function are: -
--The following table lists example input DID URLs with the corresponding results -of the DID URL dereferencing function: -
- --Example Input DID URL - | --Example Result - | -
---|---|
-did:example:1234
- |
- -A DID document. - | -
-did:example:1234#key-1
- |
- -A part of a DID document. - | -
-did:example:1234;service=agent
- |
- -A service endpoint URL selected from a DID document. - | -
-did:example:1234/path - did:example:1234?query=value
-did:example:1234/path?query=value - |
- -Another resource as determined by the input DID method and/or DID controller. - | -
-Implementation details and a concrete algorithm for this function can be found -in [[?DID-RESOLUTION]]. -
- --The DID resolution and DID URL dereferencing functions can -OPTIONALLY support resolver options that control how the functions are executed. -Resolver options are different from DID parameters (see Section -) insofar as they are not part of -the input DID or input DID URL syntax. -Resolver options can for example be used to control caching or content negotiation. -
- --Resolver options are expressed as a map of name-value string pairs. -
--Common fields are included here. Additional resolver options MAY be method-independent or method-specific. -
--The concrete representation of resolver options MUST be defined by the applicable binding of -the DID resolution or DID URL dereferencing function. -
- --For example, a concrete binding of the DID resolution or DID URL -dereferencing function might define how resolver options are represented in the form -of headers of a network protocol. -
- --This specification defines a single concrete resolver option: -
-accept
resolver option can be used to indicate the requested
-MIME type of the representation of the resource that is returned by the DID resolution
-or DID URL dereferencing function.
- -A DID resolver MAY support additional resolver options. -
- --In addition to DID documents, the DID resolution and DID URL dereferencing functions -return DID document metadata as well as DID resolution metadata. -
--These sets of metadata are expressed as maps of name-value string pairs, referred -to as metadata properties. The keys of the map are unique and MUST NOT -be repeated. -
--Common fields are included here. Additional metadata properties MAY be -method-independent or method-specific. -
--While the concrete representation of metadata MAY be defined by the applicable binding of -the DID resolution or DID URL dereferencing function, the metadata -MUST be made available to the caller of the DID resolution or DID URL dereferencing -function as a map of associated plain string keys and values. -
- --For example, a concrete binding of the DID resolution or DID URL -dereferencing function might define how metadata is represented in the form -of headers of a network protocol. Or, a compliant representation of the abstract -data model for DID documents might define a special section of a document -structure that can contain metadata. In both cases, the DID resolver has to parse -whatever the representation is and make the metadata available as a map of associated -plain string keys and values. -
- --DID document metadata contains information about the input -DID and its associated DID document. This metadata typically -does not change between multiple DID resolution processes, for example: -
--The authoritative sources of this metadata are the DID controller and/or the DID registry. -
- --The following sections should be moved here: , , . -These properties are not part of the abstract data model for DID documents, but rather constitute DID document metadata. -
- --DID resolution metadata contains information about the resolution process. -This metadata is typically different between multiple DID resolution -processes, for example: -
--The authoritative source of this metadata is the DID resolver. -
- --This specification defines a single concrete metadata property for DID resolution metadata: -
-content-type
metadata property indicates the MIME type
-of the representation of the resource that is returned by the DID resolution
-or DID URL dereferencing function.
- +The interfaces and algorithms for resolving DIDs and dereferencing +DID URLs are specified in [[DID-RESOLUTION]]. +
@@ -630,7 +630,41 @@
+DID resolution is the function of processing a DID as +defined by a DID method to return a DID document, +and additional metadata, in a conformant representation. +A DID resolver is a software and/or hardware component that is capable of +executing the DID resolution function for at least one +DID method. +
+ ++DID URL dereferencing is the function of processing a DID URL and returning +a resource, which might or might not be a DID document, along with additional +metadata. A DID URL dereferencer is a software and/or hardware component that +is capable of executing the DID URL dereferencing function. Generally, a +DID URL dereferencer executes DID resolution on the DID portion of a +DID URL to obtain a DID document. The DID URL dereferencer then can perform +additional dereferencing on the DID document using the full DID URL, +if necessary. +
+ ++The general inputs and outputs of the DID resolution and DID URL dereferencing functions +are specified in the section of this document. Additional considerations +for the implementation of these functions are covered in [[?DID-RESOLUTION]]. +
-To avoid these issues, developers should refer to the Decentralized Characteristics -Rubric [[?DID-RUBRIC]] to decide which DID method best addresses the needs of +To avoid these issues, developers should refer to the Decentralized Characteristics +Rubric [[?DID-RUBRIC]] to decide which DID method best addresses the needs of the use case.
@@ -938,18 +972,19 @@- Adding a DID parameter to a DID URL means that the parameter becomes part of - an identifier for a resource (the DID document or other). Alternatively, the - DID resolution and the DID URL dereferencing processes can also be influenced - by passing options to a DID resolver that are not part of the DID URL. + Adding a DID parameter to a DID URL means that the parameter becomes part of + an identifier for a resource (the DID document or other). Alternatively, the + DID resolution and the DID URL dereferencing functions can also be influenced + by passing input metadata to a DID resolver that are not part of the DID URL. + (See ). Such options could for example control caching or the desired encoding of a resolution result. This is comparable to HTTP, where certain parameters could either be included in an HTTP URL, or alternatively passed as HTTP headers during the dereferencing process. The important distinction is that DID parameters that are part of the DID URL should be used to specify - what resource is being identified, whereas DID resolver options + what resource is being identified, whereas DID resolution options that are not part of the DID URL should be use to control how that - resource is dereferenced. + resource is resolved or dereferenced.
@@ -1076,11 +1111,11 @@
@@ -1238,7 +1273,7 @@
DID method specifications can create intermediate representations of a
DID document that do not contain the id
key, such as when a
-DID resolver is performing resolution. However, the fully resolved
+DID resolver is performing DID resolution. However, the fully resolved
DID document always contains a valid id
property. The value
of id
in the resolved DID document is expected to match the
DID that was resolved.
@@ -1352,10 +1387,10 @@
-The value of the id
property MAY be structured as a compound key.
+The value of the id
property MAY be structured as a compound key.
This is especially useful for integrating with existing key management systems and key formats such as JWK.
-It is RECOMMENDED that JWK kid
values are set to the public key fingerprint.
-It is RECOMMENDED that verification methods that use JWKs to represent their
+It is RECOMMENDED that JWK kid
values are set to the public key fingerprint.
+It is RECOMMENDED that verification methods that use JWKs to represent their
public keys utilize the value of kid
as their fragment identifier.
See the first key in EXAMPLE 12 for an example of a public key with a compound key identifier.
Producers MUST indicate which representation of a document has been used via a media type
in the document's metadata. Consumers MUST determine which representation a document is in
-via a media type in the document's metadata. Consumers MUST NOT determine the representation
+via the content-type
DID resolver metadata field. (See ).
+Consumers MUST NOT determine the representation
of a document through its content alone.
-When producing and consuming DID documents that are in plain JSON (as noted by
-the document metadata), the following rules MUST be followed.
+When producing and consuming DID documents that are in plain JSON (as indicated by
+a content-type
of application/json+did
in the resolver metadata), the following rules MUST be followed.
-When producing and consuming DID documents that are in JSON-LD (as noted by
-the document metadata), the following rules MUST be followed.
+When producing and consuming DID documents that are in JSON-LD (as indicated by
+a content-type
of application/jsonld+did
in the resolver metadata), the following rules MUST be followed.
-An update to a DID is any change, after creation, in the data used to produce a DID document. -DID Method implementers are responsible for defining what constitutes an update, -and what properties of the DID document are supported by a given DID method. +An update to a DID is any change, after creation, in the data used to produce a DID document. +DID Method implementers are responsible for defining what constitutes an update, +and what properties of the DID document are supported by a given DID method. For example, an update operation which replaces key material without changing it could be a valid update that does not result in changes to the DID document.
-A DID resolver is a software or hardware component with an API for -resolving DIDs of at least one DID method. It executes the read -operation for the DID method corresponding to the DID being -resolved to obtain the authoritative DID document. For more information, -see Section . +This section defines the inputs and outputs of the +DID resolution and DID URL dereferencing functions. The +exact implementation of these functions is out of scope for this specification, +but some considerations for implementors are available in [[?DID-RESOLUTION]].
The interfaces and algorithms for resolving DIDs and dereferencing -DID URLs are specified in [[DID-RESOLUTION]]. +DID URLs are specified in [[?DID-RESOLUTION]].
+-DID documents are typically publicly available. Encryption algorithms have been -known to fail due to advances in cryptography and computing power. +DID documents are typically publicly available. Encryption algorithms have been +known to fail due to advances in cryptography and computing power. Implementers are advised to assume that any encrypted data placed in a DID document might eventually be made available in clear text to the same audience to which the encrypted data is available. diff --git a/terms.html b/terms.html index f852c51c..7717d428 100644 --- a/terms.html +++ b/terms.html @@ -123,6 +123,16 @@ verifiable data registry. For more information, see [[VC-DATA-MODEL]].
-DID resolution is the function of processing a DID as -defined by a DID method to return a DID document, -and additional metadata, in a conformant representation. -A DID resolver is a software and/or hardware component that is capable of -executing the DID resolution function for at least one -DID method. +A DID resolver is a software and/or hardware component that takes +a DID as input and produces a conforming DID document as output. +This process is called DID resolution and often includes +resolution input options and resolution output metadata. The general process of +DID Resolution is described in . The details of +implementing a DID resolver is described in the DID Resolution +specification [[?DID-RESOLUTION]].
+DID URL dereferencing is the function of processing a DID URL and returning diff --git a/terms.html b/terms.html index 7717d428..fb026ec8 100644 --- a/terms.html +++ b/terms.html @@ -124,28 +124,22 @@
-A DID resolver is a software and/or hardware component that takes -a DID as input and produces a conforming DID document as output. -This process is called DID resolution and often includes -resolution input options and resolution output metadata. The general process of -DID Resolution is described in . The details of +A DID resolver is a software and/or hardware component that takes a +DID as input and produces a conforming DID document as output. +This process is called DID resolution and often includes resolution input +options and resolution output metadata. The general process of DID +resolution is described in . The details of implementing a DID resolver is described in the DID Resolution specification [[?DID-RESOLUTION]].
@@ -647,28 +647,31 @@-DID URL dereferencing is the function of processing a DID URL and returning -a resource, which might or might not be a DID document, along with additional -metadata. A DID URL dereferencer is a software and/or hardware component that -is capable of executing the DID URL dereferencing function. Generally, a -DID URL dereferencer executes DID resolution on the DID portion of a -DID URL to obtain a DID document. The DID URL dereferencer then can perform -additional dereferencing on the DID document using the full DID URL, -if necessary. +A DID URL dereferencer is a software and/or hardware component that takes +a DID URL as input and produces a resource, which might or might not be a +conforming DID Document as output. This process is called DID URL +dereferencing and often includes dereferencing input options and +dereferencing output metadata. Generally, a DID URL dereferencer uses a +DID resolver to execute DID resolution on the DID portion +of a DID URL to obtain a DID document. The DID URL +dereferencer can then perform additional dereferencing on the DID +document using the absolute DID URL.
-The general inputs and outputs of the DID resolution and DID URL dereferencing functions -are specified in the section of this document. Additional considerations -for the implementation of these functions are covered in [[?DID-RESOLUTION]]. +The general process of DID URL dereferencing is described in . The details of implementing a DID URL +dereferencer is described in the DID Resolution specification +[[?DID-RESOLUTION]].
From bf7ef6ed645ecd365b9c3216237f9216ae8d6f11 Mon Sep 17 00:00:00 2001 From: Manu Sporny+The general process of DID resolution is described in +. The details of implementing a +DID resolver are described in the DID Resolution specification +[[?DID-RESOLUTION]].
@@ -651,26 +654,17 @@-The general process of DID URL dereferencing is described in . The details of implementing a DID URL -dereferencer is described in the DID Resolution specification +The general process of DID URL dereferencing is described in +. The details of implementing a DID URL +dereferencer are described in the DID Resolution specification [[?DID-RESOLUTION]].
@@ -2595,8 +2589,10 @@-The interfaces and algorithms for resolving DIDs and dereferencing -DID URLs are specified in [[?DID-RESOLUTION]]. +All conformant DID resolvers MUST implement the DID resolution function +for at least one DID method and be able to return a DID document in +at least one conformant representation. All conformant DID URL dereferencers +MUST implement dereferencing for at least one conformant representation type.
-When producing and consuming DID documents that are in plain JSON (as indicated by
-a content-type
of application/json+did
in the resolver metadata), the following rules MUST be followed.
+When producing and consuming DID documents that are in plain JSON (as indicated
+by a content-type
of application/did+json
in the
+resolver metadata), the following rules MUST be followed.
When producing and consuming DID documents that are in JSON-LD (as indicated by
-a content-type
of application/jsonld+did
in the resolver metadata), the following rules MUST be followed.
+a content-type
of application/did+ld+json
in the
+resolver metadata), the following rules MUST be followed.
A DID resolver is a software and/or hardware component that takes a -DID as input and produces a conforming DID document as output. -This process is called DID resolution and often includes resolution input -options and resolution output metadata. +DID (and associated options) as input and produces a conforming +DID document (and associated metadata) as output in a process +called DID resolution.
-The general process of DID resolution is described in -. The details of implementing a -DID resolver are described in the DID Resolution specification -[[?DID-RESOLUTION]]. +The inputs and outputs of the DID resolution process are defined in +. Additional considerations for implementing a +DID resolver are discussed in [[?DID-RESOLUTION]].
A DID URL dereferencer is a software and/or hardware component that takes -a DID URL as input and produces a resource, which might or might not be a -conforming DID Document as output. This process is called DID URL -dereferencing and often includes dereferencing input options and -dereferencing output metadata. Generally, a DID URL dereferencer uses a +a DID URL as input (and associated options) and produces a resource (and +associated metadata) as output in a process called DID URL +dereferencing. The resource produced by DID URL dereferencing might or might not be a +conforming DID Document. Generally, a DID URL dereferencer uses a DID resolver to execute DID resolution on the DID portion of a DID URL to obtain a DID document. The DID URL dereferencer can then perform additional dereferencing on the DID -document using the absolute DID URL. +document using the complete DID URL.
-The general process of DID URL dereferencing is described in -. The details of implementing a DID URL -dereferencer are described in the DID Resolution specification -[[?DID-RESOLUTION]]. +The inputs and outputs of the DID URL dereferencing process are defined in +. Additional considerations for implementing a +DID URL dereferencer are discussed in [[?DID-RESOLUTION]].
@@ -1114,7 +1112,7 @@This section defines the inputs and outputs of the -DID resolution and DID URL dereferencing functions. The +DID resolution and DID URL dereferencing processes. The exact implementation of these functions is out of scope for this specification, but some considerations for implementors are available in [[?DID-RESOLUTION]].
@@ -2611,7 +2609,7 @@A DID resolver is a software and/or hardware component that takes a -DID (and associated options) as input and produces a conforming -DID document (and associated metadata) as output in a process +DID (and associated options) as input and produces a conforming +DID document (and associated metadata) as output in a process called DID resolution.
@@ -662,7 +662,7 @@
The inputs and outputs of the DID URL dereferencing process are defined in -. Additional considerations for implementing a +. Additional considerations for implementing a DID URL dereferencer are discussed in [[?DID-RESOLUTION]].
@@ -967,8 +967,8 @@- The exact processing rules for these parameters are specified in - [[?DID-RESOLUTION]]. +Additional considerations for processing these parameters are provided +in [?DID-RESOLUTION].
From d9833cb593444728194d9cb4dd6bb687ce12aace Mon Sep 17 00:00:00 2001
From: Manu Sporny Generic DID URL Parameters
an identifier for a resource (the DID document or other). Alternatively, the
DID resolution and the DID URL dereferencing functions can also be influenced
by passing input metadata to a DID resolver that are not part of the DID URL.
- (See ).
+ (See ).
Such options could for example control caching or the desired encoding of a
resolution result. This is comparable to HTTP, where certain parameters could
either be included in an HTTP URL, or alternatively passed as HTTP headers
@@ -2588,13 +2588,6 @@
but some considerations for implementors are available in [[?DID-RESOLUTION]].
-All conformant DID resolvers MUST implement the DID resolution function -for at least one DID method and be able to return a DID document in -at least one conformant representation. All conformant DID URL dereferencers -MUST implement dereferencing for at least one conformant representation type. -
--Additional considerations for processing these parameters are provided +Additional considerations for processing these parameters are discussed in [?DID-RESOLUTION].