Here's a good summary of what those of us working on InfoCards are trying to do, written by Johannes Ernst of Netmesh and LID. At DIDW Microsoft released a whitepaper referencing InfoCards called Microsoft's Vision of an Identity Metasystem. But Johannes has zoomed in on a number of very interesting pieces in the puzzle – including how what we learned through metadirectory relates to the ideas in the identity metasystem, the web services protocols underlying it, and how an identity selector would work.
Personally, I'm really looking forward to the day I can put up a demo – this is a case of a system which is a whole lot easier to use than to describe. But Johannes has done a really good job of bridging that gap.
If you Google Microsoft's InfoCard, you mostly seem to find people asking “who can tell me more about InfoCard”, but very little actual answers. Here is what I've learned from public statements by Kim Cameron and other Microsoft people, and the public demo they did at Digital Identity World 2005. (Disclaimer: I may be wrong about some things, as I don't work for Microsoft. Also, I believe all of the information here is public. If I'm wrong on either count, please do let me know.)
To understand InfoCard, you need to understand Kim Cameron, InfoCard's architect. Kim is credited with being the, or at least one of the inventors of the concept of a meta-directory. A directory (as in corporate directory, LDAP, that kind of thing) is a special kind of database run by companies to manage information about their employees, such as their names, phone numbers, e-mail addresses, office locations, as well as computers, printers and sometimes access permissions to various applications or information. When companies started to deploy directories, very quickly multiple directories were found within the same company, and the question arose how those directories could be used together, because some directories would know information about some employees but not others, etc. The idea of a meta-directory is to have a piece of software that would appear just like any other directory, but that would pull its data from other directories. In other words: have your cake and eat it, too. Keep whatever directories you have, but make all their information appear in one place (coincidentally one of the core principles behind our NetMesh InfoGrid as well).
So when Kim decided to do something about digital identity, he used the same mindset that he used for the idea of a meta-directory, because he saw the same market conditions in this area: lots of incompatible digital identity systems, that prevent everybody from interacting with most other people just like stovepipe directory systems would prevent one person from accessing a printer defined in another. In the identity space, not only do we have Microsoft Passport, Liberty Alliance, SXIP, Identity Commons, and our LID, but thousands, or maybe far more, home-grown account and user registration systems. In Kim's view, while there may be advantages that one of those systems has versus others, the real problem is fragmentation of digital identity systems, just like fragmentation of directory systems back then. So the core idea for InfoCard is to be a meta-identity system, with the word “meta” meaning the same thing as it does in the term meta-directory system.
Another way saying the same thing would be by parallel with TCP/IP as the universal abstraction layer that abstracts away from things like Ethernet, but nevertheless depends on them. Using this analogy, we could think of InfoCard just like we do about TCP/IP (in relation to digital identity systems and Ethernet or WiFi, respectively).
Kim's hope that by having such an abstraction layer, such a big momma identity backplane (as Marc Canter puts it so memorably), we can get an explosion of identity-enabled new applications. And he adds another analogy: there was little innovation in graphics before there were commons APIs that developers could use to talk to any graphics card, but then it exploded, we got graphical user interfaces and all of that. Without that common API, the next level of innovation simply wasn't possible. He thinks that it will be the same about identity.
Before we get into the guts, let's list some more of the assumptions behind Infocard: (you should also read Kim's Laws of Identity which I won't cover here but which contain a lot more interesting assumptions)
- Kim believes that it has to be an entirely open system. My understanding is that Microsoft will find a license (I also understand they have not settled on one, in fact Kim is looking for input), that allows anybody to create any part or all of InfoCard themselves. Unlike some earlier rumors, InfoCard does not seem to be released as open source itself, but admittedly, that would really have surprised me.
- InfoCard is built entirely on the web services (WS-*) stack. Given that it is a very distributed system, this choice is understandable. Kim says that while not all WS technologies used in InfoCard have been blessed yet by suitable standards bodies, all of them are on the standards track already.
- Because of the need to combat phishing and other attacks where outside stuff (web pages, viruses popping up application windows etc.) pretends to be something else to the user, InfoCard will be anchored pretty deeply inside the Windows OS in a secure process space.
- The InfoCard like a virtual credit card or membership card metaphor is the central user interface metaphor.
- InfoCard only defines the “framework” protocols between the InfoCard client-piece (the one inside Windows), an identity provider, and a relying party (e.g. a website that requires identifying information). Lots of parties can be an identity provider or a relying party using many (all?) of today's identity systems which can plug into the InfoCard system by adding actual content into the defined messages.
Here is an example use case:
- An InfoCard-enabled user (e.g. one running the upcoming Windows Longhorn, or the downward-compatible release for XP) first signs up with one or more identity providers of their choice. That could be their ISP, their bank, a site like eBay, or Slashdot. This process is entirely outside of InfoCard, but of course the identity provider must support their part of the InfoCard protocol.
- The user visits an InfoCard-enabled relying website (such as an InfoCard-enabled Amazon) that requires certain identity information from the user, say, a shipping address. The website sends a web page which contains an HTML
OBJECT
tag, which triggers a DLL which invokes the InfoCard system.- The InfoCard system determines which personal information is requested by the website, and matches it to the identities (i.e. InfoCards) that are in possession of the user. It then displays those InfoCards to the user that are applicable, such as: driver's license (if the government was an InfoCard-enabled identity provider), or credit card from AMEX. Note that the InfoCard selector runs natively on the PC and is not downloaded.
- The user selects an InfoCard to use. The dialog shown takes over the entire Windows screen (similar to the Windows login / logout dialogs today) in order to reduce phishing. It would also be difficult for an attacked to bring up a screen that has the exact set of InfoCard pictures on it as the user owns, as the information about which cards the user has is stored securely in a secure area of Windows. As a result of the selection, the InfoCard process on the PC contacts the selected identity provider, and obtains essentially a signed XML document that contains the requested identity information. The signature comes from the identity provider.
- The InfoCard PC piece then forwards the obtained document to the relying party (the website).
- However, InfoCard does not describe the actual tokens flying around, thereby enabling other identity systems to plug in.
In order to accomplish this, InfoCard employs:
- SOAP
- WS-Addressing
- WS-MetadataExchange
- WS-Policy
- WS-Security
- WS-SecurityPolicy
- WS-Transfer
- WS-Trust
- XML Signature
- XML Encryption
Does this make sense do you? It does to me … Feel free to post back or contact me if I'm wrong or incomplete or you have questions or …