XRDS

from Wikipedia, the free encyclopedia

XRDS (short for: Extensible Resource Descriptor Sequence ) is an XML- based file format to describe metadata about a web resource and make it accessible ("Discovery") - in particular services that are available under this resource ("Discovery"). Service discovery "). For example, an OpenID provider can use XRDS documents to describe the address and capabilities of its OpenID service.

background

The XML format used by XRDS was originally developed by OASIS in 2004 for XRI (Extensible Resource Identifier) ​​as a description format for XRIs. The acronym XRDS was coined during subsequent discussions between members of the XRI Technical Committee and OpenID developers at the first Internet Identity Workshop in Berkeley, California, USA in October 2005.

A protocol that allows XRDS documents to be retrieved from a URL was called Yadis and was released in March 2006. Yadis became the description format for OpenID 1.1.

Such a description format subsequently turned out to be so useful for URLs and XRIs that in November 2007 the URL-based use of XRDS was formally added to the XRI Resolution 2.0 specification. This format and protocol then became part of the OpenID Authentication 2.0 specification.

XRDS Simple

At the beginning of 2008, Eran Hammer-Lahav's work on the OAuth protocol led to the development of XRDS Simple , which is a special profile of XRDS that restricts XRDS to the most essential elements and thus makes it easier to use. Furthermore, some extensions have been defined to support OAuth and other HTTP -based protocols. At the end of 2008, further work on XRDS Simple was stopped. The results achieved up to that point were fed back into the XRDS project and are incorporated into the XRD 1.0 specification.

Applications

In addition to the main application XRI , XRDS is also used in the following areas:

  • OpenID : Description of authentication services as well as extensions from some providers.
  • OAuth : Description of OAuth services and capabilities.
  • Higgins Project : Description of Higgins "Context Providers".
  • XDI.org: For I-name and I-number addresses and identity services based on them.
  • XDI Protocol: Description of XDI services and capabilities.

example

The following example shows an XRDS document for the XRI i-name = example . As can be seen therein, an outer <XRDS> element serves as a container for one or more <XRD> (e X tensible R esource D Escriptor) elements. Many XRDS documents contain only a single XRD element. Some applications such as B. XRI resolution can lead to several <XRD> elements in one <XRDS> element in order to describe a metadata sequence of several related resources.

<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)"
xmlns:openid="http://openid.net/xmlns/1.0">
  <XRD ref="xri://=example">
    <Query>*example</Query>
    <Status ceid="off" cid="verified" code="100"/>
    <Expires>2008-05-05T00:15:00.000Z</Expires>
    <ProviderID>xri://=</ProviderID>
    <!-- Synonyme -->
    <LocalID priority="10">!4C72.6C81.D78F.90B2</LocalID>
    <EquivID priority="10">http://example.com/example-user</EquivID>
    <EquivID priority="15">http://example.net/blog</EquivID>
    <CanonicalID>xri://=!4C72.6C81.D78F.90B2</CanonicalID>
    <!-- Dienste -->
    <Service>
      <!-- XRI Auflösungsdienst -->
      <ProviderID>xri://=!F83.62B1.44F.2813</ProviderID>
      <Type>xri://$res*auth*($v*2.0)</Type>
      <MediaType>application/xrds+xml</MediaType>
      <URI priority=”10”>http://resolve.example.com/</URI>
      <URI priority=”15”>http://resolve2.example.com/</URI>
      <URI>https://resolve.example.com/</URI>
    </Service>
    <!-- OpenID 2.0 Authentifizierungsdienst -->
    <Service priority="10">
      <Type>http://specs.openid.net/auth/2.0/signon</Type>
      <URI>http://www.myopenid.com/server</URI>
      <LocalID>http://example.myopenid.com/</LocalID>
    </Service>
    <!-- OpenID 1.0 Authentifizierungsdienst -->
    <Service priority="20">
      <Type>http://openid.net/server/1.0</Type>
      <URI>http://www.livejournal.com/openid/server.bml</URI>
      <openid:Delegate>http://www.livejournal.com/users/example/</openid:Delegate>
    </Service>
    <!-- Dienst für Dateien des Typs JPEG -->
    <Service priority="10">
      <Type match="null" />
      <Path select="true">/media/pictures</Path>
      <MediaType select="true">image/jpeg</MediaType>
      <URI append="path" >http://pictures.example.com/</URI>
    </Service>
  </XRD>
</xrds:XRDS>

Synonyms

XRDS documents support the description of synonyms of a resource. In this context, a synonym can be a URI or XRI , which denotes the same resource. For example, the above XRDS document describes the following synonyms:

  1. The local synonym ! 4C72.6C81.D78F.90B2 . This is an XRI synonym which is to be understood as relative to the provider of the XRDS document.
  2. The URL synonym http://example.com/example-user with priority 10 (1 is the highest priority).
  3. The URL synonym http://example.net/blog with priority 15 (lower than the URL synonym above).
  4. The canonical synonym xri: // =! 4C72.6C81.D78F.90B2 . This is an absolute XRI i-number for the resource - a permanent identifier that cannot be assigned to another resource (similar to a URN ).

services

The most important part of the XRDS document contains the description of the services ("Service Endpoints") that are connected to the resource. For example, the above XRDS document describes the following services:

  1. An XRI resolution service (service type xri: // $ res * auth * ($ v * 2.0)).
  2. An OpenID 2.0 authentication service (service type http://openid.net/signon/2.0).
  3. An OpenID 1.0 authentication service (service type http://openid.net/server/1.0).
  4. A service for files of the type JPEG media type image / jpeg.

Service types

In XRDS, the type of service is described using a URI or XRI . The following list shows some popular service types. A project has been running at xrdstype.net since May 2008 to catalog such service types .

XRI resolution

Surname URI or XRI origin since
Direct resolution xri: // $ res * auth * ($ v * 2.0) / XRI Resolution 2.0 March 2005
Proxy resolution xri: // $ res * proxy * ($ v * 2.0) / XRI Resolution 2.0 March 2005

OpenID

Surname URI or XRI origin since
OpenID 1.0 http://openid.net/server/1.0 OpenID Authentication 2.0 , Section 14.2.1 June 2005
OpenID 1.1 http://openid.net/server/1.1 OpenID Authentication 2.0 , Section 14.2.1 May 2006
OpenID 2.0 - standard login http://specs.openid.net/auth/2.0/signon OpenID Authentication 2.0 , Section 7.3.2.1.2 December 2007
OpenID 2.0 - OP Identifier Login http://specs.openid.net/auth/2.0/server OpenID Authentication 2.0 , Section 7.3.2.1.1 December 2007
OpenID Attribute Exchange 1.0 http://openid.net/srv/ax/1.0 OpenID Attribute Exchange 1.0 , Section 2 December 2007

OAuth

Surname URI or XRI origin since
OAuth Discovery http://oauth.net/discovery/1.0 OAuth Discovery Draft 2 March 2008

XDI.org I-Services

I-Services are identity services associated with XRIs .

Surname URI or XRI origin since
Contact page ("Contact Service") xri: // + i-service * (+ contact) * ($ v * 1.0) / XDI.org Contact Service 1.0 ( Memento of February 8, 2012 in the Internet Archive ) August 2006
Forwarding Service (English "Forwarding Service") xri: // + i-service * (+ forwarding) * ($ v * 1.0) / XDI.org Forwarding Service 1.0 ( Memento from February 8, 2012 in the Internet Archive ) August 2006

License

XRDS is a free, open source specification from OASIS . The OASIS for XRI has worked under a free license from the very beginning (in 2003), as can be read under the XRI Charter.

See also

Web links

Individual evidence

  1. Yadis.org ( Memento from June 10, 2015 in the Internet Archive ) (URL is out of date)
  2. XRDS synonyms are described in detail in XRI Resolution 2.0 (Section 5).
  3. Descriptions of services are described in detail in XRI Resolution 2.0 (Sections 4.2 and 13)
  4. Announcing xrdstype.net
  5. ^ I-Services wiki ( Memento from April 19, 2008 in the Internet Archive )
  6. http://www.oasis-open.org/committees/xri/charter.php