|
YOUR FEEDBACK
Did you read today's front page stories & breaking news?
SYS-CON.TV SYS-CON.TV WEBCASTS |
MXDJ TOP LINKS YOU MUST CLICK ON ! .NET What Is .NET Passport?
What Is .NET Passport?
Jul. 30, 2002 12:00 AM
.NET Passport is a Microsoft-operated service that provides Internet authentication for Web sites, no matter what kind of devices they use for access. It provides reliable Internet authentication and allows users to sign in once to access a variety of .NET Passport-enabled Web sites. In addition, users can save time by using Passport data when registering at new Passport-enabled Web sites. Developers don't have to build and maintain custom authentication mechanisms - Microsoft does the work. Microsoft launched .NET Passport in 1999, and there are now more than 200 million .NET Passport accounts and over four billion authentications per month. As a precursor for future Web services, .NET Passport has allowed Microsoft to deal with problems of scalability, privacy, and security. Although it's sometimes been a rocky road, they probably now have a better idea of what to expect as they aggressively pursue other .NET Web services, such as the much-anticipated Microsoft .NET Alerts. Microsoft has stated that .NET Passport will be their Web service authentication solution for .NET. However, there's been an unexpectedly high degree of reluctance on the part of traditional Microsoft partners to deploy .NET Passport, citing customer concerns about Microsoft "owning" their personal data and the complexities of implementation. Since Microsoft realizes authentication is a key component in a Web services world, they're taking positive steps to redesign the .NET Passport service and allay some of these fears. Internet Authentication Single Sign-In Passport SSI solves this problem by allowing users to enter a minimal amount of personal information (name, address, e-mail address, and birth date) as well as a password for the Passport account, all of which is securely stored by Passport. With the exception of the Passport Express Purchase service, any additional data a site wants to collect must be maintained by that site. To log in to a Passport-enabled site, users present credentials to Passport (via the SSI interface) and get an encrypted ticket cookie containing a Passport Unique ID (PUID) that's decrypted by the site and used to authenticate them. When registering at a new Passport-enabled site, users simply verify that they have a Passport. The site then uses the personal information stored by Passport to create the new account. Users even control how much personal information is shared with the site (the minimum being just the PUID). SSI also provides an additional level of security in that partner sites never have access to the users' authentication information (Passport username and password); they receive only the PUID from Passport. Privacy Worries The .NET Passport Privacy Policy - posted on Microsoft's Passport site, www.passport.com - states that Microsoft will not "mine, rent, sell, publish, or share user data beyond what the users choose." They also claim they won't create and sell reports based on customer data. In an attempt to prove their commitment to consumer privacy, Microsoft has become a participant in the Safe Harbor Agreement, a binding group of privacy agreements in the U.S. and Europe that requires .NET Passport-enabled sites to comply with the Platform for Privacy Preferences Project (P3P). Microsoft also contractually requires that all partner sites that implement .NET Passport have a posted privacy statement, and these sites are also encouraged to register with an independent privacy-assurance group such as TRUSTe. Whether or not to trust Microsoft to fulfill these promises is up to the user. As one of the world's largest providers of end-user software and services, Microsoft has more to lose than anyone if they choose to violate their customer's privacy and trust. .NET Passport Security
While these changes have all been steps in the right direction, .NET Passport has a way to go. Fortunately, Microsoft has indicated that future versions will be based on the secure Kerberos v5 protocol, which will be described in greater detail later. The .NET Passport service will also likely be expanded to offer additional authentication mechanisms and security protocols to support digital certificates, smart cards, and even biometrics. The move to Kerberos technology alone will greatly increase the security of .NET Passport-enabled sites. In addition, .NET Passport will become one of many authentication services on the Internet that will compose a federated network of trust brokers based on forthcoming Web services security standards. What Is .NET Passport Today?
For more information on the .NET Passport SDK available today from MSDN, visit www.msdn.microsoft.com. How It Works 1. A user arrives at a .NET Passport- enabled site and requests an ASP page. 2. During creation of the page, an instance of the Passport Manager object is created that sends a request back to the user's browser to check for valid Passport cookies. 3. If these cookies can't be found (or when the site requires revalidation), the requested page loads with a sign-in link for Passport displayed. Otherwise, the sign-out link is displayed and the user is considered authenticated. 4. The user clicks the .NET Passport sign-in link to begin the authentication process and is redirected to the .NET Passport sign-in page. Generated by the Passport Manager object, the URL for this redirect contains query strings that pass both the assigned site ID of the Passport-enabled site and a return URL used to return to the site after authentication. 5. The Passport Login server checks whether the site ID and return URL are registered as partner sites. If so, a sign-in page is sent to the user's browser. If not, the authentication fails and the sign-in page is not displayed. 6. The user enters his or her .NET Passport login credentials on the sign-in page and the information is sent, via SSL, to the Passport Login server. 7. If the user can be positively authenticated by the Passport Login server, the server retrieves the user's PUID and Passport profile. 8. The Passport Login server creates the following three cookies that are encrypted using the partner site's encryption key and site ID: -Ticket cookie: Includes the PUID and a time stamp Note: For security, partner sites use the PUID rather than 9. These encrypted cookies are added as query 10. The browser re-creates the encrypted cookies on 11. Passport Manager at the partner site uses the site's
![]() It's interesting to note that in this version of Passport, no data is exchanged directly between the Web site and the Passport site. All data flows through requesting client. Passport Manager As we saw in the previous discussion, the Passport Manager object plays a crucial role in the authentication process. This COM-based object, installed on the partner sites' servers, is embedded as a server-side object once on each of the site's ASP pages. Passport Manager handles most of the Passport authentication logic with a minimal amount of site-specific programming in your ASP pages. The following shows the server-side ASP <OBJECT> tag used to embed the Passport Manager object:
<OBJECT RUNAT="SERVER" You could also create the same object in ASP using VBScript as:
<% Dim oPassportMgr Set oPassportMgr = Server.CreateObject("Passport.Manager") %>
In addition to the Passport Manager object, each page must include the .NET Passport logo that users click on to sign in and out of the service. When an ASP page is loaded, and after the Passport Manager object has been instantiated, .NET Passport checks the user's computer for the cookies it needs to determine the user's sign-in state. Based on the user's state, the appropriate .NET Passport logo image is downloaded and created on the page (the location of the logo is dictated by Microsoft). If a .NET Passport cookie isn't found on the user's machine, the sign-in logo is displayed. Listing 1 demonstrates how the logo is created on the page. For an unauthenticated user, Passport Manager generates the following HTML to create the sign-in link and logo on the page:
In this case, we've specified the URL returned after authentication as strReturnURL. If a return URL value isn't specified, the URL will be the default value set in the registry. In addition to the return URL, Passport supports a number of other parameters on the LogoTag2 method that allow developers to take more control over the login behavior of the Passport Manager, for example, forcing revalidation and specifying that an SSL connection must be used. The Passport Manager object should always be instantiated in page scope. Instantiating this object at the application or session scope can cause the Passport Manager to lose state for individual users. Passport also offers a solution for high-volume Web sites that experience performance problems when instantiating the Passport Manager at page scope. The Passport Factory object allows you to create Passport Manager Objects from a pool to improve performance. In addition to Passport Manager and Passport Factory, the .NET Passport SDK also ships with additional COM objects, including Passport FastAuth, Passport Crypt, and Passport LookupTable, that support additional .NET Passport functionalities. In an effort to extend Passport beyond the walls of Microsoft, the Passport Manager has been ported to Apache Web servers running on Linux, Solaris, AIX, HPUX, and FreeBSD. To learn more about these objects, see the Passport 2.1 SDK available from MSDN. Where .NET Passport Is Heading Indications from Microsoft are that upcoming versions of Passport will no longer be based on cookies and COM objects, but will have a true XML/SOAP Web services interface, which will make the service discoverable and easier to program against, especially for UNIX and Linux programmers. Implementation will go from a fairly complicated installation on your corporate servers to perhaps simply reading a WSDL file and being able to call the necessary Web services methods with the encrypted authentication information provided by your users. You'll even be able to accept tickets generated by a trusted, non-Passport authentication service. And best of all, implementing Web services security will follow XML-based standards. Other new initiatives Microsoft is embracing for its .NET Passport services include adding Kerberos encryption, making .NET Passport a federated service, and adopting new XML Web services standards and protocols. Kerberos v5 Encryption
![]() Federation Web Service Standards The Next Version of .NET Passport YOUR FEEDBACK
LATEST FLEX STORIES & POSTS
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
|
SYS-CON FEATURED WHITEPAPERS MOST READ THIS WEEK |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||