TOC 
A SAML WhitepaperJ. Hodges
 NeuStar
 January 16, 2007


Comparison: OpenID and SAML - Draft 00

Abstract

This document presents a brief comparison of OpenID and SAML. For the most part, the comparison is between OpenID 2.0 and SAML 2.0, although there are some mentions of prior versions of each. The comparison addresses technical features, breadth of addressed use cases, and attributes of the specification sets.



Table of Contents

1.  Introduction
2.  Comparison Scope
3.  OpenID - SAML comparison
4.  Contributors
5.  Acknowledgments
6.  Open Issues
7.  Change Log
8.  References
§  Author's Address




 TOC 

1.  Introduction



 TOC 

2.  Comparison Scope

The scope of this analysis is:

The following are outside the scope of this analysis:



 TOC 

3.  OpenID - SAML comparison

OpenID, both 1.X and 2.0, and SAML 1.X and 2.0, offer functionality quite similar to each other. Obvious differentiators are the message encodings, security mechanisms, and overall profile flows -- OpenID specifies a flow that no present single SAML profile congruently matches.

However, we note that it is distinctly possible to relatively easily craft a new SAML profile that incorporates the deltas between OpenID and, say, the SAML Web Browser SSO profile.

In fact, we have begun to do just that: [draft‑hodges‑saml‑openid‑profile‑00] (Hodges, J., “OpenID SAMLv2 Lightweight SSO Profile,” January 2007.).

Below, Table 1 (Specification Set Contents and Scope) provides a high-level comparison of the OpenID and SAML specification sets.



OpenIDSAML


Overall Status: At the time of writing this document, OpenID 2.0 was a draft specification set. There are claimed to be multiple alpha/beta implementations. OpenID 1.x is discussed in a table below.

Overall Status: SAML 2.0 was approved as an OASIS Standard in March 2005. There are multiple certified interoperable implementations including at least two open source ones [OpenSSO and LASSO]. SAML 1.x is discussed in a table below.
OpenID 2.0 specifies a concrete web SSO protocol, IDP discovery protocol, principal identifier format, an extensibility mechanism (e.g. for attribute exchange), security considerations, and backwards compatibility in a single draft specification [OpenID.openid‑authentication‑2_0‑11] (OpenID, “OpenID Authentication 2.0 - Draft 11,” January 2007.).

SAML specifies an abstract extensible security assertion and an abstract extensible request-response protocol via XML schemas, in one specification, the SAML "core" [OASIS.saml‑core‑2.0‑os] (Cantor, S., Kemp, J., Philpott, R., and E. Maler, “Assertions and Protocol for the OASIS Security Assertion Markup Language (SAML) V2.0,” March 2005.) (see also [OASIS.draft‑hodges‑HowToLearnSAML‑01] (Hodges, J., “How to Study and Learn SAML,” October 2006.)). SAML protocol bindings and concrete profiles are defined in further specifications in the spec set, as described below.

The OpenID specfication does not explicitly support profiling in the sense that the SAML specification set does. The OpenID specification set is concretely bound to HTTP and concretely defines a single web SSO profile. However, it does feature a simple extensibility mechanism, supporting definition of specific data query and response for name/value pairs. For example, three additional OpenID 2.0 draft specifications define attribute exchange [OpenID.openid‑attribute‑exchange‑1_0‑04] (Hardt, D. and J. Bufu, “OpenID Attribute Exchange 1.0 - Draft 04,” January 2007.), attribute types [OpenID.openid‑attribute‑types‑1_0‑02] (Hardt, D., “OpenID Attribute Types - Draft 02,” November 2006.), and attribute metadata (aka properties) [OpenID.identity‑attribute‑metadata‑1_0‑01] (Hardt, D., “Identity Attribute Metadata - Draft 01,” November 2006.) via this facility.

Concrete SAML profiles -- one per each specific use-case, e.g. Vanilla web browser SSO, enhanced-client SSO, IDP discovery, Single Logout, name identifier management & mapping, assertion query/response, attribute query/response -- are specified in the "SAML profiles" specification [OASIS.saml‑profiles‑2.0‑os] (Hughes, J., Cantor, S., Hodges, J., Hirsch, F., Mishra, P., Philpott, R., and E. Maler, “Profiles for the OASIS Security Assertion Markup Language (SAML) V2.0,” March 2005.). Note that SAML profiles are specified using, or "on top of" SAML bindings. A given profile may be designed to utilize more than one binding, e.g. the Web SSO profile, or may be designed to use just one particular binding, e.g. as the SAML Lightweight Web Browser SSO (lSSO) Profile [I‑D.hodges‑saml‑lsso] (Hodges, J. and S. Cantor, “SAMLv2 Lightweight Web Browser SSO Profile,” October 2006.) uses just the SAML "SimpleSign" binding [OASIS.draft‑hodges‑saml‑binding‑simplesign‑02] (Hodges, J. and S. Cantor, “SAMLv2: HTTP POST "SimpleSign" Binding,” September 2006.) (see also [OASIS.draft‑hodges‑HowToLearnSAML‑01] (Hodges, J., “How to Study and Learn SAML,” October 2006.)). Further note that SAML was explicitly designed such that any number of profiles and bindings may be defined, in whatever venue makes sense for the definers (note that the lSSO draft is presently ensconced in the IETF venue).



OpenID, in [OpenID.openid‑authentication‑2_0‑11] (OpenID, “OpenID Authentication 2.0 - Draft 11,” January 2007.), specifies two bindings to HTTP POST and HTTP GET (and requisite responses) messages. The former is intended for so-called "direct" interactions between system entities (i.e. not redirected), and the latter are explicitly defined as being redirected through the user agent. The specification does not provide guidance with respect to the creation of any other bindings.

Protocol bindings of abstract request-response protocol messages to concrete underlying protocols, e.g. HTTP and SOAP, are specified in the ""SAML Bindings" specification [OASIS.saml‑bindings‑2.0‑os] (Cantor, S., Hirsch, F., Kemp, J., Philpott, R., and E. Maler, “Bindings for the OASIS Security Assertion Markup Language (SAML) V2.0,” March 2005.). All of HTTP POST, HTTP redirect, SOAP-over-HTTP, reverse SOAP-over-HTTP ("PAOS"), SAML Artifact, and SAML URI bindings are specified.


OpenID relies on XRDS documents, which can be found by resolving [OASIS.xri‑resolution‑v2.0‑wd‑10] (Wachob, G., Ed., Reed, D., Ed., Chasen, L., Ed., Tan, W., Ed., Churchill, S., Ed., McAlpin, D., Sabnis, C., Davis, P., Grey, V., and M. Lindelsee, “Extensible Resource Identifier (XRI) Metadata V2.0,” May 2006.) an XRI [OASIS.xri‑syntax‑V2.0‑cs] (Reed, D., Ed., McAlpin, D., Ed., Davis, P., Sakimura, N., Lindelsee, M., and G. Wachob, “Extensible Resource Identifier (XRI) Syntax V2.0,” November 2005.), for what is essentially service metadata.

SAML metadata, e.g. for identity providers and relying parties (aka service providers), are defined in the "SAML metadata" specification [OASIS.saml‑metadata‑2.0‑os] (Cantor, S., Moreh, J., Philpott, R., and E. Maler, “Metadata for the Security Assertion Markup Language (SAML) V2.0,” March 2005.).
The OpenID spec set does not explicitly define conformance criteria at this time. Rather it is implicit in the specification(s).

Conformance criteria and the specification roadmap are given in the "SAML conformance" specification [OASIS.saml‑conformance‑2.0‑os] (Mishra, P., Philpott, R., and E. Maler, “Conformance Requirements for the Security Assertion Markup Language (SAML) V2.0,” March 2005.).



Security considerations are nominally discussed in [OpenID.openid‑authentication‑2_0‑11] (OpenID, “OpenID Authentication 2.0 - Draft 11,” January 2007.). An incomplete security profiles draft spec, [OpenID.openid‑authentication‑security‑profiles‑01] (Granqvist, H., “OpenID Authentication Security Profiles - Draft 1,” September 2006.), by an individual contributor, remains at version -01, from Sep-2006.

Security considerations are presented and examined in the "SAML sec considerations" specification [OASIS.saml‑sec‑consider‑2.0‑os] (Hirsch, F., Philpott, R., and E. Maler, “Security and Privacy Considerations for the OASIS Security Markup Language (SAML) V2.0,” March 2005.).
The draft OpenID Assertion Quality specification [OpenID.openid‑assertion‑quality‑extension‑1_0‑03] (Recordon, D., Glasser, A., and J. Madsen, “OpenID Assertion Quality Extension 1.0 - Draft 3,” December 2006.) is an OpenID extension which conveys simple name-value pair information with respect to an authentication event.

Meta-information regarding the particulars of authentication events is specified in the "SAML authn context" specification [OASIS.saml‑authn‑context‑2.0‑os] (Kemp, J., Cantor, S., Mishra, P., Philpott, R., and E. Maler, “Authentication Context for the Security Assertion Markup Language (SAML) V2.0,” March 2005.). SAML Authn Context information is expressed in XML, based on an extensible XML schema, and thus can easily represent complex, hierarchical or mesh relationships. Potential deploying organizations, such as mobile phone network operators, and financial institutions, specifically contributed to crafting this specification.

OpenID specification drafts typcially include a terminology section defining key terms.

SAML terminology is coalesced and documented in the "SAML Glossary" [OASIS.saml‑glossary‑2.0‑os] (Hodges, J., Philpott, R., and E. Maler, “Glossary for the Security Assertion Markup Language (SAML) V2.0,” March 2005.) (also available in HTML: SAML-Glossary-in-HTML)

 Table 1: Specification Set Contents and Scope 



OpenIDSAML
OpenID presumes and specifies principal identifiers that are dereferenceable in order to yield the principal's OP/IDP.

SAML does not specify, in the OASIS-issued specification sets themselves, for any SAML version, the nature of principal identifiers. It is left as an exercise for profiliers and/or deployers.

 Table 2: Comparison of Identifier Treatment 



OpenIDSAML
accomodates either "destination-site" first or "source-site" first. accomodates either "destination-site" first or "source-site" first.


"messages" are name-value pairs mapped to URL parameters or FORM-POST element name-values. Thus nominally equivalent to SAML 1.1 form of "authn request".

SAML 1.1 form of AuthnRequest similar to OpenID, although not as full-featured.
(simplistic) security. can turn security off. DH key exchange + subsequent HMAC message signing

Robust security based on profile stipulations, and profile particulars -- e.g. whether Redirect binding or POST binding are used. Message signatures either xmldsig-based, or simpleSign [OASIS.draft‑hodges‑saml‑binding‑simplesign‑02] (Hodges, J. and S. Cantor, “SAMLv2: HTTP POST "SimpleSign" Binding,” September 2006.) (withwhich security can be "turned off").

security reviewed? By VeriSign at least, HansG sent messages to OpenID list cataloging findings

security reviewed both in academia and in corporate. findings rolled into subsequent versions, culminating in SAML 2.0.

 Table 3: Technical Details 




 +----+                  +----+               +--------+
 | UA |                  | RP |               | OP/IDP |
 +-+--+                  +-+--+               +---+----+
   |                       |                      |
   | 1. Authentication Req |                      |
   | and assoc_handle!=null|                      |
 +<- - - - - - - - - - - - |                      |
 . | (indirected via UA)   |                      |
 . |                       |                      |
 +-------------------------+--------------------->|
   |                       |                      |
   |                       |                      |
   |                       |                      |<-+
   | 2. OP/IDP authenticates Principal            |  | (2) is absent
   | (methods vary, realization is out of scope)  |  | if mode is
   |<============================================>|  | check_immediate
   |                       |                      |  |
   |                       |                      |<-+
   |                       |                      |
   | 3. Authentication Resp|                      |
 +<- - - - - - - - - - - - - - - - - - - - - - - -|
 . | (indirected via UA)   |                      |
 . |                       |                      |
 +------------------------>|                      |
   |                       |                      |
   |                       |                      |
   |                       |                      |
   | 4. Princ is signed-on |                      |
   | or some form of       |                      |
   | error msg is displayed|                      |
   |<----------------------|                      |
   |                       |                      |

 Figure 1: test figure 



 TOC 

4.  Contributors

@@ TODO.



 TOC 

5.  Acknowledgments

@@ TODO.



 TOC 

6.  Open Issues

None at this time.



 TOC 

7.  Change Log



 TOC 

8. References

[I-D.hodges-saml-lsso] Hodges, J. and S. Cantor, “SAMLv2 Lightweight Web Browser SSO Profile,” draft-hodges-saml-lsso-01 (work in progress), October 2006.
[IANA.application.samlassertion-xml] OASIS Security Services Technical Committee (SSTC), “application/samlassertion+xml MIME Media Type Registration,” IANA MIME Media Types Registry application/samlassertion+xml, December 2004.
[OASIS.draft-hodges-HowToLearnSAML-01] Hodges, J., “How to Study and Learn SAML,” OASIS SSTC Working Draft draft-hodges-HowToLearnSAML-01, October 2006.
[OASIS.draft-hodges-saml-binding-simplesign-02] Hodges, J. and S. Cantor, “SAMLv2: HTTP POST "SimpleSign" Binding,” OASIS SSTC Working Draft draft-hodges-saml-binding-simplesign-02, September 2006.
[OASIS.saml-1.1-spec-set] OASIS, SSTC., Ed., “Security Assertion Markup Language (SAML) v1.1 Specification Set,” OASIS Standard SAML 1.1, August 2003.
[OASIS.saml-authn-context-2.0-os] Kemp, J., Cantor, S., Mishra, P., Philpott, R., and E. Maler, “Authentication Context for the Security Assertion Markup Language (SAML) V2.0,” OASIS Standard saml-authn-context-2.0-os, March 2005.
[OASIS.saml-bindings-2.0-os] Cantor, S., Hirsch, F., Kemp, J., Philpott, R., and E. Maler, “Bindings for the OASIS Security Assertion Markup Language (SAML) V2.0,” OASIS Standard saml-bindings-2.0-os, March 2005.
[OASIS.saml-conformance-2.0-os] Mishra, P., Philpott, R., and E. Maler, “Conformance Requirements for the Security Assertion Markup Language (SAML) V2.0,” OASIS Standard saml-conformance-2.0-os, March 2005.
[OASIS.saml-core-2.0-os] Cantor, S., Kemp, J., Philpott, R., and E. Maler, “Assertions and Protocol for the OASIS Security Assertion Markup Language (SAML) V2.0,” OASIS Standard saml-core-2.0-os, March 2005.
[OASIS.saml-glossary-2.0-os] Hodges, J., Philpott, R., and E. Maler, “Glossary for the Security Assertion Markup Language (SAML) V2.0,” OASIS Standard saml-glossary-2.0-os, March 2005.
[OASIS.saml-metadata-2.0-os] Cantor, S., Moreh, J., Philpott, R., and E. Maler, “Metadata for the Security Assertion Markup Language (SAML) V2.0,” OASIS Standard saml-metadata-2.0-os, March 2005.
[OASIS.saml-profiles-2.0-os] Hughes, J., Cantor, S., Hodges, J., Hirsch, F., Mishra, P., Philpott, R., and E. Maler, “Profiles for the OASIS Security Assertion Markup Language (SAML) V2.0,” OASIS Standard OASIS.saml-profiles-2.0-os, March 2005.
[OASIS.saml-sec-consider-2.0-os] Hirsch, F., Philpott, R., and E. Maler, “Security and Privacy Considerations for the OASIS Security Markup Language (SAML) V2.0,” OASIS Standard saml-sec-consider-2.0-os, March 2005.
[OASIS.sstc-saml-exec-overview-2.0-cd-01] Madsen, P. and E. Maler, “SAML V2.0 Executive Overview,” OASIS SSTC Committee Draft sstc-saml-exec-overview-2.0-cd-01, April 2005.
[OASIS.sstc-saml-protocol-ext-thirdparty-cd-01] Cantor, S., “SAML Protocol Extension for Third-Party Requests,” OASIS SSTC Committee Draft sstc-saml-protocol-ext-thirdparty-cd-01, March 2006.
[OASIS.sstc-saml-tech-overview-2.0-draft-10] Ragouzis, N., Hughes, J., Philpott, R., and E. Maler, “Security Assertion Markup Language (SAML) V2.0 Technical Overview,” OASIS SSTC Working Draft sstc-saml-tech-overview-2.0-draft-10, October 2006.
[OASIS.xri-metadata-V2.0-wd-08] Schleiff, M., Ed., Reed, D., Ed., McAlpin, D., Ed., Sakimura, N., Lindelsee, M., and G. Wachob, “Extensible Resource Identifier (XRI) Metadata V2.0,” Committee Working Draft xri-metadata-V2.0-wd-08, May 2006.
[OASIS.xri-resolution-v2.0-wd-10] Wachob, G., Ed., Reed, D., Ed., Chasen, L., Ed., Tan, W., Ed., Churchill, S., Ed., McAlpin, D., Sabnis, C., Davis, P., Grey, V., and M. Lindelsee, “Extensible Resource Identifier (XRI) Metadata V2.0,” Committee Working Draft xri-resolution-v2.0-wd-10, May 2006.
[OASIS.xri-syntax-V2.0-cs] Reed, D., Ed., McAlpin, D., Ed., Davis, P., Sakimura, N., Lindelsee, M., and G. Wachob, “Extensible Resource Identifier (XRI) Syntax V2.0,” Committee Working Draft xri-syntax-V2.0-cs, November 2005.
[OpenID.identity-attribute-metadata-1_0-01] Hardt, D., “Identity Attribute Metadata - Draft 01,” Draft identity-attribute-metadata-1_0-01, November 2006.
[OpenID.openid-assertion-quality-extension-1_0-03] Recordon, D., Glasser, A., and J. Madsen, “OpenID Assertion Quality Extension 1.0 - Draft 3,” Draft openid-assertion-quality-extension-1_0-03, December 2006.
[OpenID.openid-attribute-exchange-1_0-04] Hardt, D. and J. Bufu, “OpenID Attribute Exchange 1.0 - Draft 04,” Draft openid-attribute-exchange-1_0-04, January 2007.
[OpenID.openid-attribute-types-1_0-02] Hardt, D., “OpenID Attribute Types - Draft 02,” Draft openid-attribute-types-1_0-02, November 2006.
[OpenID.openid-authentication-1_1] Recordon, D. and B. Fitzpatrick, “OpenID Authentication 1.1,” Final openid-authentication-1_1, January 2007.
[OpenID.openid-authentication-2_0-11] OpenID, “OpenID Authentication 2.0 - Draft 11,” Draft openid-authentication-2_0-11, January 2007.
[OpenID.openid-authentication-security-profiles-01] Granqvist, H., “OpenID Authentication Security Profiles - Draft 1,” Draft openid-authentication-security-profiles-01, September 2006.
[RFC2119] Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” BCP 14, RFC 2119, March 1997 (TXT, HTML, XML).
[RFC2392] Levinson, E., “Content-ID and Message-ID Uniform Resource Locators,” RFC 2392, August 1998 (TXT, HTML, XML).
[RFC2965] Kristol, D. and L. Montulli, “HTTP State Management Mechanism,” RFC 2965, October 2000 (TXT, HTML, XML).
[RFC3553] Mealling, M., Masinter, L., Hardie, T., and G. Klyne, “An IETF URN Sub-namespace for Registered Protocol Parameters,” BCP 73, RFC 3553, June 2003.
[RFC4346] Dierks, T. and E. Rescorla, “The Transport Layer Security (TLS) Protocol Version 1.1,” RFC 4346, April 2006.
[SSL3] Frier, A., Karlton, P., and P. Kocher, “The SSL 3.0 Protocol,” Netscape Communications Corp. working draft, November 1996.
[W3C.xmldsig-core] Eastlake, D., Reagle , J., and D. Solo, “XML-Signature Syntax and Processing,” W3C Recommendation xmldsig-core, October 2000.
[draft-hodges-saml-openid-profile-00] Hodges, J., “OpenID SAMLv2 Lightweight SSO Profile,” OASIS SSTC Working Draft draft-hodges-saml-openid-profile-00, January 2007.


 TOC 

Author's Address

  Jeff Hodges
  NeuStar
  2000 Broadway Street
  Redwood City, CA 94063
  US
Email:  Jeff.Hodges@neustar.biz