A few articles have written about InfoCard in the past few months; now it's your chance to get a sneak peak of InfoCard. First, I recommend reading these two articles: Microsoft Vision of Identity System and The Laws of Identity. I also enjoy reading Kim Cameron’s Identity Blog. Second, download Microsoft® Pre-Release Software Code Named “Avalon” and “Indigo”; it’s currently in RC Beta 1. If you’d like to do some programming with InfoCard (I promise to show you how, in subsequent postings), you may want to install either Beta2 release of Visual Studio 2005 or Beta2 release of Visual Studio Express. Optionally, we could also download WinFX RC Beta 1 SDK documentation and samples here; I warn you the SDK download is huge (351MB), and for InfoCard walkthroughs, this is not required.
Ready, set, go…
Once you complete the WinFX Runtime installation, you’re ready…
1. First, you must start “InfoCard Service” manually; you could use the command prompt: net start “InfoCard Service”. Note: this is Beta 1 behavior. In a subsequent beta release, it’s very likely that you don’t have worry about starting the InfoCard Service anymore.
2. Go to control panel, you will see a new control applet, call “Digital Identities” - double click it.
3. You will see the InfoCard Management UI. I’m going to warn you that this is a ‘wire frame’ UI, it is enough get basic ideas across, but it is no where close to the final UI, and it will be radically different in a subsequent beta release, so please don’t read too much into this.
What you see?
1. You see a separate, secured desktop was created.
2. UI that allows you to manage your digital identities. Note please do not confuse contact list/address book. Your digital identities are similar to what you have in your wallet (driver license, creditcards, membership club, frequent flier mile cards, student card, employee card, etc). You could also issue your own card, such as your own business card. Card issued by you is what we call self-issued card. In beta 1, we only support self issued card. In next beta release, we’ll include support for 3rd party issuers.
3. Each user profile has its own collection of cards. Let’s say you share your computer with your daughter; and you create two user accounts (one for you, one for her); her digital identity collection will be separate from yours.
4. You could use this UI to create, delete, edit your self-issued cards. A limitation in Beta 1 is you have to fill in all the fields, before a self-issued card can be created.
As described in the Identity Metasystem article, InfoCard plays a role as an Identity Selector in the identity metasystem universe. In addition to this, InfoCard, in Beta 1, also ships with a local security token service (more later…), which plays role as an identity provider. Others could easily build an Identity Provider that will interopt with InfoCard. Others could also play role as Relying Party (consuming the token); and others could play multiple roles.
What’s in the Card? The card (regardless of self-issued or issued by third party) contains only metadata information – the cards do not hold claim values (i.e your name, address, zip code, birthday). The metadata information has enough information for InfoCard System to communicate the Identity Provider to get the security token. So, who owns the data? Identity Provider; who consumes the data? Relying Party; and User, as the crucial player in the Identity Metasystem MUST approve the release of the data; and InfoCard’s role as the Identity Selector is to help the user communicating to Relying Party (RP) and Identity Provider(IP), as well as identity pickers for the user. An Identity Provider hosts a security token service (STS); the primary function of this service is to exchange a token for another token. Applies this to our model, InfoCard System will authenticate to IP; the IP who owns the data will construct a new security token to you that you can present to RP. As said previously, InfoCard also ships with a local STS, which is capable of producing self-issued tokens.
Well, it’s enough concepts for now; let’s explore the fun stuff (aka programming) later…