Movatterモバイル変換


[0]ホーム

URL:





Technical Overview

 

TC members should send commentson this specification to the TC’s email list. Others shouldsend comments to the TC by using the “Send A Comment”button on the TC’s web page at.

For information on whether anypatents have been disclosed that may be essential to implementingthis specification, and any offers of patent licensing terms, pleaserefer to the Intellectual Property Rights section of the SecurityServices TC web page(http://www.oasis-open.org/committees/security/ipr.php).








Table of Contents



Table of Figures



1 Introduction

1.1 References



sstc-saml-metadata-ext-query-cd-01.

Shibboleth Overview and Requirements.Shibboleth project of Internet2. See

[XMLEnc]D.Eastlake et al.XMLEncryption Syntax and Processing.World Wide Web Consortium. See

2 Overview

The OASIS Security Assertion Markup Language(SAML) standard defines an XML-based framework for describing andexchanging security information between on-line business partners.This security information is expressed in the form of portable SAMLassertions that applications working across security domainboundaries can trust. The OASIS SAML standard defines precise syntaxand rules for requesting, creating, communicating, and using theseSAML assertions.

The OASIS Security Services Technical Committee(SSTC) develops and maintains the SAML standard. The SSTC hasproduced this technical overview to assist those wanting to know moreabout SAML by explaining the business use cases it addresses, thehigh-level technical components that make up a SAML deployment,details of message exchanges for common use cases, and where to gofor additional information.

2.1 Drivers of SAML Adoption

Why is SAML needed for exchanging securityinformation? There are several drivers behind the adoption of theSAML standard, including:

2.2 DocumentationRoadmap

The OASIS SSTC has produced numerous documentsrelated to SAML V2.0. This includes documents that make up theofficial OASIS standard itself, outreach material intended to helpthe public better understand SAML, and several extensions to SAML tofacilitate its use in specific environments or to integrate it withother technologies.

The documents thatdefine and support the SAML OASIS Standard are shown in Figure 1.The lighter-colored boxes represent non-normative information.

SAML docset




Following the release of the SAML OASIS Standard, the OASISSSTC has continued work on several enhancements. As of this writing,the documents for the following enhancements have been approved asOASIS Committee Draft specifications and are available from the OASISSSTC web site:

3 High-Level SAML Use Cases

Prior to examining details of the SAML standard,it's useful to describe some of the high-level use cases itaddresses. More detailed use cases are described later in thisdocument along with specific SAML profiles.

3.1 SAMLParticipants

Who are the participantsinvolved in a SAML interaction? At a minimum, SAML exchanges takeplace between system entities referred to as a SAMLassertingpartyand a SAMLrelyingparty.In many SAML use cases, a user, perhaps running a web browser orexecuting a SAML-enabled application, is also a participant, and mayeven be the asserting party.

An asserting party is a systementitythat makes SAML assertions. It is also sometimes called aSAMLauthority. A relying party is a system entity that uses assertions it hasreceived. When a SAML asserting or relying party makes a directrequest to another SAML entity, the party making the request iscalled aSAMLrequester, and the other partyis referred to as aSAMLresponder.A replying party's willingness to rely on information from anasserting party depends on the existence of a trust relationship withthe asserting party.

SAML system entities canoperate in a variety of SAMLroleswhichdefine the SAML services and protocol messages they will use and thetypes of assertions they will generate or consume.For example, to support Multi-Domain Single Sign-On (MDSSO, or oftenjust SSO), SAML defines the roles calledidentityprovider (IdP)andserviceprovider (SP).Another example is theattributeauthorityrole where a SAML entity produces assertions in response to identityattribute queries from an entity acting as anattributerequester.

At the heart of most SAMLassertions is asubject(a principal – an entity that can be authenticated –within the context of a particular security domain) about whichsomething is being asserted. Thesubject could be a human but could also be some other kind of entity,such as a company or a computer. The termssubjectand principal tend to be used interchangeably in this document.

A typical assertion from anidentity provider might convey information such as “This useris John Doe, he has an email address ofjohn.doe@.com,and he was authenticated into this system using a passwordmechanism.” A service provider could choose to use thisinformation, depending on its access policies, to grant John Doe webSSO access to local resources.

3.2 Web Single Sign-On Use Case

Multi-domain web single sign-on is arguably themost important use case for which SAML is applied. In this use case,a user has a login session (that is, asecuritycontext)on a()and is accessing resources on that site. At some point, eitherexplicitly or transparently, he is directed over to a partner's(). In this case, we assume that a federated identity for the user hasbeen previously established betweenandbased on a business agreement between them. The identity providersite ()asserts to thesite ()that the user is known (by referring to the user by their federatedidentity), has authenticated to it, and has certain identityattributes (e.g. has a “Gold membership”).Sincetrusts,it trusts that the user is valid and properly authenticated and thuscreates a local session for the user. This use case is shown inFigure 2,which illustrates the fact that the user is not required tore-authenticate when directed over to thesite.

SSO use case




SAML supports numerous variations on these twoprimary flows that deal with requirements for using various types andstrengths of user authentication methods, alternative formats forexpressing federated identities, use of different bindings fortransporting the protocol messages, inclusion of identity attributes,etc. Many of these options are looked at in more detail in latersections of this document.

3.3 Identity Federation Use Case

There are many questions that must be consideredwhen business partners decide to use federated identities to sharesecurity and identity information about users. For example:

Previous versions of the SAML standard relied onout-of-band agreement on the types of identifiers that would be usedto represent a federated identity between partners (e.g. the use ofX.509 subject names). While it supported the use of federatedidentities, it provided no means to directly establish theidentifiers for those identities using SAML message exchanges. SAML introduced two features toenhance its federated identity capabilities. First, new constructsand messages were added to support the dynamic establishment andmanagement of federated name identifiers. Second, two new types ofname identifiers were introduced with privacy-preservingcharacteristics.

message exchanges. For example, providersmay choose to share information about registered users via batch oroff-line “identity feeds” that are driven by data sources(for example, human resources databases) atthe identity provider and then propagated to service providers.Subsequently, the user's federated identity may be used in a SAMLassertion and propagated between providers to implement singlesign-on or to exchange identity attributes about the user.Alternatively, identity federation may be achieved purely by abusiness agreement that states that an identity provider will referto a user based on certain attribute names and values, with noadditional flows required for maintaining and updating userinformation between providers.

Mostidentity management systems maintainlocal identitiesforusers. These local identities might be represented by the user'slocal login account or some other locally identifiable user profile.These local identities must be linked to the federated identity thatwill be used to represent the user when the provider interacts with aparter. The process of associating a federated identifier with thelocal identity at a partner (or partners) where the federatedidentity will be used is often calledaccount linking.

This use case, shown in Figure 3, demonstrateshow, during web SSO, the sites can dynamically establish thefederated name identifiers used in the account linking process. Oneidentity provider, ,and twos exist in this example:for car rentals andfor hotel bookings. The example assumes a user is registered on allthree provider sites (i.e. they have pre-existing local loginaccounts), but the local accounts all have different accountidentifiers.At ,userJohn is registered asjohndoe, onhis account isjdoe, and onit isjohnd. The sites have established an agreement to usepersistentJohn has notpreviously federated his identities between these sites.

ID Fed use case





The processing sequence is as follows:

  1. John books a flight at using hisjohndoe useraccount.

  2. John thenuses a browser bookmark or clicks on a linkto visitto reserve a car. This site sees thatthebrowser user is not logged in locally but that he haspreviously visited their IdP partner site(optionally using the new IdP discoveryfeature of SAML). SoasksJohn if he would liketo consent to federate his localidentity with .

  3. Johnconsents to the federation and his browser is redirected back to where thesite creates a new pseudonym,azqu3H7 for John's use when hevisitsThe pseudonym is linked to hisjohndoeaccount. Both providers agree to use this identifier to refer toJohn in subsequent transactions.

  4. John isthen redirected back towith a SAML assertion indicating that the user represented by thefederated persistent identifierazqu3H7is logged in at the IdP. Since this is the first time thathas seen this identifier, it does not know which local user accountto which it applies.

  5. Thus, Johnmust log in atusing hisjdoeaccount. Thenattaches the identityazqu3H7to the localjdoeaccount for future use with the IdP. The user accounts at the IdP and this SP are nowlinkedusing the federated name identifierazqu3H7.

  6. After reserving acar, John selects a browser bookmark or clicks on a link to visitin order to book a hotel room.

  7. The federationprocess is repeated with the IdP ,creating a new pseudonym,f78q9C0, for IdP userjohndoethat will be used when visiting.

  8. John isredirected back to theSP with a new SAML assertion. The SP requires John to log into hislocaljohnd user account and adds the pseudonym as thefederated name identifier for future use with the IdP. The useraccounts at the IdP and this SP are nowlinkedusing the federated name identifierf78q9C0.

In the future, wheneverJohnneeds to books a flight, car, and hotel, he will only need to log inonce to before visitingand.The IdP willidentifyJohn asazqu3H7toand asf78q9C0 to.Each SP will locateJohn'slocal user account through the linked persistent pseudonyms and allowJohn to conduct businessafter the SSO exchange.

4 SAMLArchitecture

This section provides a brief description of thekey SAML concepts and the components defined in the standard.

4.1 BasicConcepts

SAML consists of building-block components that,when put together, allow a number of use cases to be supported. Thecomponents primarily permit transfer of identity, authentication,attribute, and authorization information between autonomousorganizations that have an established trust relationship. ThecoreSAML specification defines the structure and content of bothassertionsandprotocolmessages used to transfer this information.

SAMLassertions carry statements about a principal that anasserting party claims to be true. The valid structure and contentsof an assertion are defined by the SAML assertion XML.Assertions are usually created by an asserting party based on arequest of some sort from a relying party, although under certaincircumstances, the assertions can be delivered to a relying party inan unsolicited manner. SAML protocol messages are used to make theSAML-defined requests and return appropriate responses. The structureand contents of these messages are defined by theSAML-definedprotocol XML.

The means by which lower-level communication ormessaging protocols (such as HTTP or SOAP) are used to transport SAMLprotocol messages between participants is defined by the SAMLbindings.

Next,SAMLprofilesare defined to satisfy a particular business use case, for examplethe Web Browser SSO profile. Profiles typically define constraintson the contents of SAML assertions, protocols, and bindings in orderto solve the business use case in an interoperable fashion. There arealso Attribute Profiles, which do not refer to any protocol messagesand bindings, that define how to exchange attribute information usingassertions in ways that align with a number of commonusage environments (e.g.X.500/LDAPdirectories, DCE).

Figure 4illustratesthe relationship between these basic SAML concepts.

SAML concepts




Two other SAML concepts are useful for buildingand deploying a SAML environment:

This document does not go into further detailabout Metadata and Authentication Context; for more information, seethe specifications that focus on them ([SAMLMeta]and[SAMLAuthnCxt],respectively).

It should be noted that the story of SAMLneed not end with its published set of assertions, protocols,bindings, and profiles. It is designed to be highly flexible, andthus it comes with extensibility points in its XML schemas, as wellas guidelines for custom-designing new bindings and profiles in sucha way as to ensure maximum interoperability.

4.2 AdvancedConcepts

4.2.1 Subject Confirmation

A SAML Assertion may contain an element called. In practical terms, whatSubjectConfirmation says is "these are theconditions under which an attesting entity (somebody trying to usethe assertion) is permitted to do so". The entity trying to usethe assertion, or the "wielder", is attesting to its rightto do so, usually by implying a relationship with the subject. Anassertion can have any number ofSubjectConfirmationelements, but an attesting entity only has to satisfy one of them.

elementprovides the means for a relying party to verify the


SAML 2.0 accounts for three different securityscenarios by defining three values for the attribute of the element, these are

  urn:oasis:names:tc:SAML:2.0:cm:holder-of-key  urn:oasis:names:tc:SAML:2.0:cm:sender-vouches  urn:oasis:names:tc:SAML:2.0:cm:bearer

In the ,relying party will allow any party capable of demonstrating knowledgeof specific key information contained with the element's element to use the assertion (and thereby lay claim to somerelationship with the subject within).

In the model, the relying party will allow any party that bears

In model,relying party will use other criteria in determining which partiesshould be allowed to use the assertion (and thereby lay claim to somerelationship with the subject within).

4.3 SAMLComponents

This section takes a more detailed look at each ofthe components that represent the assertion, protocol, binding, andprofile concepts in a SAML environment.

Assertions: SAML allows for one party toassert security information in the form ofstatementsabout asubject. For instance, a SAML assertioncould state that the subject is named “John Doe”, has anemail address of john.doe@example.com, and is a member of the“engineering” group.

An assertion contains some basic required andoptional information that applies to all its statements, and usuallycontains asubjectof theassertion (if not present, the identity determined through othermeans, e.g. the certificate used for subject confirmation),conditionsused tovalidate the assertion, and assertion statements.

SAMLdefines three kinds of statements that can be carried within anassertion:


Bindings: SAML bindings detail exactly howthe various SAML protocol messages can be carried over underlyingtransport protocols. The bindings defined by SAML are:

Profiles: SAML profiles define how the SAMLassertions, protocols, and bindings are combined and constrained toprovide greater interoperability in particular usage scenarios. Someof these profiles are examined in detail later in this document. Theprofiles defined by SAML are:

4.4 SAML XML Constructs and Examples

This section provides descriptions and examples ofsome of the key SAML XML constructs.

4.4.1Relationship of SAMLComponents

An assertion contains one or more statements andsome common information that applies to all contained statements orto the assertion as a whole. A SAML assertion istypically carried between parties in a SAML protocol responsemessage, which itself must be transmitted using some sort oftransport or messaging protocol.

Figure 5 shows a typical example of containment: aSAML assertion containing a series of statements, the whole beingcontained within a SAML response, which itself is carried by somekind of protocol.

SAML components




4.4.2 Assertion, Subject, and Statement Structure

Frame5

Figure 6shows an XML fragment containing anexample assertion with a single authentication statement. Note thatthe XML text in the figure (and elsewhere in this document) has beenformatted for presentation purposes. Specifically, while line breaksand extra spaces are ignored between XML attributes within an XMLelement tag, when they appear between XML element start/end tags,they technically become part of the element value. They are insertedin the example only for readability.

numberof different formats. SAML's predefined formats include:

Of these, persistent and transient nameidentifiers utilize privacy-preserving pseudonyms to represent theprincipal.Persistent identifiers provide a permanentprivacy-preserving federation since they remain associated with thelocal identities until they are explicitly removed.Transientidentifiers support “anonymity” at an SP sincethey correspond to a “one-time use” identifier created atthe IdP. They are not associated with a specific local user identityat the SP and are destroyed once the user session terminates.

When persistent identifiers are created by an IdP,they are usually established for use only with a single SP. That is,an SP will only know about the persistent identifier that the IdPcreated for a principal for use when visiting that SP. The SP doesnot know about identifiers for the same principal that the IdP mayhave created for the user at other service providers. SAML does,however, also provide support for the concept of anaffiliationof service providers which can share a single persistent identifierto identify a principal.

4.4.3 Attribute Statement Structure

Attribute information about a principal is oftenprovided as an adjunct to authentication information in singlesign-on or can be returned in response to attribute queries from arelying party. SAML's attribute structure does not presume that anyparticular type of data store or data types are being used for theattributes; it has an attribute type-agnostic structure.

Figure 7shows an XML fragmentcontaining an example attribute statement.

Note the following:

4.4.4 Message Structure and the SOAP Binding

In environments where communicating SAML partiesare SOAP-enabled, the SOAP-over-HTTP binding can be used to exchangeSAML request/response protocol messages. Figure 8 shows the structureof a SAML response message being carried within the SOAP body of aSOAP envelope, which itself has an HTTP response wrapper. Note thatSAML itself does not make use of the SOAP header of a SOAP envelopebut it does not prevent SAML-based application environments fromdoing so if needed.

Protocol SOAP over HTTP




Figure 9 shows an XML document containing anexample SAML attribute querymessagebeingtransported within a SOAP envelope.

Frame8





Note the following:

An example XML fragment containing a SAML protocolResponse message being transported in a SOAP message is shown in Figure 10.

Frame9

Note the following:

4.5 Privacyin SAML

In an information technology context, privacygenerally refers to both a user's ability to control how theiridentity data is shared and used, and to mechanisms that inhibittheir actions at multiple service providers from beinginappropriately correlated.

SAML is often deployed in scenarios where suchprivacy requirements must be accounted for (as it is also oftendeployed in scenarios where such privacy need not be explicitlyaddressed, the assumption being that appropriate protections areenabled through other means and/or layers).

SAML has a number of mechanisms that supportdeployment in privacy .

4.6 Securityin SAML

Justproviding assertions from an asserting party to a relying party maynot be adequate to ensure a secure

5 Major Profiles and Federation Use Cases

As mentioned earlier, SAML defines a number ofprofiles to describe and constrain the use of SAML protocol messagesand assertions to solve specific business use cases. This sectionprovides greater detail on some of the most important SAML profilesand identity federation use cases.

5.1 Web Browser SSO Profile

This section describes the typical flows likely tobe used with the web browser SSO profile of SAML V2.0.

5.1.1 Introduction

The Web Browser SSO Profile defines how to useSAML messages and bindings to support the web SSO use case describedin section 3.2. This profile provides a wide variety of options,primarily having to do with two dimensions of choice: first whetherthe message flows are IdP-initiated or SP-initiated, and second,which bindings are used to deliver messages between the IdP and theSP.

The first choice has to do with where the userstarts the process of a web SSO exchange. SAML supports two generalmessage flows to support the processes. The most common scenario forstarting a web SSO exchange is the SP-initiated web SSO model whichbegins with the user choosing a browser bookmark or clicking a linkthat takes them directly to an SP application resource they need toaccess. However, since the user is not logged in at the SP, before itallows access to the resource, the SP sends the user to an IdP toauthenticate. The IdP builds an assertion representing the user'sauthentication at the IdP and then sends the user back to the SP withthe assertion.

is used to coordinate messages and actions of IdPs and SPs, forexample, to allow an IdP (with which SSO was initiated) to indicatethe URL of a desired resource when communicating with an SP.

Figure 11compares the IdP-initiated andSP-initiated models.

IDP vs SP initiated




The following subsectionsdescribe the detailed message flows involved in web SSO exchanges forthe following use case scenarios:

5.1.2 SP-Initiated SSO: Redirect/POST Bindings

This firstexample describes an SP-initiated SSO exchange. In such an exchange,the user attempts toaccessa resource on the SP, sp.example.com.However they do nothave a current logon session on thissiteand their federated identity is managed by their IdP,idp.example.org. They are sent to the IdP to log on and the IdPprovides a SAML web SSO assertion for the user's federated identityback to the SP.

For thisspecific use case, the HTTP Redirect Binding is used to deliver theSAMLmessage to theand the HTTP POST Binding is used to return the SAMLmessage containing the assertion to the SP.Figure 12illustrates the message flow.

SSO SP redirect-POST




The processing is as follows:

  1. The user attempts to access a resource onsp.example.com. The user does not have a valid logon session (i.e.security context) on this site. The SP saves the requested resourceURL in local state information that can be saved across the web SSOexchange.

  2. The SP sends an HTTP redirect response to thebrowser (HTTP status 302 or 303). The Location HTTP header containsthe destination URI of the Sign-On Service at the together with anmessage encoded as a URL query variable named.

    Thequery string is encoded using the DEFLATE encoding.

  1. The Single Sign-On Service determines whetherthe user has an existing logon security context at the. If not, the IdP interacts with the browser to challenge the user toprovide valid credentials.

  2. The user provides valid credentials and alocal logon security context is created for the user at the IdP.

  3. The IdP Single Sign-On Service builds a SAMLassertion representing the user's logon security context. Since aPOST binding is going to be used, the assertion is digitally signedand then placed within a SAML message. The message is then placed within anFORM as a hidden form control named . If the IdP received avalue from the SP, it must return it unmodified to theSP in a hidden form control named.The Single Sign-On Service sends the HTML form back to the browserin the HTTP response.For ease ofuse purposes, the HTML FORM typically will be accompanied by scriptcode that will automatically post the form to the destination site.

  1. Assertion Consumer Service.

where the values of theSAMLResponse and RelayState parameters are taken from the HTML formof Step 5.

The's obtains the messagefrom the HTML FORM for processing. The digital signature on the SAMLassertion must first be validated and then the assertion contents areprocessed in order to create a local logon security context for theuser at the SP. Once this completes, the SP retrieves the localstate information indicated by thesends redirect response to thebrowser directing it to access the originally requested resource (notshown).

  1. An access check is made to establish whetherthe user has the correct authorization to access the resource. Ifthe access check passes, the resource is then returned to thebrowser.

5.1.3 SP-Initiated SSO: POST/Artifact Bindings

This usecase again describes an SP-initiated SSO exchange.

heHTTP POST binding is used to deliver the SAMLto theand the SAMLmessage is returned using the Artifact binding. The HTTP POST bindingmay be necessary for an <AuthnRequest> message in cases whereits length precludes the use of the HTTP Redirect binding (which istypical). The message may be long enough to require a POST bindingwhen, for example, it includes many of its optional elements andattributes, or when it must be digitally signed.

When usingthe HTTP Artifact binding for the SAML message, SAML permits the artifact to be delivered via the browserusing either an HTTP POST or HTTP Redirect response (not to beconfused with the SAML HTTP POST and Redirect Bindings). In thisexample, the artifact is delivered using.

Once theis in possession of the artifact, it contacts the IdP's ArtifactResolution Service using the synchronous SOAP binding to obtain theSAML message that corresponds to the artifact. Figure 13 illustratesthe message flow.























Theprocessing is as follows:

  1. The user attempts to access a resource onsp.example.com. The user does not have a valid logon session (i.e.security context) on this site. The SP saves the requested resourceURL in local state information that can be saved across the web SSOexchange.

  2. The SP sends an HTML form back to the browserin the HTTP response (HTTP status 200). TheFORM contains a SAML message encoded as the value of a hidden form control named.

element:

  1. For ease-of-use purposes, the HTML FORMtypically will be accompanied by script code that will automaticallypost the form to the destination site (which is the IdP in thiscase).Single Sign-On Service.

  1. The user provides valid credentials and alocal logon security context is created for the user at the IdP.

  2. The SP's now sends a SAMLmessage containing the artifact to the.This exchange is performed using a synchronous SOAP messageexchange.

  1. The IdP's Artifact Resolution Serviceextracts the MessageHandle from the artifact and locates theoriginal SAMLis then placed insidea SAML message, which is returned to the SP over the SOAP channel.

    The SP extracts and processes thethen processes the embedded assertion in order tocreate a local logon security context for the user at the SP. Oncethis is completed, the SP retrieves the local state informationindicated by thesends redirect response to thebrowser directing it to access the originally requested resource(not shown).

  1. An access check is made to establish whetherthe user has the correct authorization to access the resource. Ifthe access check passes, the resource is then returned to thebrowser.

5.1.4nitiatedSSO: POST Binding

In addition to supporting the new SP-Initiated webSSO use cases, SAML v2 continues to support the IdP-initiated web SSOuse cases originally supported by SAML v1. In an IdP-initiated usecase, the identity provider is configured with specialized links thatrefer to the desired service providers. These links actually refer tothe local IdP's Single Sign-On Service and pass parameters to theservice identifying the remote SP. So instead of visiting the SPdirectly, the user accesses the IdP site and clicks on one of thelinks to gain access to the remote SP. This triggers the creation ofa SAML assertion that, in this example, will be transported to the using the binding.

Figure 14 shows the process flow for anIdP-initiated web SSO exchange.





The processing is as follows:

  1. If the user does not have a valid localsecurity context at the IdP, at some point the user will bechallenged to supply their credentials to the IdP site,idp.example.org.

  2. The user provides valid credentials and alocal logon security context is created for the user at the IdP.

  3. The user selects a menu option or link on theIdP to request access to an SP web site, sp.example.com. Thiscauses the IdP's Single Sign-On Service to be called.

  4. The Single Sign-On Service builds a SAMLassertion representing the user's logon security context. Since aPOST binding is going to be used, the assertion is digitally signedbefore it is placed within a SAML message. The message is then placed within anFORM as a hidden form control named. (If the convention for identifying a specific application resourceat the SP is supported at the IdP and SP, the resource URL at the SPis also encoded into the form using a hidden form control named.)The Single Sign-On Service sends theHTML form back to the browser in the HTTP response. For ease-of-usepurposes, the HTML FORM typically will contain script code that willautomatically post the form to the destination site.

  5. Assertion Consumer Service. The's obtains the messagefrom the HTML FORM for processing. The digital signature on the SAMLassertion must first be validated and then the assertion contentsare processed in order to create a local logon security context forthe user at the SP. Once this completes, the SP retrieves thesends redirect response to thebrowser directing it to access the requested resource (not shown).

  6. Anaccess check is made to establish whether the user has the correctauthorization to access the resource. If the access check passes,the resource is then returned to the browser.

5.2 ECPProfile

The browser SSO profile discussed above works withcommercial browsers that have no special capabilities. This sectiondescribes a SAML V2.0 profile that takes into account enhanced clientdevices and proxy servers.

5.2.1 Introduction

The Enhanced Client and Proxy (ECP) Profilesupports several SSO use cases, in particular:

Figure 15 illustrates two such use cases for usingthe ECP Profile.





The ECP profile defines a single binding –PAOS (Reverse SOAP). Theuses SOAP headers and SOAP bodies to transport SAML and SAML messages between the and the.

5.2.2 ECP Profile Using PAOS Binding

Figure 16





Theprocessing is as follows:

  1. The ECP wishes to gain access to a resourceon the. TheECP will issue request for the resource. The HTTP request contains a PAOS HTTP header defining that the ECPservice is to be used.

  2. Accessing the resource requires that theprincipal has a valid security context, and hence a SAML assertionneeds to be supplied to the. In the HTTP response tothe ECP an is carried within a SOAP body. Additional information, using thePAOS binding, is provided back to the ECP

  3. After some processing in the ECP the issent to the appropriate using the SAML SOAPbinding.

  4. The validates the andsends back to the ECP a SAML ,again using the SAML SOAP binding.

  5. The ECP extracts the and forwards it to the as a PAOS response.

  6. The sends to the ECP response containing theresource originally requested.

5.3 SingleLogout Profile

Once single sign-on has been achieved, severalindividual sessions with service providers share a singleauthentication context. This section discusses SAML's profile forsingle logout, which allows for reversing the sign-on process withall of these providers at once.

One representative flow option is discussed indetail: single logout that is initiated at one SP and results inlogout from multiple SPs.

5.3.1 Introduction

Single logout permits near real-time sessionlogout of a user from all participants in a session. A request canbe issued by any session participant to request that the session isto be ended. As specified in the SAML Conformance specification ,the SAML l

5.3.2 SP-Initiated Single Logout with Multiple SPs







  1. A user was previously authenticated by the idp.example.org

  2. TheSP sp1.example.com destroys the local authentication session statefor the user and thenorgThe identity providerverifies that the<LogoutRequest>originated from a known and trusted service provider. The identityprovider processes the request and destroys any local sessioninformation for the user.

  3. Having determined that other serviceproviders are also participants in the web SSO session, the identityprovider similar sends a<LogoutRequest>message to those providers. In this example, there is one otherservice provider, sp2.The<LogoutRequest>message is sent using the SOAP over HTTP Binding.

  4. The service provider sp2returns a<LogoutResponse>message containing a suitable status code response to the identityprovider. The response is digitally signed and returned (in thiscase) using the SOAP over HTTP binding.

  5. The identity provider returns a<LogoutResponse> messagecontaining a suitable status code response to the originalrequesting service provider, sp1. The response is digitally signed and returned (in this case) usingthe HTTP Redirect binding.

  6. Finally, the service provider sp1informs the user that they are logged out of all the providers.

5.4 Establishing and Managing Federated Identities

Thus far, the use case examples that have beenpresented have focused on the SAML message exchanges required tofacilitate the implementation of web single sign-on solutions. Thissection examines issues surrounding how these message exchanges aretied to individual local and federated user identities shared betweenparticipants in the solution.

5.4.1 Introduction

To simplify the examples, not all possible SAMLbindings are illustrated.

Allthe examples are based on the use case scenarios originally definedin Section 3.2, with airline.example.com being the identity provider.

5.4.2 Federation Using Out-of-Band Account Linking

Inthis example, shown inFigure 18,the user John has accounts on bothandeach using the same local user ID (john). The identity data stores at both sites are synchronized by someout-of-band means, for example using database synchronization oroff-line batchupdates.





The processing is as follows:

  1. The user is challenged to supply theircredentials to the site.

  2. The user successfully provides theircredentials and has a security context with the.

  3. The user selects a menu option (or function)on theapplication that means the user wants to access a resource orapplication on.Thesends a HTML form back to the browser. TheFORM contains a SAML response, within which is a SAML assertionabout user john.

  4. .

Theservice provider's Assertion Consumer Service validates the digitalsignature ontheSAML Response. If this, and thevalidate correctly it creates a local session for user john,basedon the local john account. It then sends an HTTP redirect to thebrowser causing it to access theTARGET resource, witha cookie that identifies the local session. An access check is thenmade to establish whether the user john has the correct authorizationto access the cars.example.co.uk web site and the TARGET resource. The TARGET resource is then returned to the browser.

5.4.3 Federation Using Persistent Pseudonym Identifiers

In this use case scenario, the partner sites take advantage of SAML's ability to dynamicallyestablish a federated identity for a user as part of the web SSOmessage exchange. SAML V2.0 provides the NameIDPolicy element on theAuthnRequest to allow the SP to constrain such dynamic behaviour. Theuser







The processing is as follows:

  1. The user attempts to access a resource on. The user does not have any current logon session (i.e. securitycontext) on this site, and is unknown to it. The resource that theuser attempted to access is saved as information.

  2. The uses the HTTP RedirectBinding to send the user to the Single Sign-On Service at theidentity provider ().The HTTP redirect includes a SAML message requesting that the identity provider provide an assertionusing a persistent name identifier for the user. As the serviceprovider desires the IdP have the flexibility to generate a newidentifiier for the user should one not already exist, the SP setsthe AllowCreate attribute on the NameIDPolicy element to 'true”.

  3. The user will be challenged to provide validcredentials.

  4. The user provides valid credentialsidentifying himself asjohnand a local securitycontext is created for the user at the IdP.

  5. The Single Sign-On Service looks up userjohnin its identity store and, seeing that the AllowCreate attributeallows it to, creates a persistent name identifier ()to be used for the session at the service provider. It then builds asigned SAML web SSO assertion where the subject uses a transientname identifier format. The namejohn is not containedanywhere in the assertion. Note that depending on the partneragreements, the assertion might also contain an attribute statementdescribing identity attributes about the user (e.g. their membershiplevel).

  6. Assertion Consumer Service.

  7. serviceprovider'sAssertionConsumer service validates the digital signature on the SAMLResponse and validates the SAML assertion. The supplied nameidentifier is then used to determine whether a previous federationhas been established. If a previous federation has been established(because the name identifier maps to a local account) then go tostep 9. If no federation exists for the persistent identifier inthe assertion, then the SP needs to determine the local identity towhich it should be assigned. The user will be challenged to providelocal credentials at the SP. Optionally the user might first beasked whether he would like to federate the two accounts.

  8. web site (the resource URL was retrieved from state informationidentified by the information.

5.4.4 Federation Using Transient Pseudonym Identifiers





The processing is as follows:

  1. The user attempts to access a resource on. The user does not have any current logon session (i.e. securitycontext) on this site, and is unknown to it. The resource that theuser attempted to access is saved as information.

  2. The uses the HTTP RedirectBinding to send the user to the Single Sign-On Service at theidentity provider ().The HTTP redirect includes a SAML message requesting that the identity provider provide an assertionusing a transient name identifier for the user.

  3. The user will be challenged to provide validcredentials at the identity provider.

  4. The user provides valid credentialsidentifying himself asjohnand a local securitycontext is created for the user at the IdP.

  5. The Single Sign-On Service looks up userjohnin its identity store and creates a transient name identifier() to be used forthe session at the service provider. It then builds a signed SAMLweb SSO assertion where the subject uses a transient name identifierformat. The namejohn is not contained anywhere in theassertion. The assertion also contains an attribute statement with amembership level attribute (“Gold” level). The assertionis placed in a SAML response message and the IdP uses the HTTP POSTBinding to send the Response message to the service provider.

  6. Assertion Consumer Service.

5.4.5 Federation Termination

This example builds upon the previous federationexample using persistent pseudonym identifiers and shows how afederation can be terminated. In this case thejdoeaccount on has been deleted, henceit wishes to terminate the federation withfor this user.

The Terminate request is sent to the using the Name IdentifierManagement Protocol, specifically using the . The example shown in Figure 21 uses the SOAP over HTTP binding whichdemonstrates a use of the back channel. Bindings are also definedthat permit the request (and response) to be sent via the browserusing





  1. The,,

  2. The verifies the digital signatureensuring that theoriginated from a known and trusted. The identity Provider processesthe request and returns acontaining a suitable status code response. The response is carriedwithin a SOAP over HTTP message and is digitally signed.

5.5 Useof Attributes

As explained in Section 3.2, in describing the websingle sign-on use case, the SAML assertion transferred from anidentity provider to a service provider may include attributesdescribing the user. The ability to transfer attributes within anassertion is a powerful SAML feature and it may also be combined withthe forms of identity federation described above.

The following are some typical use patterns:

Attributes may be used to convey userprofile information from the identity provider to the serviceprovider.This information may be used to provide personalizedservices at the service provider, or to augment or even create a newaccount for the user at the service provider. The user should beinformed about the transfer of information, and, if required, userconsent explicitly obtained.

In this model, the attributesprovided in the SAML assertion by the identity provider are used toauthorize specific services at the service provider. The serviceprovider and identity provider need prior agreement (out of band) onthe attribute names and values included in the SAML assertion. Aninteresting use of this pattern which preserves user anonymity butallows for differential classes of service is found in Shibboleth :federation using transient pseudonyms combined with authorizationbased on attributes.

6 Extending and Profiling SAML for Use in Other Frameworks

SAML's components are modularand extensible. The SAML Assertions and Protocols specificationhas a section describing the basic extension features provided. TheSAML Profiles specificationprovides guidelines on how to define new profiles and attributeprofiles. The SAML Bindings specificationlikewiseoffers guidelines for defining new bindings.

As a result of this flexibility, SAML has beenadopted for use with several other standard frameworks. Following aresome examples.

6.1 Web Services Security (WS-Security)

SAML assertions can be conveyed by means otherthan the SAML Request/Response protocols orsdefined by the SAML specification set. One example of this is theiruse with Web Services Security (),which is a set of specifications that define means for providingsecurity protection of SOAP messages. The services provided byare authentication, data integrity, and confidentiality.

defines aelement that may be included in a SOAP message header. This elementspecifies how the message is protected.makes use of mechanisms defined in the W3C XML Signature and XMLEncryption specifications to sign and encrypt message data in boththe SOAP header and body. The information in theelement specifies what operations were performed and in what order,what keys were used for these operations, and what attributes andidentity information are associated with that information.also contains other features, such as the ability to timestamp thesecurity information and to address it to a specified Role.

In is specified usingsecuritys.Tokens can either be binary or structured XML. Binary tokens, such asX.509 certificates and Kerberos tickets, are carried in an XMLwrapper. XMLs,such as SAML assertions, are inserted directly as sub-elements of the element.A Security Token Reference may also be used to refer to a token inone of a number of ways.

consists of a core specification , which describes the mechanismsindependent of the type of token being used, and a number of tokenprofiles which describe the use of particular types of tokens. Tokenprofiles cover considerations relating to that particular token typeand methods of referencing the token using a Security TokenReference. The use of SAML assertions withis described in the SAML Token Profile .

Because the SAML protocols havea binding to SOAP, it is easy to get confused between thatSAML-defined binding and the use of SAMLsby.They can be distinguished by their purpose, the message format, andthe parties involved in processing the messages.

The characteristics of the SAML Request/Responseprotocol binding over SOAP are as follows:

The characteristics of the use of SAMLsas defined byare as follows:

Notethat in principle, SAMLscould be used in both ways in a single SOAP message. In this case thesin the header would refer to the identity of the Responder (andRequester) of the message. However, at this time, SAML has notprofiled the use of WS-Security to secure the SOAP message exchangesthat are made within a SAML deployment.





The following sequence of steps typifies the useof SAMLswith.

A SOAP message sender obtains a SAMLby means of the SAML Request/Response protocol or other means. Inthis example, the assertion contains an attribute statement and asubject with a confirmation method calledHolder of Key.

To protect the SOAP message:

  1. The sender constructs the SOAP message, including a SOAP header witha WS-Security header. A SAMLis placed within a WS-Security token and included in the securityheader. The key referred to by the SAML assertion is used toconstruct a digital signature over data in the SOAP message body.Signature information is also included in the security header.

  2. The message receiver verifies the digital signature.

  3. The information in the SAML assertion is used for purposes such asAccess Control and Audit logging.

Figure 23 illustrates this usage scenario.





6.2 eXtensible Access Control Markup Language (XACML)

SAMLsprovide a means to distribute security-related information that maybe used for a number of purposes. One of the most important of thesepurposes is as input to Access Control decisions. For example, it iscommon to consider when and how a user authenticated or what theirattributes are in deciding if a request should be allowed. SAML doesnot specify how this information should be used or how access controlpolicies should be addressed. This makes SAML suitable for use in avariety of environments, including ones that existed prior to SAML.

The eXtensible Access Control Markup Language(XACML) is an OASIS Standard that defines the syntax and semantics ofa language for expressing and evaluating access control policies.Compatibility with SAML has been a key goal of the XACML TC.

As a result, SAML and XACML can each be usedindependently of the other, or both can be used together. Figure 24illustrates the typical use of SAML with XACML.





Using SAML and XACML in combination wouldtypically involve the following steps.

  1. An XACML Policy Enforcement Point(PEP) receives a request to access some resource.

  2. The PEP obtains SAMLscontaining information about the parties to the request, such as therequester, the receiver (if different) or intermediaries. Thesesmight accompany the request or be obtained directly from a SAMLAuthority, depending on the SAML profile used.

  3. The PEP obtains other informationrelevant to the request, such as time, date, location, andproperties of the resource.

  4. The PEP presents all theinformation to a Policy Decision Point (PDP) to decide if the accessshould be allowed.

  5. The PDP obtains all the policiesrelevant to the request and evaluates them, combining conflictingresults if necessary.

  6. The PDP informs the PEP of thedecision result.

  7. The PEP enforces the decision, byeither allowing the requested access or indicating that access isnot allowed.

The SAML and XACML specification sets contain somefeatures specifically designed to facilitate their combined use.

The XACML Attribute Profile in the SAML Profilesspecification defines how attributes can be described using SAMLsyntax so that they may be automatically mapped to XACML Attributes.A schema is provided by SAML to facilitate this.

A document that was produced bythe XACML Technical Committee,SAML profile of XACML v2.0,provides additional information on mapping SAML Attributes to XACMLAttributes. Thprofile also defines a new type of Authorization decision queryspecifically designed for use in an XACML environment. It extends theSAML protocol schema and provides a requestandresponse that contains exactly the inputs and outputs defined byXACML.

That samedocument also contains two additional features that extend the SAMLschemas.Whilethey are not, strictly speaking, intended primarily to facilitatecombining SAML and XACML, they are worth noting. The first is theXACML Policy Query. This extension to the SAML protocol schema allowsthe SAMLprotocol to be used to retrieve XACML policy whichmay be applicable to a given access decision.

The second feature extends theSAML schema by allowing the SAMLenvelope to be used to wrap an XACML policy. This makes available toXACML features such as Issuer, Validity interval and signature,without requiring the definition of a redundant or inconsistentscheme. This promotes code and knowledge reuse between SAML andXACML.

  1. Acknowledgments


Of particular note are thecontributions from:


[8]ページ先頭

©2009-2025 Movatter.jp