XRDS
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:
- 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.
- The URL synonym http://example.com/example-user with priority 10 (1 is the highest priority).
- The URL synonym http://example.net/blog with priority 15 (lower than the URL synonym above).
- 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:
- An XRI resolution service (service type xri: // $ res * auth * ($ v * 2.0)).
- An OpenID 2.0 authentication service (service type http://openid.net/signon/2.0).
- An OpenID 1.0 authentication service (service type http://openid.net/server/1.0).
- 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
- XRI Resolution 2.0 - For XRDS documents see section 4.
- OASIS XRI Technical Committee
- XRDS Type - A catalog of XRDS service types.
- Introduction to XRI and XRDS Internet Identity Workshop
Individual evidence
- ↑ Yadis.org ( Memento from June 10, 2015 in the Internet Archive ) (URL is out of date)
- ↑ XRDS synonyms are described in detail in XRI Resolution 2.0 (Section 5).
- ↑ Descriptions of services are described in detail in XRI Resolution 2.0 (Sections 4.2 and 13)
- ↑ Announcing xrdstype.net
- ^ I-Services wiki ( Memento from April 19, 2008 in the Internet Archive )
- ↑ http://www.oasis-open.org/committees/xri/charter.php