Now let's retrace some of the steps that led to the publication of the SAML V2.0 Metadata specification in March 2005. A turning point occurred on 14 November 2003—our story starts there.
Historical origins In response to
Microsoft Passport, the
Liberty Alliance conceived the
Identity Federation Framework, a federation technology developed over a three-year period between 2002 and 2004. (The previously mentioned
history of SAML provides context for ID-FF.) On 14 November 2003, Liberty contributed ID-FF 1.2 to OASIS. The contribution included a document entitled
Liberty Metadata Description and Discovery Specification Version 1.0, which included the following design goals: • "
whois for SAML federations" (based on the Organization and ContactPerson elements in metadata) • dynamic discovery of metadata (with resolution via DNS and Well-Known Location) • document-level security using XML Signature As it turns out, all of those goals were preserved in the OASIS SAML V2.0 Metadata Standard described later in this article. The schema document included with the legacy Liberty ID-FF 1.2 archive is identified as Liberty Metadata Version 1.1 whereas Liberty Metadata Version 1.0 was contributed to OASIS. The apparent contradiction was explained by the schema's author. (Peter Davis, Personal Communication) Between November 2003 (when Version 1.0 was contributed to OASIS) and December 2004 (when Version 1.1 was completed by Liberty), development of the Liberty metadata specification continued in parallel with the OASIS work stream. See the chart below for a visual representation. The arrows in the chart indicate dependencies while the dashed lines indicate equivalencies. Relevant
references into the Liberty work stream are given at the end of this article. The original metadata schema contributed to OASIS is listed in its entirety in section 7 of the Liberty Metadata Version 1.0 specification. Similarly, the specification for Liberty Metadata Version 1.1 includes a listing of the Version 1.1 schema. Both the Version 1.0 schema and the Version 1.1 schema are linked here courtesy of the
Internet Archive's Wayback Machine.
Post-November 2003 Over the next thirteen months, from November 2003 to December 2004, the OASIS Security Services (SAML) Technical Committee (SSTC) molded the Liberty metadata specification into what eventually became known as SAML Metadata. During that time, the SSTC generalized the metadata specification to include support for multiple protocols (including non-SAML protocols) but more importantly, the Liberty metadata schema was retrofitted with numerous extension points. Historically, the extensibility of SAML Metadata has had important consequences, as we shall see. By March 2004, most of the Liberty contribution was incorporated into the OASIS work stream. From that point onward, the Liberty and OASIS work streams progressed concurrently (but not independently since the same people were working on both specifications). Between March and July 2004, the fledgling SAML Metadata specification underwent significant churn. In July 2004, the SSTC issued a public call for comments covering a complete set of SAML V2.0 draft specifications. Included in that specification set was a working draft of a newly forged SAML V2.0 Metadata specification. In retrospect, it appears as though the bulk of the SAML V2.0 Metadata specification was developed between March and July 2004, but clearly the SAML V2.0 Metadata Standard sprung from the loins of the Liberty Alliance, specifically Liberty Metadata Version 1.0. Consequently, to understand the origins of SAML Metadata, one must study the provenance of Liberty metadata. The remaining history of SAML Metadata is mostly OASIS administrative process. After the final Committee Draft was published in November 2004, the SSTC began the standardization process in January 2005. Finally, on 5 March 2005, OASIS announced the newly ratified SAML V2.0 Standard. The V2.0 specification set (see the
References section for a complete list) included the final SAML V2.0 Metadata specification. A decade later, in September 2015, OASIS published a revised SAML Metadata specification with errata. As a result, the original metadata specification was deprecated, as were the other documents in the original 2.0 specification set. During the intervening decade, between 2005 and 2015, the SSTC developed a number of "Post-V2.0" draft specifications. Some of these draft documents became Committee Specifications. A select subset of these Committee Specifications are listed in the
References section at the end of this article.
Pre-November 2003 As it turns out, the influence of the Liberty Identity Federation Framework on SAML Metadata predates the contribution of ID-FF 1.2 in November 2003. Apparently the SSTC was dabbling in metadata in parallel with the Liberty Alliance. An excerpt from a draft metadata specification published in September 2003 bears this out: This document defines metadata that describe the elements and attributes required to use the SAML Web Browser SSO Profiles. Since the Liberty Alliance Web SSO Profiles are directly based on the SAML Web SSO Profiles, the metadata defined in this document borrows extensively from the metadata definitions in the draft Liberty Alliance 1.2 specifications. (Excerpted from "Metadata for SAML 2.0 Web Browser SSO Profiles") The revision history at the end of that draft document gives the following characterization of itself: "Initial draft based on Draft 07 of SAML 1.1 Metadata specification." In other words, earlier draft documents were published. Indeed, the revision history at the end of the previous draft shows a trail of metadata specifications dating back to November 2002. Following the document trail, the influence of Liberty ID-FF on SAML metadata can be traced to a draft specification published in April 2003. This is the first known OASIS document that references Liberty ID-FF, specifically, Liberty Metadata Version 1.0-06, an early version of the Liberty Metadata specification about which little is known. It is, however, clear that "Metadata for SAML 1.1 Web Browser Profiles" was intended to be a companion to the SAML V1.1 Standard but of course we know that V1.1 does not specify the use of metadata. See the next section for relevant conjecture. Two early metadata schema may be of interest: • In June 2002, barely a month after the SSTC completed its work on what was to become the SAML V1.0 Standard, the
Shibboleth project developed a metadata schema consisting of and elements. This schema would drive the initial versions of the Shibboleth IdP software. • In February 2003, the SSTC released a draft schema for a metadata specification entitled "Metadata for SAML 1.0 Web Browser Profiles." That schema remains a curiosity, however, since the very next version of that document stream (and all subsequent versions) would exhibit the Liberty metadata syntax. There is no evidence to suggest that either of these early attempts to define a metadata schema had any appreciable effect on the development of the Liberty metadata schema.
Historical summary We know that metadata standards for SAML V1.0 or SAML V1.1 were never published. We also know that the necessary IPR for Liberty Metadata was not in place until November 2003. With that, we offer the following summary and conjecture: • A draft specification entitled "Metadata for SAML 1.0 Web Browser Profiles" was the first known SAML metadata specification. The document is dated 12 November 2002, which is one week
after the SAML V1.0 Standard was announced, which is curious. In any case, the metadata syntax used in that document is completely different from what we now know as SAML Metadata. That document was never published and its origins remain a mystery. • A draft specification entitled "Metadata for SAML 1.1 Web Browser Profiles" was the first known SAML metadata specification based on Liberty ID-FF. It was completed in April 2003. The title of the draft specification makes it clear that the SSTC knew that SAML V1.1 was coming and moreover SAML metadata was to be included in the SAML V1.1 Standard. • Unfortunately that did not happen since the necessary IPR was not in place when the SAML V1.1 Standard was announced. Indeed, the formal contribution of Liberty ID-FF 1.2 to OASIS occurred two months
after the announcement of the SAML V1.1 Standard in September 2003. • In September 2003, less than two weeks after the announcement of the SAML V1.1 Standard, the SSTC set its sights on SAML V2.0 by forking the document stream and renaming the draft document: "Metadata for SAML 2.0 Web Browser Profiles." • SAML Metadata came to life between March and July 2004. The SSTC issued a public call for comments that included a candidate SAML Metadata specification. • The final SAML Metadata specification was included in the SAML V2.0 Standard specification set announced in March 2005. • For the next 10 years, the specification documents evolved (but the schema remained stable). A specification for SAML V2.0 Metadata with Errata (SAMLMeta20Errata) was published in September 2015.
Post-V2.0 specifications As mentioned earlier, the SAML V2.0 Metadata Schema has numerous extension points. This feature led to a proliferation of "Post-V2.0" specifications that extended the standard in several directions. The more popular metadata extensions are listed below for convenience (see the
examples for specific use cases): •
SAML V2.0 Metadata Extensions for Registration and Publication Information Version 1.0. •
SAML V2.0 Metadata Extension for Entity Attributes. •
SAML V2.0 Metadata Extensions for Login and Discovery User Interface Version 1.0. •
Identity Provider Discovery Service Protocol and Profile. •
Service Provider Request Initiation Protocol and Profile Version 1.0. •
SAML V2.0 Metadata Profile for Algorithm Support Version 1.0. An important "Post-V2.0" specification is the
SAML V2.0 Metadata Interoperability Profile, which builds on the premise that a formal public key infrastructure (PKI) can be extremely complex and in some cases intractable (it is well known, for example, that browser-facing TLS certificate revocation is broken). In essence, the
Metadata Interoperability Profile is an attempt to provide a workable key revocation mechanism for SAML federations. Since its publication in August 2009, the
Metadata Interoperability Profile has been a particularly influential document, especially in higher education (see, for example, the certificate-related requirements for deployers in one large R&E federation). Metadata interoperability plays a key role in a formal implementation profile published by the Kantara Initiative: Indeed, the key feature that distinguishes a scalable SAML implementation (from one that is not) is metadata interoperability. ==SAML metadata examples==