Yadis

Last updated
Yadis logo Yadis-logo-1 0.jpg
Yadis logo

Yadis is a communications protocol for discovery of services such as OpenID, OAuth, and XDI connected to a Yadis ID. While intended to discover digital identity services, Yadis is not restricted to those. Other services can easily be included.

Contents

A Yadis ID can either be a traditional URL or a newer XRI i-name, where the i-name must resolve to a URL. The so-called Yadis URL either equals the Yadis ID (if this is a URL) or the resolved URL of the XRI i-name.

Furthermore, Yadis specifies how to use the Yadis URL to retrieve a service descriptor called Yadis Resource Descriptor. This descriptor follows the XRDS format and connects several services, like authentication or authorization to the Yadis URL. Each service description can have further parameters.

Modular architecture

Yadis follows the REST-ful, "small pieces loosely joined" paradigm that has proven to be successful in the development of the web.

The basic assumption is that identities can be addressed with URLs or with other identifiers (such as XRI i-names) that can be resolved to URLs. Yadis then associates an XRDS document (an XML-based capability file) with each URL that expresses the associated capabilities or services.

The owner of a Yadis identifier can choose which services he wishes to use in his XRDS document. After retrieving this document, a relying party such as a website accepting Yadis identifiers can select an appropriate services of the XRDS document, e.g. a protocol to use for authentication. This can allow existing web sites, like blogs, to easily implement basic Yadis functionality (for instance, redirecting users who arrive at a blog to relevant information about the person the blog belongs to) while also making it possible to build more advanced applications (for example, allowing complex queries of a site-owner's information to be submitted directly to the Yadis site).

Discovery of the Yadis Resource Descriptor

The capability document associated with an identity URL is found either:

  1. By following a custom HTTP response header called X-XRDS-Location,
  2. By an equivalent entry in the HTML HEAD section, called
    <meta http-equiv="X-XRDS-Location" content="http://example.com/yadis.xml">, or
  3. By requesting a special mime type called application/xrds+xml when performing an HTTP GET on the identity URL.

Developers can choose which of the alternatives to implement, based on factors such as whether they can run software at the identity URL or not.

XRDS documents

Here is an example XRDS capability document:

<?xml version="1.0" encoding="UTF-8"?><xrds:XRDSxmlns:xrds="xri://$xrds"xmlns="xri://$xrd*($v*2.0)"xmlns:openid="http://openid.net/xmlns/1.0"><XRD><Servicepriority="50"><Type>http://openid.net/signon/1.0</Type><URI>http://www.myopenid.com/server</URI><openid:Delegate>http://smoker.myopenid.com/</openid:Delegate></Service><Servicepriority="10"><Type>http://openid.net/signon/1.0</Type><URI>http://www.livejournal.com/openid/server.bml</URI><openid:Delegate>http://www.livejournal.com/users/frank/</openid:Delegate></Service><Servicepriority="20"><Type>http://lid.netmesh.org/sso/2.0</Type><URI>http://mylid.net/liddemouser</URI></Service><Service><Type>http://lid.netmesh.org/sso/1.0</Type></Service></XRD></xrds:XRDS>

If this XRDS document was returned, using one of the listed mechanisms, for a URL, it would express the following information:

LID, OpenID and the developer community

Yadis was initiated by developers of the Light-weight Identity (LID) and OpenID protocols. This collaboration was then joined by members of the OASIS XRI Technical Committee, particularly those working on i-names.

However, Yadis is an open initiative, so other developers will start using XRDS lightweight capabilities description, making possible a "mix and match" approach to building Yadis-enabled applications, enabling application developers to choose their own balance between ease of implementation on one hand, and range of features on the other.

See also

Related Research Articles

SyncML is the former name for a platform-independent information synchronization standard. The project is currently referred to as Open Mobile Alliance Data Synchronization and Device Management. The purpose of SyncML is to offer an open standard as a replacement for existing data synchronization solutions, which have mostly been somewhat vendor-, application- or operating system specific. SyncML 1.0 specification was released on December 17, 2000, and 1.1 on February 26, 2002.

Security Assertion Markup Language is an open standard for exchanging authentication and authorization data between parties, in particular, between an identity provider and a service provider. SAML is an XML-based markup language for security assertions. SAML is also:

i-numbers are a type of Internet identifier designed to solve the problem of how any web resource can have a persistent identity that never changes even when the web resource moves or changes its human-friendly name. For example, if a web page has an i-number, and links to that page use the i-number, then those links will not break even if the page is renamed, the website containing the page is completely reorganized, or the page is moved to another website.

I-names are one form of an XRI — an OASIS open standard for digital identifiers designed for sharing resources and data across domains and applications. I-names are human readable XRIs intended to be as easy as possible for people to remember and use. For example, a personal i-name could be =Mary or =Mary.Jones. An organizational i-name could be @Acme or @Acme.Corporation.

XML namespaces are used for providing uniquely named elements and attributes in an XML document. They are defined in a W3C recommendation. An XML instance may contain element or attribute names from more than one XML vocabulary. If each vocabulary is given a namespace, the ambiguity between identically named elements or attributes can be resolved.

Apache Wicket

Apache Wicket, commonly referred to as Wicket, is a component-based web application framework for the Java programming language conceptually similar to JavaServer Faces and Tapestry. It was originally written by Jonathan Locke in April 2004. Version 1.0 was released in June 2005. It graduated into an Apache top-level project in June 2007.

OpenID Open and decentralized authentication protocol standard

OpenID is an open standard and decentralized authentication protocol. Promoted by the non-profit OpenID Foundation, it allows users to be authenticated by co-operating sites using a third-party service, eliminating the need for webmasters to provide their own ad hoc login systems, and allowing users to log into multiple unrelated websites without having to have a separate identity and password for each. Users create accounts by selecting an OpenID identity provider and then use those accounts to sign onto any website that accepts OpenID authentication. Several large organizations either issue or accept OpenIDs on their websites, according to the OpenID Foundation.

A site map is a list of pages of a web site within a domain.

Metalink

Metalink is an extensible metadata file format that describes one or more computer files available for download. It specifies files appropriate for the user's language and operating system; facilitates file verification and recovery from data corruption; and lists alternate download sources.

Security Assertion Markup Language (SAML) is an XML standard for exchanging authentication and authorization data between security domains. SAML is a product of the OASIS (organization) Security Services Technical Committee.

Security Assertion Markup Language 2.0 (SAML 2.0) is a version of the SAML standard for exchanging authentication and authorization identities between security domains. SAML 2.0 is an XML-based protocol that uses security tokens containing assertions to pass information about a principal between a SAML authority, named an Identity Provider, and a SAML consumer, named a Service Provider. SAML 2.0 enables web-based, cross-domain single sign-on (SSO), which helps reduce the administrative overhead of distributing multiple authentication tokens to the user.

OAuth Open standard for authorization

OAuth is an open standard for access delegation, commonly used as a way for Internet users to grant websites or applications access to their information on other websites but without giving them the passwords. This mechanism is used by companies such as Amazon, Google, Facebook, Microsoft and Twitter to permit the users to share information about their accounts with third party applications or websites.

XML documents typically refer to external entities, for example the public and/or system ID for the Document Type Definition. These external relationships are expressed using URIs, typically as URLs.

Web Services Description Language

The Web Services Description Language is an XML-based interface description language that is used for describing the functionality offered by a web service. The acronym is also used for any specific WSDL description of a web service, which provides a machine-readable description of how the service can be called, what parameters it expects, and what data structures it returns. Therefore, its purpose is roughly similar to that of a type signature in a programming language.

In computing, Open Data Protocol (OData) is an open protocol that allows the creation and consumption of queryable and interoperable REST APIs in a simple and standard way. Microsoft initiated OData in 2007. Versions 1.0, 2.0, and 3.0 are released under the Microsoft Open Specification Promise. Version 4.0 was standardized at OASIS, with a release in March 2014. In April 2015 OASIS submitted OData v4 and OData JSON Format v4 to ISO/IEC JTC 1 for approval as an international standard.

An identity provider is a system entity that creates, maintains, and manages identity information for principals and also provides authentication services to relying applications within a federation or distributed network.

The Open Publication Distribution System (OPDS) catalog format is a syndication format for electronic publications based on Atom and HTTP. OPDS catalogs enable the aggregation, distribution, discovery, and acquisition of electronic publications. OPDS catalogs use existing or emergent open standards and conventions, with a priority on simplicity.

An Extensible Resource Identifier is a scheme and resolution protocol for abstract identifiers compatible with Uniform Resource Identifiers and Internationalized Resource Identifiers, developed by the XRI Technical Committee at OASIS. The goal of XRI was a standard syntax and discovery format for abstract, structured identifiers that are domain-, location-, application-, and transport-independent, so they can be shared across any number of domains, directories, and interaction protocols.

The SAML metadata standard belongs to the family of XML-based standards known as the Security Assertion Markup Language (SAML) published by OASIS in 2005. A SAML metadata document describes a SAML deployment such as a SAML identity provider or a SAML service provider. Deployments share metadata to establish a baseline of trust and interoperability.