Platinum Sponsors

SUN

ELCA

Gold Sponsors

Silver Sponsors

Partners

Partner events

Roman Pletka

Roman Pletka

Christof Dornbierer

Christof Dornbierer

(3482) SAML: Identity Federation in Practice

Technical long talk 50 min

Tuesday, 2008-06-24, 15:00 - 15:50, Arena 5

Topics

Download the presentation

Abstract

The Security Assertion Markup Language (SAML) is an XML-based open standard for 
exchanging authentication and authorization information between identity 
providers and consumers. Although standardized for quite some time, SAML, 
unfortunately, is not yet widely deployed. We discuss the alleged shortcomings 
and how they can be overcome by a mature design combined with some detailed 
know-how of existing implementations and their differences. We focus on two 
advanced use cases and present viable solutions for further problems.

After the introduction of the initial standard SAML 1.0 in 2002, version 1.1 in 
2003 aimed to simplify the processing of digital signatures by removing some 
definitions and enable non-cacheable assertions (i.e., one-time usage) as a new 
element. A clean-up in elements and URIs as well as many clarifications have 
also been made.  Today, SAML 1.0 is only of historical interest.

SAML 2.0, adapted in March 2005, added many new features motivated by the 
Liberty Alliance Federation Framework (ID-FF) V1.2 specifications, the 
Shibboleth architecture from Internet2, and practical experience with SAML 1.x. 
SAML 2.0 introduced considerable changes which made the transmitted 
representations and protocols incompatible with the previous ones.  The main 
novelties in SAML 2.0 include 5 new protocol bindings beside the exsting SAML 
SOAP binding, namely, Reverse SOAP (PAOS), HTTP Redirect, HTTP POST, HTTP 
Artifact, and SAML URI, the addition of 11 new profiles (previously 2), and 
changes in the definition of the assertion itself.  The important adaptations 
with respect to identity federation are the XML encryption support which allows 
SAML identifiers, assertions, and attributes to be encrypted, and new name 
identifier formats allowing to provide privacy protection.

Based on an introduction to the SAML standards including assertions, protocols, 
and bindings, we will discuss SAML support of different J2EE containers and 
address the discrepancy between theory and practice, the detection of which is 
one of the key aspects for a successful deployment of SAML.

Limitations of SAML support in application containers can be overcome using the 
OpenSAML Java library, an open source implementation of SAML. OpenSAML supports 
the creation of SAML messages and building the corresponding SAML representation 
from it, parsing of SAML assertions, and provides the functionalities for 
implementing applications using various SAML profiles and transport bindings. 
Currently, support of SAML 2.0 is being developed by the OpenSAML project.

- Advanced use case 1: Trust relationship establishment in the form of 
impersonation of federated identities

For an impersonation of federated identities SAML assertions are issued with 
another user name than the real one, hence the real user's credentials are 
actually not known. Limitations to the impersonation are realized by adding 
conditions to the assertion. In such a setup special care has to be taken to 
correctly define all trust relationships which we will point out based on an 
example.

- Advanced use case 2: SAML assertions in WebServices

SAML assertions can also be used for WebServices. The WebService Security (WSS) 
profiles describe how assertions are placed in a WSS security header. Because 
there are only few implementations with limited capabilities, only the username 
tokens and X..509 certificates are really used in practice today. By adding SAML 
assertion support in a reverse proxy, authentication methods can be easily 
exchanged and adapted to the actual requirements. This can be realized as 
browser-POSTs or Reverse-Proxy-POSTs.

Some of the pitfalls and limitations arising while working with SAML have to be 
taken into account already at the design phase. We present viable solutions for 
problems such as limited query strings limiting data in an assertion, 
unintentional signature discrepancies and potential browser redirects.

Finally, we provide directions to realize SAML-based trust relationships for 
identity federation and give an insight into how information can be piggy-backed 
in SAML assertion. We also compare SAML to other approaches for identity 
federation such as OpenID. And last but not least, we would like to point out 
that besides the technical issues that arise with identity federation, a mature 
design also has to take into account legal aspects which, unlike a standard such 
as SAML, can differ from country to country.

Media Partners

APRESS
inside-it
netzwoche
developpez
MokaByte