
The way people use the Internet has changed a great deal over the years since the technologies that drive it were originally developed. For example,
HTTP -- those letters forming the beginning of most website addresses -- is the protocol or language that your Web browser uses to request pages from a site. It was
originally defined back in 1991, when the Web was just an idea and Google wouldn't be founded for another
seven years.
HTTP is called a
stateless protocol because it's a simple language that consists of a single request and response. Your browser asks a Web server for something -- like a page or an image -- and when the server delivers the goods, the transaction is over. The connection is closed. That worked fine in the days when a "page" was all there was. But these days, many
websites offer sophisticated systems that let you log in to access
personal content, uniquely tied to your browsing session. How is this possible when there's no connection between one HTTP request and another? How does Amazon.com attach your shopping cart to you and not a user in Singapore?
This is where the strangely-named "cookie" enters the picture. Cookies are little chunks of information that your browser sends back to the server that created them on each request. They don't have much flavor, but they're responsible for making the Web as we know it work. But there's a problem -- if you read the sentence above carefully, you'll notice that a cookie can only be sent back to the server that first created it. That's a very important limitation -- otherwise this blog could read your cookie from Amazon.com and see all the Christmas presents on your wish list.

However, this limitation can be pretty inconvenient at times. CWS supports several separate but related websites for
Mayo Collaborative Services, and all of them have some content that's only accessible to registered users. When people bounce from one site to another, logging in repeatedly gets old -- and
frustrating users is the last thing a Web developer wants to do. It would be immensely helpful to create a transparent experience across all these sites. Once a user logged in, he or she would be authorized everywhere.
We've recently finished deploying a system that does exactly that. Several issues made it a challenging process. First, some people have different levels of access to different sites, so just logging in isn't enough. Specific roles needed to be managed. Second, the login systems of these sites are written in
different languages, so the integrated system needed to communicate seamlessly with both.
The solution we developed uses
SAML 2.0 (Security Assertion Markup Language), an open standard for different systems to exchange statements about authentication. SAML has
heavy support from the
enterprise software industry, and it was a perfect fit for our needs -- it's secure, very flexible, and because it's XML-based, it integrates well with just about any platform.
Altogether, five different
Web applications with a large user base have now been pulled together under one elegant system. Users only log in once and can subsequently reach every resource they need without further interruption. This kind of integration also makes it much easier for administrators to
analyze traffic patterns across sites, so the benefits run both ways.
CWS is a leading provider of Web-based applications. If we can help you design an effective solution to a challenging problem,
contact us today.
Labels: applications, mayo, programming, saml, security