Vous êtes sur la page 1sur 10

SAML proposal for securing XML web services

Jayesh Naithani
University of St. Thomas, Saint Paul, MN
jnaithani@gmail.com

to refer to the user, and the user is then said to have a


Abstract federated identity [7]. Finally, SAML allows for the use of
The Security Assertion Markup Language (SAML) the assertion format in securing web service Simple Object
standard defines an XML-based framework for describing Access Protocol (SOAP) message exchanges. SAML
and exchanging security information between trusting provides a standards-based approach for the exchange of
parties. It provides interoperability in a distributed user information, using security tokens, which is not possible
environment between disparate security systems. This as easily by other WS-Security token profiles.
paper will describe how SAML can provide a means for In this paper I will begin with a brief introduction about
communicating authentication, data integrity, and SAML history and core concepts. I will then focus in greater
message confidentially information across web services detail on the OASIS Web Services Security SAML Token
using the XML based SOAP protocol. The paper will first Profile standard for securing web service message
describe the fundamentals of the SAML protocol, then exchanges. I will conclude the paper by reviewing some
review in greater detail the OASIS proposal for securing security considerations for the use of the SAML proposal.
XML based web service message exchanges using the
2. SAML History
SAML 2.0 standard, and conclude with a general analysis
of some of the threats and security risks affecting the The Organization for the Advancement of Structured
SAML proposal from the perspective of secure web service Information Standards (OASIS) developed the SAML
message exchanges. V1.0 standard in November 2002. SAML V1.1 followed
in September 2003. In March 2005, SAML V2.0 was
1. Introduction announced, and is intended to be the convergence point
Today, more and more systems are linked through Web for the three major identity federation initiatives that
services, portals, and integrated applications. The need for a came into existence after the release of V1.0, namely, the
standard that allows security information to be shared and Liberty Alliance, the Internet2 Shibboleth project, and
exchanged has never been felt more necessary. The Security the OASIS Web Services Security (WS-Security)
Assertion Markup Language, or SAML, protocol provides a committee. SAML V2.0 is considered by all to be an
flexible and extensible set of data formats designed for important step towards full convergence for federated
communicating user authentication, entitlement, and attribute identity standards [7].
information between disparate services in a dynamic,
3. Conceptual introduction
distributed, networked environment [7].
The SAML standard is being applied in a number of System entities use the SAML protocols for
different ways today, the major ones being for Web single constructing and exchanging security assertions. An
sign-on (SSO), attribute-based authorization, and the asserting entity can use SAML to make the following
securing of web services. In web based single sign-on (SSO) statement:
a user authenticates to one web site and without additional
authentication is able to access personalized and customized "Alice has these profile attributes and her domain's
information at other sites. This is accomplished by SAML certificate is available over here, and I'm making this
through the communication of an authentication assertion statement, and here's who I am." [1]
between sites. Each site validates the assertion and allows or
denies access based on the result. With attribute-based The assertion is then conveyed to some other party
authorization, identity information about a user or subject is who can then trust it and provide access to secured
communicated between web sites to support the completion resources.
of a transaction. The identity information is a property of the
user, and is in addition to their authentication related The specification of how SAML is used in a particular
information. Partner services establish an agreement on how context is knows as a "SAML Profile". The specification

1
of how SAML assertions are conveyed over another 4.2 Protocols
protocol is known as a "SAML Binding". SAML
profiles and bindings reference other SAML SAML defines a set of request and response messages
specifications such as the "SAML Core" specification. XML that are used by service providers to obtain
These concepts are briefly discussed next. assertions [2, 5].
The request/response protocols are:
4. SAML Concepts and Architecture
 Assertion Query and Request Protocol:
The SAML protocol consists of assertions, protocols,
request one or more assertions from a SAML
bindings, and profiles [see Figure 2].
authority
4.1 Assertions  Authentication Request Protocol: request
an identity provider authenticate a principal
An assertion contains one or more statements made by a  Single Logout Protocol: request a near-
SAML authority about a subject which it considers to be true simultaneous logout of a collection of related
or valid. Assertions are created by an asserting party, also sessions
known as the identity provider (IdP), and based on a request
 Artifact resolution protocol: retrieve a
by a relying party, also known as the service provider (SP)
protocol message by means of an identifier
[2, 5].
called an artifact
There are three different kinds of assertion statements:
 Name Identifier Mapping and Manage
Protocols: permits the programmatic
 Authentication: indicate that a subject was
mapping, and termination, of SAML name
authenticated using a particular method at a
identifiers for a user between one or more
specific time. This type of statement is typically
service providers
generated by a SAML authority or identity
provider. 4.3 Bindings
 Attribute: contain properties about the subject,
Bindings describe how SAML protocol messages are
such as group and role information.
carried over transport protocols from an identity provider
 Authorization decision: define something that
to a service provider, and vice versa [5].
a subject is entitled to do.
Some of the following bindings are defined by the
protocol:
The diagram below shows the high-level structure of a
typical SAML authentication assertion.
 HTTP Redirect/Post Bindings: defines
how protocol messages can be transported
using HTTP redirect messages, or via Base64
Issuer
encoded content of an HTML form control
 HTTP Artifact binding: defines how
Signature artifacts are transported between message
senders and receivers using HTTP.
 SAML SOAP Binding: defines how SAML
Subject protocol messages are transported within
=
SOAP messages
 Reverse SOAP (PAOS) Binding: for
Conditions devices like cell phone that cannot accept a
request but can send one (reverse SOAP)
 SAML URI Binding: defines a method to
retrieve existing SAML assertions by
AuthnStatement
resolving a URI (Uniform Resource
Identifier)

Figure 1. SAML Assertion [5] 4.4 Profiles


Profiles consist of SAML assertions, protocols, and
bindings, constrained to provide interoperability
depending on usage scenarios.

2
There are a number of profiles defined by SAML, and Profiles
the following are a few of the profiles defined by V2.0 Contains assertions, protocols, bindings
to support defined use cases
[3]:
Bindings
 Web Browser SSO Profile: defines how Protocol mappings onto standard
messaging and communication protocols
SAML entities can use the Authentication
Request Protocol and SAML response Protocols
Requests and responses for assertions
messages to achieve Web browser based and for managing identities
single sign-on
 Single Logout Profile: defines how the Assertions
Authentication, attribute, and
Single Logout Protocol can be used with authorization information
SOAP, HTTP Redirect/POST/Artifact
bindings
 Assertion Query/Request Profile: defines
how SAML can use the SAML Query and Figure 2. SAML Concepts [5]
Request Protocol to obtain SAML assertions
using SOAP messages 5. Securing Web Services
 Artifact Resolution Protocol: defines how Web services are decoupled applications. The
SAML entities can use the Artifact simplest example is a Web service client that calls a Web
Resolution Protocol to get protocol messages service, for example, a stock quote client web service that
referred by artifacts using the SOAP binding calls a stock quote service, which then returns
4.5 Metadata and Authentication Context information containing the market price for the specified
company. Additionally, a Web application could call the
Two other SAML concepts are useful for same Web service client, which in turn invokes the stock
understanding a SAML environment [5]: market Web service.
Both Web services and Web applications can require
 Metadata: defines a way to express and authentication. They may likely authenticate against a
share configuration information between common user store and will use different means for
SAML parties, such as the identify provider authentication.
and service provider. Information consists of The OASIS WS-Security specification is the open
identifier information, operation roles, key standard for Web services security. Its goal is protecting
information for encryption and signing. Web service SOAP messages exchanges by providing
message encryption, authentication, data integrity, and
 Authentication Context: this is referenced confidentiality. It provides authentication support for
by an assertion's authentication statement to SOAP messaging by offering several general purpose
carry detailed information regarding the type mechanisms for associating security tokens with message
and strength of authentication requested, such content. The specification defines three approved token
as multi-factor authentication types:

SAML is highly extensible and can be further  UsernameToken Profile


customized to create additional bindings and profiles and  X.509 Certificate Token Profile
ensure maximum interoperability.  SAML Token Profile
Having described the general concepts of the SAML
standard, the paper will next review the details of the Each of these profiles defines how to use its token
SAML proposal for protecting web service message type within the WS-Security specification. The use of
exchanges as defined by the OASIS SAML Token SAML assertions with WS-Security is described in the
Profile V2.0. SAML Token Profile.
5.1 WS-Security SAML Token Profile
The WS-Security specification defines the use of
SAML assertions as security tokens for the purpose of
securing SOAP messages and SOAP message exchanges.

3
This particular profile describes [4]:  The SAML assertions themselves have been
obtained previously and typically pertain to
 How SAML assertions are carried within the the identity of the sender of the SOAP
<Security> element in SOAP message message. In the SAML Request/Response
headers [see Figure 3] protocol the assertions are provided by a
 How SAML assertions are used to bind the trusted authority and may or may not pertain
subject(s) of the assertion with the to the party requesting the assertion.
statement(s) contained in the assertion
HTTP response
5.2 Terminology
Some new terminology and concepts have been
SOAP envelope
introduced by the SAML token profile:

 Attesting Entity: provides confirmation SOAP header


evidence for binding the subject of SAML
statements within SAML assertions with the wsse: Security
SOAP message content.
 Relying Entity: the receiver of the SAML Assertion
assertion who makes use of the information
in the assertion for access control purposes
 Subject Confirmation: the method used to Authentication
establish the binding between the subject statement
within SAML assertions and the SOAP
message content. The subject confirmation is Other
identified by a confirmation method statements
identifier with the SOAP security header
 SAML Assertion Authority: the entity that
issues SAML assertions
 Subject: the entity to which the claims in the
SAML assertion refer to wsse: SecurityTokenReference
5.3 Characteristics of the SAML Token Profile
The SAML protocols have a binding to SOAP as we
described earlier. However, the use of SAML assertions
by WS-Security should not be confused with the SAML SOAP body
defined binding [5]. The characteristics of the use of
SAML assertions as defined by WS-Security are as
Figure 3. WS-Security with a SAML Token [5]
follows:
5.4 Use of SAML assertions with WS-Security
 SAML assertions are carried in the
<Security> element within the header There are three SAML use cases for web services
section of the SOAP message envelope. In security.
the SAML Request/Response protocol
binding, the assertions are contained within  Holder-of-Key: In the holder of key use
the SAML response. case, the sender submits a request for an
 The SAML assertions play a role in the assertion to the SAML authority. The issuer
protection of the message they are carried in then returns a signed assertion with the user's
and typically contain a key used for digitally public key embedded in it. The sender then
signing data within the body of the SOAP signs the message body with their private
message. Again, in contrast to the SAML key.
Request/Response protocol binding over  Sender-Vouches: In the sender vouches use
SOAP, assertions play no role in protecting case, the sender vouches for the verification
the SOAP message itself. of the assertions subject. The sender's

4
private key is used to sign both the assertion In this scenario, the basis of trust is the SAML
and the message body. If the sender gets the authorities' signature. The SAML authorities' private key
assertion from a SAML authority then the is used to sign the SAML assertion for the SOAP client.
SAML authority could also sign the message. The SOAP message receiver relies on the SAML
 Bearer: When the confirmation method is of authority to have issued the assertion to an authorized
this type, proof of the relationship between client.
the subject in the SAML assertions and the
sender is assumed (the subject and the bearer
6.2 SOAP Message Format
are implicitly the same). This works the The following example shows what a security header
same way as the Holder-of-Key confirmation including a SAML assertion using the holder-of-key
method, with the exception that the sender subject confirmation method looks like.
need not sign the outgoing message - a model
where the communicating parties do not need
the higher level of assurance and non- <?xml version="1.0" encoding="UTF-8"?>
<S12:Envelope xmlns:S12="..." xmlns:wsu="...">
repudiation of a signed message. <S12:Header>
<wsse:Security ...>

Next, let us look into these subject confirmation <saml2:Assertion ... ID="_a75adf55-01d7-40cc-929f-dbd8372ebdfc.">
<saml2:Subject>
methods in more detail. <saml2:NameID>

6. Holder-of-key Subject Confirmation </saml2:NameID>
<saml2:SubjectConfirmation
method Method="urn:oasis:names:tc:SAML:2.0:cm:holder-of-key">
<saml2:SubjectConfirmationData ...>
<ds:KeyInfo>
An attesting entity uses the holder-of-key confirmation <ds:KeyValue>…</ds:KeyValue>
method to demonstrate that it is authorized to act as the </ds:KeyInfo>
</saml2:SubjectConfirmationData>
subject of the SAML subject statements containing the </saml2:SubjectConfirmation>
holder-of-key confirmation element. </saml2:Subject>
<saml2:Statement>

6.1 Processing Model </saml2:Statement>
<ds:Signature>…</ds:Signature>
The following sequence of steps describes the holder- </saml2:Assertion>

of-key method of establishing the correspondence <ds:Signature>


<ds:SignedInfo>
between a SOAP message and the subject of the SAML ...
assertions added to the SOAP message [8]. </ds:SignedInfo>
<ds:SignatureValue>
HJJWbvqW9E84vJVQk…
 A SOAP message client requests a SAML </ds:SignatureValue>
<ds:KeyInfo>
authority for an assertion <wsse:SecurityTokenReference ...>
 The SAML authority returns a signed <wsse:KeyIdentifier ...>
_a75adf55-01d7-40cc-929f-dbd8372ebdfc
assertion with the SOAP message client's </wsse:KeyIdentifier>
</wsse:SecurityTokenReference>
public key embedded in it </ds:KeyInfo>
 The client adds the SAML token to the </ds:Signature>

SOAP header and constructs the SOAP body, </wsse:Security>


</S12:Header>
signs it with its own key and makes a SOAP <S12:Body wsu:Id="MsgBody">
client call. <ReportRequest>
<TickerSymbol>SUNW</TickerSymbol>
 The SOAP message receiver validates that </ReportRequest>
</S12:Body>
the SAML token came from a security token </S12:Envelope>
service it trusts, by verifying that the SAML
token was signed by the SAML authority Figure 4. H-O-K SOAP Message
 The SOAP message receiver also validates
The information in the subject confirmation element
the message came from the SOAP client
[see Figure 4] provides the means for a relying party
using the client's public key contained within
(e.g., a web service) to verify the correspondence of the
the SAML token
subject of the assertion with the party (e.g., a web service
 The information in the SAML assertion can client) with whom the relying party is communicating.
then be attributed to the subject contained in The relying party will allow any party capable of
the assertion demonstrating knowledge contained within the subject
confirmation data.

5
The subject confirmation element indicates that the <?xml version="1.0" encoding="UTF-8"?>
holder-of-key method should be applied to confirm the <S12:Envelope xmlns:S12="..." xmlns:wsu="...">
<S12:Header>
subject and all the statements of the assertion. The key <wsse:Security ...>
<saml2:Assertion xmlns:saml2="..." xmlns:xsi="..."
info element contained in the subject confirmation ID=”_a75adf55-01d7-40cc-929f-dbd8372ebdfc">
identifies a public or secret key that can be used to <saml2:Subject>
<saml2:NameID>
validate the identity of the subject. The signature ...
</saml2:NameID>
element is prepared by the sender using its private key <saml2:SubjectConfirmation
for signing the message contents and assertion. Method=”urn:oasis:names:tc:SAML:2.0:cm:holder-of-key”>
<saml2:SubjectConfirmationData
xsi:type="saml2:KeyInfoConfirmationDataType">
7. Sender-Vouches Subject Confirmation <ds:KeyInfo>
<ds:KeyValue>…</ds:KeyValue>
</ds:KeyInfo>
The Sender-Vouches confirmation method is used in </saml2:SubjectConfirmationData>
</saml2:SubjectConfirmation>
the case when a trust relationship exists between a web </saml2:Subject>
service intermediary and the web service provider. <saml2:Statement>

</saml2:Statement>
7.1 Processing Model <ds:Signature>…</ds:Signature>
</saml2:Assertion>
The following steps describe this scenario in more <wsse:SecurityTokenReference wsu:Id=”STR1” wsse11:TokenType=”...”>
detail [9]: <wsse:Reference wsu:Id=”…” URI=”...”> </wsse:Reference>
</wsse:SecurityTokenReference>

 The SOAP client sends a request to an <ds:Signature>


<ds:SignedInfo>
intermediary, and authenticates using another <ds:CanonicalizationMethod Algorithm="..."/>
<ds:SignatureMethod Algorithm="..."/>
mechanism, such as username/password <ds:Reference URI="#STR1"> ... </ds:Reference>
<ds:Reference URI="#MsgBody"> … </ds:Reference>
tokens. </ds:SignedInfo>
 The intermediary then requests a token from <ds:SignatureValue>HJJWbvqW9E84vJVQk…</ds:SignatureValue>
<ds:KeyInfo>
a SAML authority <wsse:SecurityTokenReference wsu:Id="STR2"
 The SAML authority signs the assertion and wsse11:TokenType=”...”>
<wsse:KeyIdentifier wsu:Id=”…”ValueType=”...”>
sends it back to the intermediary _a75adf55-01d7-40cc-929f-dbd8372ebdfc
</wsse:KeyIdentifier>
 The intermediary signs the assertion (again) </wsse:SecurityTokenReference>
</ds:KeyInfo>
and the SOAP request, and sends the request </ds:Signature>
to the web service. </wsse:Security>
 The web service validates the SAML </S12:Header>
<S12:Body wsu:Id="MsgBody"> … </S12:Body>
assertion, generates the response and sends it </S12:Envelope>
back to the intermediary, who forwards it on
to the client Figure 5. Sender-Vouches SOAP Message

Here the intermediary is the one who is doing the 8. Bearer Confirmation Method
vouching for the user by signing both the assertion and This method does not require message receivers to
the SOAP body. To trust that the user has been establish a relationship between the subject of SAML
authenticated, the web service provider must have a assertions and the statements in the assertion. The
trusted relationship with both the intermediary and the statements are implicitly confirmed by the sender, who
SAML authority. also happens to be the subject of the message. The
7.2 SOAP Message Format SOAP message format is similar to that for the Holder-
of-key method with the exception that the message and
A sender, or the attesting entity, uses the sender- assertion are not signed by the sender [4].
vouches method to assert that it is acting on behalf of the
subject in the SAML assertion [see Figure 5]. The 9. Security and Privacy Considerations
information in the subject confirmation element indicates
A description of some of the security and privacy
the method of the subject confirmation is sender-vouches.
issues involving use of SAML follows. We'll take a look
The sender signs both the message and assertion with
at the privacy issues first.
their private key and includes the signature information
in the security header. By signing both the message and 9.1 Privacy
the assertion the sender is vouching for the integrity of
SAML assertions make statements about attributes
the message and the assertion.
and authorizations of authenticated entities. This
information is something that often needs to be only

6
available for viewing to a limited number of entities, for confirmation impose no restriction on the entities that use
example, if the statements contain information about or re-use these assertions. To address the problem of
employees, and about medical and financial systems. replay attacks, message senders should include additional
Use of a secure network channel, such as SSL/TLS, message identifying information such as timestamps,
provides message confidentiality as SAML messages are nonces, and recipient identifiers. Receivers then should
sent between two end points. Within a SAML message, check for this information against previously received
XML Encryption can also be utilized to provide data [4].
additional confidentially [6].
Encrypting contents of assertions sometimes is not 9.2.3 Message Insertion/Deletion
enough to protect privacy information. The notion that a
The SAML token profile is so far not known to be
given entity is accessing a system to obtain the assertion
vulnerable to message insertion and deletion attacks [4].
itself can be considered revealing information about the
entity. Systems using SAML are only able to provide
partial anonymity since any entity about whom an 9.2.4 Message Modification
assertion is made is identifiable by the SAML issuing SAML messages can be protected from message
authority. An identifier for a subject can be used as an modification if receivers have the ability to detect
alias or pseudonym (e.g., like for an anonymous user), unauthorized modifications. SAML assertions and
but the more often the pseudonym is used the more it SOAP message content should be signed by the attesting
reveals information about that entity, making it (sender) entity so that receivers can ensure that the
potentially more vulnerable to harm. A level of information that provides binding between the subject to
anonymity can be provided by the use of one-time-use the message content has been protected by the attesting
identifiers, and users who are concerned about anonymity entity against modification [4].
have to take steps to mask patterns of behavior and use
that could reveal information used to identity them. 9.2.5 Man-in-the-Middle
9.2 Security Assertions with a holder-of-key subject confirmation
method are not known to be vulnerable to a man-in-the-
Any communication between computer systems can be middle attack. However, the sender-vouches are since
the target of a variety of security threats. SAML is used the receiver does not actually authenticate the attesting
to transfer authentication and authorization data entity every time and relies on a previously established
supporting distributed systems, and communication trust relationship [4].
security is important in order for SAML to provide
systems the ability to protect against un-authorized use. 9.2.6 SAML Protocol
Here is a brief overview of the threat model and
countermeasures that should be used for each situation Here are some of the more general security
[4]. considerations affecting the SAML protocol.

SAML Assertions
9.2.1 Eavesdropping
Eavesdropping is a threat to the SAML token profile A SAML assertion once issued is out of the control of
for web services security. To protect against this threat, the issuer, and hence the issuer has no control over how
sensitive message content, such as assertions, assertion long the assertion will exist before it is made use of.
references, attribute information, should be encrypted Also, the issuer has no control over who the assertion
such that only the valid SAML parties are able to view will be shared with. SAML authorities therefore need to
this information. Transport layer security should also be careful of the information they include in an assertion in
considered for use to further protect the messages and consideration of possible consequences if the assertion is
their contents [4]. somehow misused, made public, or exposed to
potentially malicious entities [6].
9.2.2 Replay
The use of signed SAML assertions ensures data Denial of Service
originated from the holder of the confirmation key
(holder-of-key subject confirmation method). However, Handling, parsing, and lookup of SAML assertions are
this mechanism does not detect or prevent problems a potentially expensive operation. The effort required for
related to the capture and re-play of the message by other the processing of each assertion is proportionally much
parties. Also, assertions that contain sender-vouches greater than the effort required by an attacker to generate

7
the request, and so the SAML protocol is vulnerable to a SAML specification for providing the levels of message
denial of service (DOS) attack [6]. protection guaranteed by the protocol. Google
Requiring additional client authentication (pre- implemented a variant of the protocol, using the SAML
authentication) at some level below the SAML protocol Web Browser SSO Profile, for providing single sign-on
level, e.g., SOAP over HTTP, together with the use of an for its applications [15]. Its initial implementation
access control system can block the DOS type attacks contained a flaw [13, 14], which has been fixed [16],
from non-insiders. Any client level authentication used where a user was granted access to their web site (Google
must have the ability to provide authentication Docs, for instance) and where the web site could then use
traceability and not itself be vulnerable to forgery [6]. the SAML assertion to access other Google applications
Also, requiring signed requests can also help level the (Google Mail) as the same user. The problem with this
effort required to send a signed request with the amount approach is that if one of the web sites gets
of effort required to process it. Signing a request is compromised, the penetrated service can use of any of
typically a much larger amount of work as opposed to the the tokens it receives to impersonate users at any other of
work required to verify the signature itself [6]. However, Google's relying sites. Google once notified of the
an attacker could get around this by potentially replaying problem has fixed the issue by changing their
the same signed request. Time stamping can be used implementation to require identity providers to send
within signatures, and the narrower the window of time a information in assertion responses that will allow it to
signature is treated as valid, will further help counter this check the response is being sent by a valid sender
form of attack. (identity provider) [16].
Limiting the ability to request SAML assertion to a There may be other organizations that are using
select few entities can be used to reduce the risk of a customized (not fully compliant) implementations of the
DOS attack as well. Other methods at the software and SAML protocol and may be vulnerable to other types of
hardware level (firewalls and router) can be used to attacks as well. Vendors should make certain that any
further restrict access to the SAML authority or customers participating in identity federated
responders [6]. environments ensure that SAML assertions include the
appropriate recipient attribute in the subject confirmation
Key Management information, indicating the SAML assertion is indeed for
their service and not hijacked by the sender.
The SAML Token Profile for web service security in
particular relies on the use of digital signatures and
encryption to provide authentication, data integrity, and 10. Ongoing implementation related work
confidentiality. Any security provided by it is directly I initially intended to also develop a supporting
affected by the security and protection offered by the key SAML compliant implementation demonstrating secured
management systems in place. Adequate protection message exchanges between a web service client and a
needs to be provided to limit the access to keys to a web service provider. I found a few open source projects
minimum set of entities, together with the use of strong including sample code that demonstrated this capability -
encryption and password policies for accessing and mainly the Sun supported open source projects for
storing key materials [6]. NetBeans, Glassfish, OpenSSO [10, 11] and the Internet2
Also, while a digital signature can determine if a Shibboleth/OpenSAML [13] projects. Learning from the
message has been altered or not, it does not confirm that information gathered by reading and trying the sample
the key used is the actual key of the specified entity, or if applications and sharing them with my director of
the key itself is still valid (not expired, is of the correct application security development at work, I came up with
type). Verifying the binding of key to an entity requires a startup project that would meet some of the learning
additional validation and the use of public key related goals for future development at my work
infrastructure (PKI, trusted certification authorities), involving web services, message security, and
helps in establishing the key-to-individual binding [6]. authentication/single sign-on.
The following diagram describes the configuration for
9.2.7 Threats introduced by SAML the learning project.
Protocol variants
Finally, the SAML protocol is highly extensible and
has been customized by implementers to provide a
federated environment for single sign-on. An
implementer is ultimately responsible to adhering to the

8
message level integrity and confidentiality, and defines a
standard set of SOAP extensions containing SAML
User Directory assertions as security tokens. A general description of
some of the privacy and security issues pertaining to the
base SAML protocol and SAML Token Profile are
Client Application Security Token discussed in the end.
Service
The OASIS SAML proposal for securing web services
provides a good, flexible, and extendible framework for
securing web service message exchanges. By offering a
standardized method for the communication of security and
identity information between partners, the SAML standard
make the possibility of providing a common federated
Web Service identity and the seamless processing of cross-domain
Web Service Security Security
Provider
Client Interceptor Interceptor business transactions.

References
Figure 6. Web services message security [1] J. Hodges, How to Study and Learn SAML.
scenario http://identitymeme.org/doc/draft-hodges-learning-
saml-00.html
[2] OASIS Assertions and Protocols for the Security
I have setup the open source Apache CXF web
Assertion Markup Language (SAML) v2.0.
services framework in Apache Tomcat, to host the web Available at http://docs.oasis-
service. Use of the Apache CXF web service framework open.org/security/saml/v2.0/saml-core-2.0-os.pdf,
made sense form the perspective of it being the March 2005
framework of choice for web service development within [3] OASIS Profiles for OASIS Security Assertion
other internal projects. For a security token service I have Markup Language (SAML) v2.0. Available at
OpenSSO setup as the Identity Provider in another http://docs.oasis-open.org/security/saml/v2.0/saml-
instance of Apache Tomcat. I have successfully built, profiles-2.0-os.pdf
deployed, and tested a very basic sample web service and [4] OASIS Web Services Security: SAML Token Profile
client. Work that I have not been able to complete in 1.1. Available at http://www.oasis-
time for the class project, and which I intend to continue open.org/committees/download.php/16768/wss-v1.1-
working on are the two CXF interceptor modules: the spec-os-SAMLTokenProfile.pdf , February 2006
sending interceptor which will use the open source [5] OASIS Security Assertion Markup Language
OpenSAML APIs to request the SAML assertion on the (SAML) v2.0 Technical Overview. Available at
client side for a given user supplied directly to it via http://www.oasis-
open.org/committees/download.php/27819/sstc-saml-
other means such as another authenticated client
tech-overview-2.0-cd-02.pdf, March 2008
application, the construction and signing of the SOAP
[6] OASIS Security and Privacy Considerations for the
message, and the receiving interceptor which will OASIS Security Assertion Markup Language
validate the message sender and the subject information (SAML) v2.0. Available at http://docs.oasis-
within the received SOAP message's security header. open.org/security/saml/v2.0/saml-sec-consider-2.0-
Changes in the choice of APIs and/or products are quite os.pdf, March 2005
possible as I learn more about the capabilities and [7] OASIS SAML V2.0 Executive Overview. Available
limitations of the selected open source products. at http://www.oasis-
open.org/committees/download.php/13525/sstc-saml-
11. Conclusions exec-overview-2.0-cd-01-2col.pdf, April 2005
The paper provides an overview of the SAML XML [8] Glen Mazza, SAML subject confirmation methods:
based framework for describing and sharing security holder-of-key vs. sender-vouches.
http://www.jroller.com/gmazza/entry/saml_subject_c
information between multiple web services. The main
onfirmation_methods_holder, November 2008
focus has been on describing the details of protecting and [9] help.SAP.com, Subject Confirmation Methods for
securing message exchanges between multiple online SAML Token Profiles.
parties as described by the OASIS standard for Web http://help.sap.com/saphelp_nwpi71/helpdata/en/44/3
Services Security using the SAML Token Profile V2.0. 22225a52d5447e10000000a422035/content.htm
The proposal specifies how multiple entities can implement

9
[10] www.NetBeans.org, Securing Web Services Using
the SAML or UserNameToken Profiles.
http://www.netbeans.org/kb/60/javaee/identity-
amsecurity.html
[11] java.sun.com, SAML Sample Application.
http://java.sun.com/webservices/docs/1.6/tutorial/doc/
XWS-SecuritySamples7.html
[12] dev.globus.org, GSoC08/SAML Holder of Key
Authn for HTTP SSO.
http://dev.globus.org/wiki/GSoC08/SAML_Holder_o
f_Key_Authn_for_HTTP_SSO
[13] Alessandro Armando, et. al., Formal Analysis of
SAML 2.0 Web Browser Single Sign-On: Breaking
the SAML-based Single Sign-On for Google Apps.
http://www.ai-lab.it/armando/pub/fmse9-armando.pdf
or http://www.ai-
lab.it/armando/GoogleSSOVulnerability.html
[14] US-CERT, Google SAML Single Sign on
vulnerability. http://www.kb.cert.org/vuls/id/612636
[15] Google.com, SAML Single Sign-On (SSO) Service
for Google Apps.
http://code.google.com/apis/apps/sso/saml_reference_
implementation.html
[16] Google.com, Change in SSO SAMLResponse
requirements.
https://groups.google.com/group/google-apps-
apis/browse_thread/thread/35c9d1a049ef71f3

10

Vous aimerez peut-être aussi