The ubiquity of the Internet has made numerous applications available online to the general public, from banking to investment to shopping to paying bills to playing music. You name the task and a Web application is at your service. The single most important security safeguard for those tasks is the authentication of the user's identity. That is, the service provider must ensure that the person who's performing those tasks is the authorized user, not an imposter. That's where user IDs and passwords come into play as credentials to prove identity and as a prerequisite for authorized access to applications. Within an enterprise, Single Sign-On (SSO) for all its applications in one login pass makes logistical and economic sense. Better yet, you can go a step further: implement federated identity and extend SSO across enterprises, thus reaping even more convenience and time savings for both organizations and users alike. This article outlines the background and process of achieving federated identity with Sun Java System Access Manager (called Access Manager for short). This theme is also the subject of a Webinar on Contents
Persistent Logins Across Applications
Consider this scenario: You want to find a coworker's phone number in the corporate white pages on the Web and then call him. Your IT department has determined that the white pages contain sensitive information and has implemented access control there. Therefore, before you can look up that phone number, you must first log in to the white pages with your user ID and password. After calling your coworker, you'd like to access a widget supplier's site from a link on your corporate portal, both access control--protected. Not only must you log in to the portal, you must also do so at the supplier site. In the course of a day, you might find yourself logging in to a dozen different applications. More cumbersome yet, you might have to define and remember a different set of credentials for each application because credential requirements vary, for example, how many characters minimum must be in a password, whether they must be a mixture of alphanumerics, and so forth. Now consider an alternative: You log in to the white pages. From there, you can browse the corporate portal and then order widgets on the supplier's site throughout the day--all without more logins. Moreover, each application recognizes you and grants you access according to your role within the organization. Your supplier's portal can even tell your location so that you need not type in a shipping address for your widget order. Sounds like magic? Not really, just access control, SSO, and federation at work:
Basics of Web-Based Access Control and SSO
How does Access Manager provide access control and SSO to applications? FIGURE 1 illustrates the workflow. ![]() FIGURE 1 Workflow for SSO Here's a summary of the process:
Subsequent requests for other protected applications will include the SSO token. Again, the Policy Agent validates the SSO token and the user's authorization and then allows or denies the request, as in step 6. This sequence of events can repeat until the user's session expires or until the user explicitly logs out. Federated Identity
The SSO mechanism functions well within the enterprise. However, a crucial disadvantage is its dependency on browser cookies, which are limited by design to a single Internet domain only. Federated identity accords access control and SSO across departmental and enterprise boundaries. The advantages are many:
A critical component for the implementation of federated identity is the Security Assertion Markup Language (SAML), an XML framework for exchanging data. SAML is managed by the Security Services Technical Committee of the Organization for the Advancement of Structured Information Standards (OASIS). The Liberty Alliance Project builds on SAML to deliver more extensive federated identity.
SAML
The current version of SAML is 1.1, with 2.0 in the works. SAML enables cross-domain SSO by defining the following:
SSO Workflow
FIGURE 2 illustrates the SSO workflow for the Browser-Artifact profile. ![]() FIGURE 2 SSO Workflow for the Browser-Artifact Profile Here's a summary of the process:
The relying party now has the assertion, which contains the user's identity, and can then serve content slated for the user. A key benefit of this federated approach is that since it trusts the accuracy of the identity information from the asserting party, the relying party simply acts on that data and need not maintain a separate identity repository. You can deploy Access Manager as the SAML producer at an asserting party. Relying parties can use Access Manager's Software Development Kit (SDK) to easily implement a SAML relying party. Let's examine a couple of code samples in the next section and learn how a Java servlet uses the Access Manager SDK to retrieve user identity data through the SAML Browser-Artifact profile.
APIs and Code Samples
Here's a recap of the two roles in SAML interactions:
FIGURE 3 illustrates the SAML roles and interactions. SAML assertions are generated in site A and consumed in site B. ![]() FIGURE 3 SAML Roles and Interactions Like the roles, the SAML APIs are divided into two categories:
CODE EXAMPLE 1 demonstrates how you can use SAML Assertion Producer APIs.
CODE EXAMPLE 2 is a sample servlet that consumes artifacts and dereferences assertions.
Note - Access Manager includes a complete set of SAML sample code in the installation_dir
Liberty Alliance Project
The Liberty Alliance Project, a consortium of over 150 companies and nonprofit and government organizations, is a collaborative effort that promotes an open standard for federated identity. Phase 1 Phase 1 of the project took advantage of existing open Web standards, such as SOAP, SAML elements, and Web services security to define an open standard for federated identity. Here are the main features:
Phases 2 and 3 Note - Liberty Alliance uses slightly different terminology from that in SAML for roles: "identity provider" instead of "asserting party" and "service provider" instead of "relying party." Phase 2 of the project delivers identity-based Web services by means of three components:
Phase 3, which is in process, will offer specifications for a contact book, geographical locations, and presence.
An Example of ID-WSF
Here's an example of how three organizations--a cell-phone provider, a ring-tone vendor, and a bank--can cooperate by means of the Liberty Alliance standard to deliver a satisfying customer experience:
FIGURE 4 illustrates the architectural scheme of the example. ![]() FIGURE 4 Architectural Scheme of an Example of ID-WSF FIGURE 5 shows the sharing flow of the Liberty Alliance attributes. ![]() FIGURE 5 An Example of Sharing Flow of Liberty Alliance Attributes The process runs as follows. These steps are a summary of those in FIGURE 5:
By implementing the Liberty Alliance protocols, Access Manager enables the deployment of federated identity services. A future technical article will explore Liberty Alliance in more detail and show you how to capitalize on the standards to achieve federated identity in Web applications. Selected Q&As From Webinar
Following are a selection of Q&As from the Webinar on October 5, 2004: Q: Has Sun renamed its identity management products? A: Yes, Sun Java System Access Manager (called Access Manager for short) was first known as iPlanet Directory Server Access Management Edition (iDSAME), then Sun ONE Identity Server. The latest renaming was prompted by Sun's acquisition of Waveset and its provisioning product, Lighthouse. We now have a family of three identity management products: Sun Java System Access Manager, which enables SSO, access control, and federation; Sun Java System Directory Server, Enterprise Edition, which is a scalable, high-performance Lightweight Directory Access Protocol (LDAP) repository; and Sun Java System Identity Manager, which offers user provisioning, password management, and data synchronization capabilities. Q: When do I use SAML instead of Liberty for SSO? A: It depends on your goal. For SSO basics, SAML would suffice. For sophisticated functions, for example, global sign-outs, attribute sharing between providers, and so forth, you should use Liberty. To include the special capabilities, such as Web services, personal profile, and discovery service, Liberty is your answer. SAML 2.0 is, in part, a merge of Liberty and SAML. If your implementation is scheduled for, say, 2005, you should move on to SAML 2.0. But then the merge makes that a moot point. Q: How can I integrate Access Manager with a security provider that's already in use? A: The Java Authentication and Authorization Service (JAAS) is a good way to implement authentication and authorization modules and to integrate with Access Manager. You have two options: You can either customize Access Manager to call your existing authentication and authorization module, or you can factor authentication and authorization out of your existing systems and have your non-Web applications use the Access Manager SDK to authenticate and authorize access. Q: Can I use SAML and Liberty in products built with Java technology? A: Sure. SAML and Liberty are available as free, open standards. Access Manager is available as part of Sun Java Enterprise System for $100 per employee per year. It's also part of Sun Java Studio Enterprise, an enterprise development platform. From the Studio Enterprise main page, you can see the package at a glance: Application Server, Web Server, Access Manager (listed as Identity Server), and so forth, along with a tutorial. You can create a simple application and see how Access Manager can protect its access. We encourage developers to download an evaluation copy. Q: Is the SAML or Liberty technology in production? Can you cite a few real-life cases? A: Sun is proud to point to a large number of such references. Behind the scenes, a large bank on the U. S. West Coast uses SAML for identity management of their online banking transactions. In addition, a credit aggregator for several large automobile manufacturers in the States uses Liberty to achieve federation between the aggregator itself and the manufacturers. The dealers rely on a single service that sends them credit quotes on end customers. We cannot reveal the names of these companies, however; that's proprietary information. If you are planning a federation deployment, please send email to Q: Do Policy Agents log user activities locally or is logging centralized within Access Manager? A: Access Manager Policy Agents can do both. The choice is yours. References
About the Authors
Pat Patterson, a technical product manager at Sun, has been working on security and identity management since 1997, when he joined Trustbase Ltd., a software development company in London, England. After Sun acquired Trustbase in 2000, Pat became an engineering manager in secure Web services at Sun. He moved to product management in 2001. Pirasenna Velandai Thiyagarajan is an engineering lead for Sun Java System Access Manager and the architect of Access Manager Policy Agents. He has been developing security applications for eight years. Marina Sum is a staff writer for Sun Developer Network. She has been writing for Sun for 15 years, mostly in the technical arena. | ||||||||||||||||||||||||||||||||||||
Oracle is reviewing the Sun product roadmap and will provide guidance to customers in accordance with Oracle's standard product communication policies. Any resulting features and timing of release of such features as determined by Oracle's review of roadmaps, are at the sole discretion of Oracle. All product roadmap information, whether communicated by Sun Microsystems or by Oracle, does not represent a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. It is intended for information purposes only, and may not be incorporated into any contract.
|
| ||||||||||||