One part of .NET 3.0 that I haven’t written extensively about is Windows CardSpace (formerly ‘Infocard’). A new sandbox which allows you to experiment with CardSpace is a good reason to install the July CTP of .NET 3.0.
CardSpace is an ‘Identity Metasystem.’ What does that mean, and why would you want one?
In “real life,” you probably have a wallet full of cards that identify you in different ways: identities as conveyed by your passport, a credit card, and maybe a membership card for a place you rent movies. Each conveys a different subset of information about you, and that’s a good thing.
The online world is similar. Identity is a complex issue, and you wouldn’t want to have a single online identity. But the process of managing our “wallets” of multiple online identities could be made a whole lot easier (I mean, how many username/password combinations can you be expected to remember?!). Managing digital identity is what CardSpace is about.
CardSpace is not the “son of Passport.” Microsoft has said that Passport will be modified to act as one identity provider for CardSpace, but CardSpace has no dependency on Passport, and the identity provider that Passport will provide will not play any special role in the identity metasystem.
CardSpace’s identity metasystem is based on open protocols. Therefore, CardSpace-compatible software for its three roles — identity providers, relying parties, and identity selectors — can be built on any platform or device.
This excellent CardSpace overview article by David Chappell will help you get a handle on CardSpace quickly. It addresses both the ideology and technology behind CardSpace.
Kim Cameron’s Identity Blog is another superb resource. His site, built with PHP, allows you to authenticate using CardSpace. See the whitepapers on the side of his site for useful information.