Programming Tutorials Browser Tutorials Articles Struts Tutorials Hibernate Tutorials

Search: 

  Tutorial: The first taste of Liberty

The first taste of Liberty

Tutorial Details:

The first taste of Liberty
The first taste of Liberty
By: By Frank Sommers
Sign on once, log in everywhere
hat annoys you most on the Web today?
For me, having to remember dozens of Website usernames and passwords surely surpasses all other inconveniences. Whether you wish to chat on JavaWorld' s forums or keep up with the news on your favorite current affairs Website, chances are you will be asked at some point to enter your username and password. Following closely behind that aggravation are the bothersome HTML forms you must fill out to obtain your user IDs in the first place.
Username and password boxes are annoying because they present an experience without close parallel in the off-line world. When returning home after a long day's work, once you unlock your front door, you can freely move about without identifying yourself to your kitchen appliances, your bathtub, or the television set. Inside your home, you gain complete access even to your checkbook without that checkbook asking for a username and password.
Even offices work similarly. Once you are permitted to enter an office building, you can typically move about without having to be reauthenticated to grab a cup of java from the lunch room or to drop by your coworker's cubicle for a quick chat. Homes and offices, in effect, are circles of trust: once admitted inside those circles, you are mostly free to go about your business.
Currently, the Web is a seascape of myriad user account islands, and Websites fail to share users' preferences. Even if you have already specified on an airline's Website that you're a vegetarian, chances are, the hotel where you'll be staying will ask for your meal preferences again. If you have children, you currently must separately specify that fact to hotels, restaurants, travel agencies, cruise lines, amusement parks, insurance companies, and the like. Next to usernames, passwords, and personal information request forms, isolated user preferences stand high on my list of awkward Web user experiences.
The Liberty Alliance Project specifications offer a possible solution to the first two of those limitations. The next-generation Liberty specifications, version 2.0 due in a few months, hope to solve the third one as well. What represents a mere inconvenience for Websites may well be a showstopper for Web services. You can almost always count on a human to punch her username and password into a Web browser. But Web services do not enjoy the benefits of human supervision: they must often invoke other Web services on their own. Even if Web services execute on behalf of a human user, they can't stop and fetch their anthropomorphic master for user access information. Rather, either they must have a way to obtain access information automatically or Web services acting together to support a common goal must trust one another prior to service-to-service invocations.
Liberty addresses the needs of both existing Websites and Web services. In this article, I first introduce the specific problems that Liberty tries to solve and the solutions it proposes. Then I describe an open source Liberty implementation, the Interoperability Prototype for Liberty (IPL), and implement a simple Liberty-enabled system using IPL. That example will feature a traditional Website infrastructure, allowing you to sign on once and gain access to two Websites. The example is easy to extend to Web services.
Single sign-on
The Liberty specifications are the efforts of an industry consortium that includes some of the biggest companies using electronic commerce today. At the time of this writing, the Liberty Alliance Project has more than 150 members, and several dozen companies have already announced support for Liberty in their products. Liberty is not specific to Java. Currently, the only Java-based implementation besides the open source IPL is a commercial product, the Sun ONE Identity Server.
Liberty mirrors the way two or more businesses form a trust relationship. That trust may be forged via business arrangements or contracts. A Liberty trust relationship means that one business trusts another business's user authentication decisions. That trust lets a user log in at one site and access another site as well. Thus, the key Liberty aim is to enable single sign-on (SSO) to multiple Websites and Web services.
The more companies that participate in a circle of trust, the more useful single sign-on becomes. Since both traditional Websites and Web services may be circle-of-trust members, Liberty defines the term service provider to refer to any electronic service participating in a Liberty identity federation.
Liberty adds three refinements to a general single sign-on mechanism. First, a special Liberty circle-of-trust member is a service provider whose responsibility is user authentication?an identity provider . Liberty specifies the relationship and communication patterns among the identity providers, the service providers, and the user. Second, Liberty ensures that a user has complete control over his identity information?any manipulation of a user's identity data requires prior user consent. Finally, Liberty relies on an emerging XML standard, SAML (Secure Assertion Markup Language), to exchange authentication information between service providers.
Although Liberty separates the identity and service provider roles, in some cases, a service provider may adopt the additional role of the identity provider. In other situations, however, user authentication may be delegated to a dedicated identity provider whose sole focus is user authentication. That provider might employ more sophisticated user authentication techniques than an individual Website operator might otherwise implement. For instance, an identity provider might require a user to log in with a secure smart card, instead of just a plain old username and password, possibly increasing overall system security. Figure 1 illustrates the role of an identity provider in the context of Liberty-enabled e-commerce Websites and Web services.
Figure 1. The identity provider's role in e-commerce Websites and Web services
Scattered identities: A user by many names
While it may at first sound strange to trust a third party with user authentication decisions, delegating such decisions to an outside party extends the way electronic commerce currently works. When you decide to submit your credit card number to an e-commerce Website, you want to ensure that no one impersonates that site to hijack sensitive account information. Current practice delegates verifying a Website's identity to public certificate authorities. Organizations such as VeriSign, Thawte Consulting, and others perform due diligence about a business's legitimate identity before granting it a secure certificate. Once that certificate is issued, Website visitors trust a certificate authority's decision to vouch for the service provider's identity.
In addition to the ability of delegating authentication decisions to an identity provider, Liberty empowers users to make decisions about their online identities. Single sign-on requires some sort of cross referencing, or federating , of user accounts among circle-of-trust members. However, Liberty mandates that a user initiate any sort of federation for her identity information. In other words, once a user initiates account federation between trusting service providers, those providers can trust one another's authentication decisions and thereby offer the convenience of single sign-on. Not only do service providers have to trust one another, the user also must trust the providers: the user is also a member of the circle of trust. If a user no longer trusts a service provider, she can annul the identity federations associated with the provider at any time.
By giving users complete control over their online identity profiles, Liberty contrasts with the "big brother" view of an identity provider. According to that view, a huge, centralized database tracks a user's online identity. Since all the information needed to evaluate a user's credentials are stored in that database, all authentication requests are directed to that single identity provider.
Due to an early version of an identity provider, Microsoft's Passport, that perception is not based entirely on myth. In its first incarnation, Passport was?and still is?a big database operated by a single company that stores user passwords and other user-related data. Much controversy has surrounded Passport and for valid reasons: not only does it require a user to entrust all her identity information to a single operator, it also increases the risk of all Passport-aware services becoming inaccessible should the Passport database service itself become unavailable.
Liberty, by contrast, acknowledges that a user's identity information is likely scattered across many databases and service providers. You may store your bank account information at your bank's database, your credit card numbers at the card issuer, and your cheese preferences at the local pizza parlor's Website. Each of those accounts, in turn, might require that you authenticate yourself before accessing that data. In Liberty terminology, at each of those sites, you maintain a local identity .
Liberty does not require that you give up those local identities in favor of a master, knows-it-all account. Liberty does not even require that a third party ever learn any detail of your local identities?you will never have to give your bank Website username or password to the pizza ordering service. Instead, Liberty provides a way to create a composite, federated identity profile from all those accounts. When you form a Liberty identity federation, Liberty produces a unique way to identify the newly created federation and then maps that federation's identity to your local identities. Figure 2 shows how that works.
Figure 2. Local identities and an identity federation
As a user, you are unawa


 

Read Tutorial at: Click here to view the tutorial

Rate Tutorial:
The first taste of Liberty

View Tutorial:
The first taste of Liberty

Related Tutorials:

Displaying 1 - 50 of about 1418 Related Tutorials.

First Step towards JDBC!
First Step towards JDBC     ... of simplicity, in very first example Access database and Sun's JDBC-ODBC drivers... The first type of JDBC dirver is JDBC-ODBC Bridge which provide JDBC
 
JavaScript array first element
javascript array first element JavaScript array first element        ... a code that makes you easy to understand in array first element example
 
First Ajax Example
Ajax First Example,Ajax PHP Datetime Example,Free Ajax and PHP Example Ajax First Example - Print Date and Time               
 
First Window
Java: Example - First Window Java NotesExample - First Window This is about the simplest GUI..., and will appear in the top left corner of the screen, so you may not see it at first
 
Replacing the first subsequence of the input
Replacing the first subsequence of the input Replacing the first subsequence of the input   ... describes the way to replace only the first subsequence of the String using regular
 
First Step towards JDBC!
Versions From First To Latest         ... the database.    First Step towards JDBC  This article
 
Get first day of week
Get First Day of Week,Java First Day of Week Example,Getting First Day of Week in Java Get first day of week...; In this section, we will learn how to get the first day of  week in Java
 
Delete the First Child of the Root Node
Delete the First Child of the Root Node, XML,XML Tutorials,Online XML Tutorial,XML Help Tutorials Delete the First Child of the Root...;  This Example describes a method to Delete the first child
 
Writing your First WAP Application.
Writing your First WAP Application. function validateForm... First Application.Now... in WML (Wireless Markup Language). Now first of all we
 
Hello world (First java program)
First Java Program,Code of First Java Program,First Java Program for Beginners in Java Hello world (First java program... world program is the first step of java programming  language. Be careful
 
First Step towards JDBC
First Step towards JDBC! window.location="introduction.shtml"; We have moved to another page click here to go
 
Java Applet - Creating First Applet Example
First Java Applet,Create Applet in Java,First Applet Example in Java,Code of First Applet Program Java Applet - Creating First...;     Introduction First of all we will know about
 
Create First Program
Create First Program in Java Create First Program           ..., to start execution. First of all JVM calls the main method of a class and start
 
First Program - Do Nothing
Java: First Program - Do Nothing Prev: none | Next: Dialog Box Output Java NotesFirst Program - Do... with a first line that looks exactly like this. Like a class, the body
 
Writing First Hibernate Code
Writing First Hibernate Code Writing First... is the mapping for our contact table. Writing First Persistence Class Hibernate uses... to insert the data into database. We should first understand about the Hibernate's
 
OOP Tutorial [first draft]
: OOP Tutorial [first draft] Table of contents Introduction... String firstName; // First name public String lastName; // Last name...(null, "First name"); pupil.lastName = JOptionPane.showInputDialog(null
 
Running First Hibernate 3.0 Example
Running First Hibernate 3.0 Example Running First Hibernate 3.0 Example       ... showed you how to run the our first Hibernate 3.0 example.   
 
Hello world (First java program)
Hello world Hello world (First java program)             ... world program is the first step of java programming  language. Be careful when
 
GUI Tutorial I - FIRST DRAFT
Vanilla Java: GUI Tutorial First Draft Table of Contents GUI Tutorial I - FIRST DRAFT Table... you build your first GUI programs, I suggest you imitate the examples
 
Writing First Hello World application in JSP
; In this example we will show you how to create first web page on tomcat server...; instead of "hello.html". This one the simply exercise for your first
 
Programming: Flip Names
________________________________________ Write a program that reads a name in first last format and convert it to last first format (separated by a comma and blank). You may use... the blank, then use substring(...) to extract the first and last names
 
JRequisite - Requirement Management Tool
;      JRequisite 0.0.1 is released! The first
 
This series of progressive examples shows a typical pattern for building simple applications with a window.
Java: About Examples Java NotesAbout Examples This series of progressive examples shows a typical pattern for building simple applications with a window. Example - First Window shows
 
jQuery to Vertical Image Scroller
; In this first jQuery tutorial we will develop a  program that vertical image
 
jQuery to text changes with fading effect
; In this first jQuery tutorial we will develop a  program that  text
 
jQuery to Simple Image Scroller
; In this first jQuery tutorial we will develop a  program that simple  image
 
jQuery to Image Changes With Sliding Effect
; In this first jQuery tutorial we will develop a  program that 
 
jQuery to Image Magnifier
;          In this first
 
jQuery to Image Changes With Fading Effect
; In this first jQuery tutorial we will develop a  program that  images
 
Generate RDF file in Java
first RDF( Resource Description File). This example generates a  RDF file
 
jQuery to text changes with sliding effect
; In this first jQuery tutorial we will develop a  program that  text
 
jQuery to Auto Image Scroller
; In this first jQuery tutorial we will develop a  program that auto image scroller
 
Combine Name
, one for a first name and one for a last name. When the button is pressed, it formats them in the result field in the standard last name comma first name style...: Generates "Last, First" from separate parts. @author Fred Swartz @version
 
Creating Web application on tomcat server
Create your first Tomcat Web application Create your first Tomcat Web application       ... how to create first web application using Servlet on the tomcat server. 
 
Programming - Flip Name
, flipName, which has a string parameter which contains a name in last, first format. It should return the name in first last format as a string, or "ERROR
 
History of Web 3.0
;    History The term ?Web 3.0? was first coined by John Markoff of the New York Times in 2006, while it first appeared prominently
 
Example: Capitalize
the first letter upper case and the remainder lower case, and outputs it. The input... // Purpose: Make first letter upper case, remainder lower case. // Uses... firstLetter = inputWord.substring(0,1); // Get first letter String remainder
 
Exercise - Capitalize Words
which returns a string first letter in every word capitalized and every other letter in lowercase. Assume the first letter is any letter preceded... you're outside a word, it must be the first letter so it should be changed
 
Programming: Initials 2
________________________________________ Overview. Write a program that asks for a name, including both first.... Input. Ask the user for their first and last name, separated by a blank... separating the names. You can then use substring() to extract the first
 
Components
are: JLabel, JButton, and JTextField. Learn these first. Input Components
 
How to Throw Exceptions
; Before catching an exception it is must to be thrown first. This means... { static int  divide(int first,int second) throws MyException{ ...;can't be divided by zero"); return first/second
 
Source Mage GNU/Linux 0.9.6 is available now
stable PPC and x86. Our first stable PPC ISO release in a very long time... about the Source Mage GNU/Linux That's right, PPC! Our first stable PPC ISO
 
Blueprint
; Blueprint Software Modeler is one of the first commercial available UML
 
What are Chained Exceptions?
; Whenever in a program the first exception causes an another... by the first exception. Therefore chained exceptions help the programmer to know... from the information of first two method
 
Java - XPath Tutorial
In this example we have created an XML file "person.xml" first, which.... First of all we do need to load the document into DOM Document object. We have... this example follow these steps as mention below : First create and save an XML
 
Prime Number in Java
number. First of all we will define a class "Prime Number". Java I/O... for loop conditions first condition  as integer i=1, i< num and i
 
Java class in JSP
;   To use a Java class method in jsp first we need to import
 
Implementing Continue Statement In Java
statement. First all of define class "Continue". In this program used I/O
 
Calculating factorial in JRuby
first JRuby program" example you must be aware with the way to run JRuby
 
Dialog Box Output
to the first program, but it actually does something. The additional parts
 
Site navigation
 

 

Send your comments, Suggestions or Queries regarding this site at roseindia_net@yahoo.com.

Copyright © 2006. All rights reserved.