![]() |
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
|
| Debunking SAML myths and misunderstandings | ||||
Getting to know the Security Assertion Markup Language
At the beginning of 2003, the Organization for the Advancement of Structured Information Standards (OASIS) group approved the Security Assertion Markup Language (SAML) specification. With 25 companies participating, you would think that the software development community would have a good understanding of SAML. However, misconceptions about SAML still exist, so this article aims to detail and debunk many of the myths and misunderstandings surrounding SAML. As a newcomer, the SAML specification is being compared to existing single-sign-on technologies, authentication services, and directory services. SAML is the first of what likely will be many authentication protocols to leverage Web infrastructures, where XML data moves over HTTP protocols on TCP/IP networks. The OASIS group developed SAML as an XML-based framework for exchanging security information. SAML is different from other security approaches mostly because of its expression of security in the form of assertions about subjects. Other approaches use a central certificate authority to issue certificates that guarantee secure communication from one point to another within a network. With SAML, any point in the network can assert that it knows the identity of a user or piece of data. It is up to the receiving application to accept if it trusts the assertion. Any SAML-compliant software can assert its authentication of a user or data. This is important for the coming wave of business workflow Web services standards where secured data needs to move through several systems for a transaction to be completely processed. Misunderstanding: SAML is a complete identity management solution
SAML is a protocol specification to use when two servers need to share authentication information. Nothing in the SAML specification provides the actual authentication service that a commercial directory server otherwise provides. Myth: Web single-sign-on between enterprises is well understood and easy to implement In a typical Web-enabled infrastructure, software running leading-edge enterprise systems needs to handle browser redirects between authorization servers; HTTP post commands between server domains, public key infrastructure (PKI) encryption, and digital certificates; and a mutually agreed-upon mechanism that states the trust level for any given user or group. SAML shows software developers how to represent users, identifies what data needs to be transferred, and defines the process for sending and receiving authorization data. Myth: SAML is a complicated design As an example, consider the SAML assertion mechanism that is used to encode a request for authorization into an XML request. SAML defines several types of statements: Authentication. The subject has logged in. For example, a SAML Assertion for authentication may look like the following:
Attribute. Identifies the properties for a subject. For example, fcohen@pushtotest.com has the role of Admin. Authorization decision. States the subject is allowed to perform operations on a resource. For example, fcohen@pushtotest.com is authorized to Assertion attributes. An optional mechanism to enable industry consortia to define attributes specific to their industry. Additionally, SAML defines attributes of an assertion that are shared by the statements in an assertion, including: Version attributes. Identify the major and minor versions of the SAML specification that the assertion complies with. Signature. SAML defines an XML Signature element to identify the authority. This can contain an X509 certificate with a public key, expiration date, and usage policy. The XML Signature also contains the signature value itself, generated by the authority for the content of the element. The signature can be verified using the authority's public key information in the X509 certificate. In general, the complexity in SAML comes from the deployment of the SAML-based software and the setup of the Public Key Infrastructure (PKI) environment and digital certificates. SAML also defines optional condition elements to limit the validity of an authorization request. For example, an SAML token may be valid Misunderstanding: SAML predefines all the attribute meanings for most industries The SAML specification identifies its own namespace to qualify SAML attributes and elements. For example, the namespace Myth: SAML is an authentication authority In a complete authentication system, you still need to write a policy decision point to decide if a user may access a Web page. Additionally, you still need to write a policy enforcement point. This is a servlet or application that receives the authorization, checks the role and authorization, and then makes an assertion. Several companies provide commercial policy decision point and policy enforcement point solutions, including IBM. Misunderstanding: SAML does not work well where authentication needs to transmit large data Myth: SAML is easy to break using replay techniques SAML provides protection from replay attacks by requiring the use of SSL encryption when transmitting assertions and messages specifically to prevent interception of assertions. Additionally, SAML provides a digital signature mechanism that enables the assertion to have a validity time range to prevent assertions from being replayed later. Finally, the artifact profile has two additional replay countermeasures:
Misunderstanding: SAML defines a discovery procedure to find authentication authorities Myth: SAML does not handle anonymous or guest access automatically Myth: SAML provides its own certificate mechanism SAML is one of the first protocols to require that degree of fine-grained security; for example, the fine-grained security that XKMS provides authenticates an SAML assertion. In the meantime, SAML provides security for an SAML artifact by requiring HTTP client-side authorization using HTTP Basic or SSL client-side certificate authentication. The artifact is sent only to the expected requester and is deleted after it is retrieved. Misunderstanding: SAML is vaporware; no one has implemented it yet
Misunderstanding: Canonicalization in XML Signatures is not needed This simply is false. XML Signature is a specification designed to meet the special requirements for using digital signatures with XML documents, including SAML. The XML Signatures working group at the W3C is developing an XML syntax to sign just about anything -- such as XML documents, SOAP message headers, and XML elements -- and to provide protocols and procedures for creating and verifying digital signatures. Canonicalization in XML Signatures is necessary to allow authentication between multiple services. For example, consider what happens on the server side when you buy a personal computer from a manufacturer through a browser interface. Multiple services handle portions of your order: one provides a search to find the product you wish to order, the next is a billing service to take your payment information, and the final service takes your shipping information. These three systems share your record using SAML assertions. Canonicalization makes sure the order of the bytes in your record stays the same even though three different systems are manipulating the record. Without canonicalization, the record may change and make the XML Signature invalid because the XML Signature's mission is to make sure the contents it has signed are intact and in the same byte order. Neither XML Signature nor WS-Security is required to use SAML. Conclusion The author thanks Charles Knouse, Principal Software Engineer at Oblix, and the Web Services Special Interest Group of the Software Development Forum (www.sdforum.org) for their assistance in researching this article.
| |||||||||||||||||
| About IBM | Privacy | Terms of use | Contact |