- XRDS
-
XRDS (Kurzform für: eXtensible Resource Descriptor Sequence) ist ein XML-Format, um Metadaten über eine Web Resource zu beschreiben und abrufbar zu machen (engl. „Discovery") – insbesondere Dienste, die unter dieser Ressource verfügbar sind (engl. „Service discovery"). Beispielsweise kann ein OpenID-Anbieter XRDS-Dokumente benutzen, um die Adresse und die Fähigkeiten seines OpenID-Dienstes zu beschreiben.
Inhaltsverzeichnis
Hintergrund
Das von XRDS verwendete XML-Format wurde ursprünglich im Jahr 2004 vom OASIS für XRI (Extensible Resource Identifier) als Beschreibungsformat für XRIs entwickelt. Die Abkürzung XRDS wurde während darauf folgender Diskussionen zwischen Mitgliedern des XRI Technischen Komitees und OpenID-Entwicklern beim ersten Internet Identity Workshop in Berkeley (Kalifornien, USA) im Oktober 2005 geprägt.
Ein Protokoll, mit dem XRDS-Dokumente von einer URL abgerufen werden können, wurde Yadis genannt und im März 2006 unter Yadis.org veröffentlicht. Yadis wurde das Beschreibungsformat für OpenID 1.1.
Ein solches Beschreibungsformat stellte sich in weiterer Folge als so nützlich für URLs und XRIs heraus, dass im November 2007 die URL-basierte Verwendung von XRDS formell zur XRI Resolution 2.0 Spezifikation hinzugefügt wurde. Dieses Format und Protokoll wurde dann Teil der OpenID Authentication 2.0-Spezifikation.
XRDS Simple
Zu Beginn des Jahres 2008 führten die Arbeiten am OAuth-Protokoll von Eran Hammer-Lahav zur Entwicklung von XRDS Simple, welches ein spezielles Profil von XRDS ist, das XRDS auf die wesentlichsten Elemente beschränkt und somit einfacher anwendbar macht. Des Weiteren wurden einige Erweiterungen definiert, um OAuth und andere HTTP-basierte Protokolle zu unterstützen. Ende 2008 wurden weitere Arbeiten an XRDS Simple eingestellt. Die bis dahin erzielten Ergebnisse wurden in das XRDS Projekt zurückgeführt und fließen in die XRD 1.0 Spezifikation ein.
Anwendungen
Neben der Hauptanwendung XRI wird XRDS unter anderem in folgenden Bereichen benutzt:
- OpenID: Beschreibung von Authentifizierungsdiensten sowie von Erweiterungen mancher Anbieter.
- OAuth: Beschreibung von OAuth-Diensten und Fähigkeiten.
- Higgins Projekt: Beschreibung von Higgins „Context Providers".
- XDI.org: Für I-name und I-number Adressen und darauf basierende Identititätsdienste.
- XDI Protokoll: Beschreibung von XDI-Diensten und Fähigkeiten.
Beispiel
Das folgende Beispiel zeigt ein XRDS-Dokument für den XRI i-name =example. Wie darin zu erkennen ist, dient ein äußeres <XRDS> Element als Container für ein oder mehrere <XRD> (eXtensible Resource Descriptor) Elemente. Viele XRDS-Dokumente beinhalten nur ein einziges XRD-Element. Manche Anwendungen wie z. B. XRI Auflösung können zu mehreren <XRD> Elementen in einem <XRDS> Element führen, um eine Metadata-Sequenz mehrerer zusammen hängender Ressourcen zu beschreiben.
<?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>
Synonyme
XRDS-Dokumente unterstützen die Beschreibung von Synonymen einer Ressource. In diesem Zusammenhang kann ein Synonym ein URI oder XRI sein, welches die gleiche Ressource bezeichnet. Beispielsweise beschreibt das obige XRDS-Dokument die folgenden Synonyme[1]:
- Das lokale Synonym !4C72.6C81.D78F.90B2. Dies ist ein XRI Synonym welches als relativ zum Anbieter des XRDS Dokuments zu verstehen ist.
- Das URL Synonym http://example.com/example-user mit Priorität 10 (1 ist die höchste Priorität).
- Das URL Synonym http://example.net/blog mit Priorität 15 (niedriger als das obige URL Synonym).
- Das kanonische Synonym xri://=!4C72.6C81.D78F.90B2. Das ist eine absolute XRI i-number für die Resource -- ein dauerhafter Bezeichner, der nicht wieder einer anderen Resource zugewiesen werden kann (ähnlich eines URNs).
Dienste
Der wichtigste Teil des XRDS-Dokuments beinhaltet die Beschreibung von Diensten (engl. „Service Endpoints"), die mit der Ressource verbunden sind. Beispielsweise beschreibt das obige XRDS-Dokument die folgenden Dienste[2]:
- Ein XRI Auflösungsdienst (Diensttyp xri://$res*auth*($v*2.0)).
- Ein OpenID 2.0 Authentifizierungsdienst (Diensttyp http://openid.net/signon/2.0).
- Ein OpenID 1.0 Authentifizierungsdienst (Diensttyp http://openid.net/server/1.0).
- Ein Dienst für Dateien des Typs JPEG Medientyp image/jpeg.
Diensttypen
In XRDS wird der Typ eines Dienstes mittels eines URI oder XRI beschrieben. Die folgende Liste zeigt einige bekannt Diensttypen. Unter http://xrdstype.net läuft seit Mai 2008 ein Projekt, um solche Diensttypen zu katalogisieren.
XRI Auflösung
Name URI oder XRI Herkunft Seit Direkte Auflösung xri://$res*auth*($v*2.0) XRI Resolution 2.0 März 2005 Proxy Auflösung xri://$res*proxy*($v*2.0) XRI Resolution 2.0 März 2005 OpenID
Name URI oder XRI Herkunft Seit OpenID 1.0 http://openid.net/server/1.0 OpenID Authentication 2.0, Section 14.2.1 Juni 2005 OpenID 1.1 http://openid.net/server/1.1 OpenID Authentication 2.0 , Section 14.2.1 Mai 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 Dezember 2007 OpenID Attribute Exchange 1.0 http://openid.net/srv/ax/1.0 OpenID Attribute Exchange 1.0, Section 2 Dezember 2007 OAuth
Name URI oder XRI Herkunft Seit OAuth Discovery http://oauth.net/discovery/1.0 OAuth Discovery Draft 2 März 2008 XDI.org I-Services
I-Services sind mit XRIs verbundene Identitätsdienste.[3]
Name URI oder XRI Herkunft Seit Kontaktseite (engl. „Contact Service") xri://+i-service*(+contact)*($v*1.0) XDI.org Contact Service 1.0 August 2006 Weiterleitung (engl. „Forwarding Service") xri://+i-service*(+forwarding)*($v*1.0) XDI.org Forwarding Service 1.0 August 2006 Lizenz
XRDS ist eine freie Open-Source-Spezifikation von OASIS. Das OASIS für XRI hat von Beginn seiner Arbeit an (im Jahr 2003) unter einer freien Lizenz gearbeitet, wie unter der XRI Charter und nachgelesen werden kann.
Siehe auch
Einzelnachweise
- ↑ XRDS-Synonyme werden ausführlich in XRI Resolution 2.0 (Abschnitt 5) beschrieben.
- ↑ Beschreibungen von Diensten werden ausführlich in XRI Resolution 2.0 (Abschnitte 4.2 und 13) beschrieben
- ↑ I-Services wiki
Weblinks
- XRI Resolution 2.0 – Für XRDS Documents siehe Abschnitt 4.
- OASIS XRI Technisches Komitee
- XRDS Simple 1.0
- XRDS Type – Ein Katalog von XRDS Diensttypen.
- dev.xri.net – Ein öffentliches Wiki für XRDS und XRI basierte Open-Source Projekte.
- Internet Identity Workshop Einführung zu XRI und XRDS
Wikimedia Foundation.