<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>informationcardruby Wiki &amp; Documentation Rss Feed</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home</link><description>informationcardruby Wiki Rss Description</description><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=23</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Project Home Page
&lt;/h2&gt;For everything Information Card Ruby, visit &lt;a href="http://www.informationcardruby.com" class="externalLink"&gt;http://www.informationcardruby.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; provides a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  and supporting library for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=462"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=461"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=468"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=445"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=463"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=464"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=447"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;A live demo can be found at: &lt;a href="https://www.informationcardruby.com/forums" class="externalLink"&gt;https://www.informationcardruby.com/forums&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &lt;a href="http://cruisecontrol.informationcardruby.com" class="externalLink"&gt;http://cruisecontrol.informationcardruby.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Where's the code?&lt;/b&gt;&lt;br /&gt;The code resides at &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; under the project &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll use CodePlex's wiki and RubyForge's issue tracker, mailing list and subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Fri, 06 Jul 2007 00:24:29 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070706122429A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=22</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Project Home Page
&lt;/h2&gt;For everything Information Card Ruby, visit &lt;a href="http://www.informationcardruby.com" class="externalLink"&gt;http://www.informationcardruby.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; provides a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  and supporting library for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=462"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=461"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=468"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=445"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=463"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=464"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=447"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;A live demo can be found at: &lt;a href="https://www.informationcardruby.com/forums" class="externalLink"&gt;https://www.informationcardruby.com/forums&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &lt;a href="http://cruisecontrol.informationcardruby.com" class="externalLink"&gt;http://cruisecontrol.informationcardruby.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Where's the code?&lt;/b&gt;&lt;br /&gt;The code resides at &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; under the project &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll use CodePlex's wiki and RubyForge's issue tracker, mailing list and subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt;
&lt;/div&gt;</description><author>jsallis</author><pubDate>Wed, 27 Jun 2007 17:35:04 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070627053504P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=21</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Project Home Page
&lt;/h2&gt;For everything Information Card Ruby, visit &lt;a href="http://www.informationcardruby.com" class="externalLink"&gt;http://www.informationcardruby.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; provides a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  and supporting library for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=462"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=461"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=468"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=445"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=463"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=464"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=447"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &lt;a href="http://cruisecontrol.informationcardruby.com" class="externalLink"&gt;http://cruisecontrol.informationcardruby.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;A live demo can be found at: &lt;a href="https://www.informationcardruby.com/forums" class="externalLink"&gt;https://www.informationcardruby.com/forums&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Where's the code?&lt;/b&gt;&lt;br /&gt;The code resides at &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; under the project &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll use CodePlex's wiki and RubyForge's issue tracker, mailing list and subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt;
&lt;/div&gt;</description><author>jsallis</author><pubDate>Wed, 27 Jun 2007 17:34:12 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070627053412P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=20</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Project Home Page
&lt;/h2&gt;For everything Information Card Ruby, visit &lt;a href="http://www.informationcardruby.com" class="externalLink"&gt;http://www.informationcardruby.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; provides a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  and supporting library for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=462"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=461"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=468"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=445"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=463"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=464"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=447"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &lt;a href="http://cruisecontrol.informationcardruby.com" class="externalLink"&gt;http://cruisecontrol.informationcardruby.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;A live demo can be found at: &lt;a href="https://www.informationcardruby.com/forums" class="externalLink"&gt;https://www.informationcardruby.com/forums&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Where's the code?&lt;/b&gt;&lt;br /&gt;The code resides at &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; under the project &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll use CodePlex's wiki and RubyForge's issue tracker, mailing list and subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12564" alt="red_banner_reflection.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:36:43 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070625063643P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=19</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Project Home Page
&lt;/h2&gt;For everything Information Card Ruby, visit &lt;a href="http://www.informationcardruby.com" class="externalLink"&gt;http://www.informationcardruby.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; provides a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  and supporting library for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=462"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=461"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=468"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=445"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=463"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=464"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=447"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &lt;a href="http://cruisecontrol.informationcardruby.com" class="externalLink"&gt;http://cruisecontrol.informationcardruby.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;A live demo of the code basecan be found at: &lt;a href="http://www.informationcardruby.com/demo" class="externalLink"&gt;http://www.informationcardruby.com/demo&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Where's the code?&lt;/b&gt;&lt;br /&gt;The code resides at &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; under the project &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll use CodePlex's wiki and RubyForge's issue tracker, mailing list and subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12564" alt="red_banner_reflection.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:34:45 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070625063445P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=18</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Project Home Page
&lt;/h2&gt;For everything Information Card Ruby, visit the &lt;a href="http://www.informationcardruby.com" class="externalLink"&gt;http://www.informationcardruby.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; provides a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  and supporting library for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=462"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=461"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=468"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=445"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=463"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=464"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=447"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &lt;a href="http://cruisecontrol.informationcardruby.com" class="externalLink"&gt;http://cruisecontrol.informationcardruby.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;A live demo of the code basecan be found at: &lt;a href="http://www.informationcardruby.com/demo" class="externalLink"&gt;http://www.informationcardruby.com/demo&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Where's the code?&lt;/b&gt;&lt;br /&gt;The code resides at &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; under the project &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll use CodePlex's wiki and RubyForge's issue tracker, mailing list and subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12564" alt="red_banner_reflection.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:29:29 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070625062929P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=17</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Project Home Page
&lt;/h2&gt;For everything Information Card Ruby, visit the &lt;a href="http://www.informationcardruby.com" class="externalLink"&gt;http://www.informationcardruby.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; aims to provide a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  and supporting library for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=462"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=461"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=468"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=445"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=463"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=464"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=447"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.  Top this off with a certificate. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;&lt;li&gt;A live demo of the code basecan be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Milestones&lt;/b&gt;&lt;br /&gt;We don't have a current release  yet, but we're working on it.  Below are some target dates we're aiming for.&lt;br /&gt;June 16th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4352"&gt;information_card_authentication 0.1.0&lt;/a&gt;&lt;br /&gt;June 29th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4353"&gt;information_card_authentication 0.2.0&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Fair enough, but where's the code?&lt;/b&gt;&lt;br /&gt;We don't have a release yet, and the code is still early in development.  As mentioned in the design goals, we're spiking the extraction of behaviors that we would like to see in a cardspace plugin/library.  The code will reside at &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; under the project &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  If it's looking a little bare at the moment, we appreciate your patience - but rest assured, the best is yet to come!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll leverage CodePlex's terrific issue tracker and release management to manage the project itself and RubyForge's subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Let's get it started!&lt;/b&gt;&lt;br /&gt;Now that we have a project home page, a pretty logo and talked the talk, it's probably about time we started to do some work.     No better time than the present, so let's make it happen!&lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12564" alt="red_banner_reflection.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:25:32 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070625062532P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=16</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Project Home Page
&lt;/h2&gt;For everything Information Card Ruby, visit the &lt;a href="www.informationcardruby.com" class="externalLink"&gt;www.informationcardruby.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; aims to provide a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  and supporting library for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=462"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=461"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=468"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=445"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=463"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=464"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=447"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.  Top this off with a certificate. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;&lt;li&gt;A live demo of the code basecan be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Milestones&lt;/b&gt;&lt;br /&gt;We don't have a current release  yet, but we're working on it.  Below are some target dates we're aiming for.&lt;br /&gt;June 16th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4352"&gt;information_card_authentication 0.1.0&lt;/a&gt;&lt;br /&gt;June 29th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4353"&gt;information_card_authentication 0.2.0&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Fair enough, but where's the code?&lt;/b&gt;&lt;br /&gt;We don't have a release yet, and the code is still early in development.  As mentioned in the design goals, we're spiking the extraction of behaviors that we would like to see in a cardspace plugin/library.  The code will reside at &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; under the project &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  If it's looking a little bare at the moment, we appreciate your patience - but rest assured, the best is yet to come!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll leverage CodePlex's terrific issue tracker and release management to manage the project itself and RubyForge's subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Let's get it started!&lt;/b&gt;&lt;br /&gt;Now that we have a project home page, a pretty logo and talked the talk, it's probably about time we started to do some work.     No better time than the present, so let's make it happen!&lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12564" alt="red_banner_reflection.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:24:54 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070625062454P</guid></item><item><title>UPDATED WIKI: Open source libraries</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Open source libraries&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
Orphaned page.&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Wed, 23 May 2007 01:51:58 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Open source libraries 20070523015158A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=15</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; aims to provide a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  and supporting library for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=462"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=461"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=468"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=445"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=463"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=464"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=447"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.  Top this off with a certificate. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;&lt;li&gt;A live demo of the code basecan be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Milestones&lt;/b&gt;&lt;br /&gt;We don't have a current release  yet, but we're working on it.  Below are some target dates we're aiming for.&lt;br /&gt;June 16th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4352"&gt;information_card_authentication 0.1.0&lt;/a&gt;&lt;br /&gt;June 29th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4353"&gt;information_card_authentication 0.2.0&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Fair enough, but where's the code?&lt;/b&gt;&lt;br /&gt;We don't have a release yet, and the code is still early in development.  As mentioned in the design goals, we're spiking the extraction of behaviors that we would like to see in a cardspace plugin/library.  The code will reside at &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; under the project &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  If it's looking a little bare at the moment, we appreciate your patience - but rest assured, the best is yet to come!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll leverage CodePlex's terrific issue tracker and release management to manage the project itself and RubyForge's subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Let's get it started!&lt;/b&gt;&lt;br /&gt;Now that we have a project home page, a pretty logo and talked the talk, it's probably about time we started to do some work.     No better time than the present, so let's make it happen!&lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12564" alt="red_banner_reflection.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Tue, 22 May 2007 21:26:39 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070522092639P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=14</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; aims to provide a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  and supporting library for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=462"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=461"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=468"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=445"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=463"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=464"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=447"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.  Top this off with a certificate. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Also, we're learning from and utilizing some  &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=open%20source%20libraries&amp;amp;referringTitle=Home"&gt;open source libraries&lt;/a&gt;.  Thank-you for making this world as better place - well, at least ours for sure!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;&lt;li&gt;A live demo of the code basecan be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Milestones&lt;/b&gt;&lt;br /&gt;We don't have a current release  yet, but we're working on it.  Below are some target dates we're aiming for.&lt;br /&gt;June 16th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4352"&gt;information_card_authentication 0.1.0&lt;/a&gt;&lt;br /&gt;June 29th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4353"&gt;information_card_authentication 0.2.0&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Fair enough, but where's the code?&lt;/b&gt;&lt;br /&gt;We don't have a release yet, and the code is still early in development.  As mentioned in the design goals, we're spiking the extraction of behaviors that we would like to see in a cardspace plugin/library.  The code will reside at &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; under the project &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  If it's looking a little bare at the moment, we appreciate your patience - but rest assured, the best is yet to come!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll leverage CodePlex's terrific issue tracker and release management to manage the project itself and RubyForge's subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Let's get it started!&lt;/b&gt;&lt;br /&gt;Now that we have a project home page, a pretty logo and talked the talk, it's probably about time we started to do some work.     No better time than the present, so let's make it happen!&lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12564" alt="red_banner_reflection.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Mon, 21 May 2007 05:00:15 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070521050015A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=13</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; aims to provide a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  and supporting library for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=462"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=461"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=468"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=445"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=463"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=464"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=447"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.  Top this off with a certificate. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Also, we're learning from and utilizing some  &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=open%20source%20libraries&amp;amp;referringTitle=Home"&gt;open source libraries&lt;/a&gt;.  Thank-you for making this world as better place - well, at least ours for sure!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;&lt;li&gt;A live demo of the code basecan be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Milestones&lt;/b&gt;&lt;br /&gt;We don't have a current release  yet, but we're working on it.  Below are some target dates we're aiming for.&lt;br /&gt;June 16th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4352"&gt;information_card_authentication 0.1.0&lt;/a&gt;&lt;br /&gt;June 29th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4353"&gt;information_card_authentication 0.2.0&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Fair enough, but where's the code?&lt;/b&gt;&lt;br /&gt;We don't have a release yet, and the code is still early in development.  As mentioned in the design goals, we're spiking the extraction of behaviors that we would like to see in a cardspace plugin/library.  The code will reside at &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; under the project &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  If it's looking a little bare at the moment, we appreciate your patience - but rest assured, the best is yet to come!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll leverage CodePlex's terrific issue tracker and release management to manage the project itself and RubyForge's subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Let's get it started!&lt;/b&gt;&lt;br /&gt;Now that we have a project home page, it's probably about time we started to do some work.     No better time than the present, let's make it happen!&lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12564" alt="red_banner_reflection.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Mon, 21 May 2007 04:57:23 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070521045723A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=12</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; aims to provide a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  and supporting library for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=462"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=461"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=468"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=445"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=463"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=464"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=447"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.  Top this off with a certificate. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Also, we're learning from and utilizing some  &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=open%20source%20libraries&amp;amp;referringTitle=Home"&gt;open source libraries&lt;/a&gt;.  Thank-you for making this world as better place - well, at least ours for sure!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;&lt;li&gt;A live demo of the code basecan be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Milestones&lt;/b&gt;&lt;br /&gt;We don't have a current release  yet, but we're working on it.  Below are some target dates we're aiming for.&lt;br /&gt;June 16th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4352"&gt;information_card_authentication 0.1.0&lt;/a&gt;&lt;br /&gt;June 29th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4353"&gt;information_card_authentication 0.2.0&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Fair enough, but where's the code?&lt;/b&gt;&lt;br /&gt;We don't have a release yet, and the code is still early in development.  As mentioned in the design goals, we're spiking the extraction of behaviors that we would like to see in a cardspace plugin/library.  The code will reside at: &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;RubyForge Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  If it's looking a little bare at the moment, we appreciate your patience - but rest assured, the best is yet to come!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll leverage CodePlex's terrific issue tracker and release management to manage the Information Card Ruby and RubyForge's subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Let's get it started!&lt;/b&gt;&lt;br /&gt;Now that we have a project home page, it's probably about time we started to do some work.     No better time than the present, let's make it happen!&lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12564" alt="red_banner_reflection.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Mon, 21 May 2007 04:55:08 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070521045508A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=11</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; aims to provide a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  and supporting library for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=462"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=461"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=468"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=445"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=463"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=464"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=447"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.  Top this off with a certificate. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Also, we're learning from and utilizing some  &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=open%20source%20libraries&amp;amp;referringTitle=Home"&gt;open source libraries&lt;/a&gt;.  Thank-you for making this world as better place - well, at least ours for sure!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;&lt;li&gt;A live demo of the code basecan be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Milestones&lt;/b&gt;&lt;br /&gt;We don't have a current release  yet, but we're working on it.  Below are some target dates we're aiming for.&lt;br /&gt;June 16th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4352"&gt;information_card_authentication 0.1.0&lt;/a&gt;&lt;br /&gt;June 29th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4353"&gt;information_card_authentication 0.2.0&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Fair enough, but where's the code?&lt;/b&gt;&lt;br /&gt;We don't have a release yet, and the code is still early in development.  As mentioned in the design goals, we're spiking the extraction of behaviors that we would like to see in a cardspace plugin/library.  The code will reside at: &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;RubyForge Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll leverage CodePlex's terrific issue tracker and release management to manage the Information Card Ruby and RubyForge's subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Let's get it started!&lt;/b&gt;&lt;br /&gt;Now that we have a project home page, it's probably about time we started to do some work.     No better time than the present, let's make it happen!&lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12564" alt="red_banner_reflection.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Mon, 21 May 2007 04:53:10 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070521045310A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=10</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; aims to provide a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  and supporting library for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=462"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=461"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=468"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=445"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=463"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=464"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=447"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.  Top this off with a certificate. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Also, we're learning from and utilizing some  &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=open%20source%20libraries&amp;amp;referringTitle=Home"&gt;open source libraries&lt;/a&gt;.  Thank-you for making this world as better place - well, at least ours for sure!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;&lt;li&gt;A live demo of the code basecan be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Milestones&lt;/b&gt;&lt;br /&gt;We don't have a current release  yet, but we're working on it.  Below are some target dates we're aiming for.&lt;br /&gt;June 16th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4352"&gt;information_card_authentication 0.1.0&lt;/a&gt;&lt;br /&gt;June 29th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4353"&gt;information_card_authentication 0.2.0&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Fair enough, but where's the code?&lt;/b&gt;&lt;br /&gt;As mentioned, we don't have a release yet, and the code is still early in development.  As mentioned in the design goals, we're spiking the extraction of behaviors that we would like to see in a cardspace plugin/library.  The code can be found at: &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;RubyForge Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll leverage CodePlex's terrific issue tracker and release management to manage the Information Card Ruby and RubyForge's subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Let's get it started!&lt;/b&gt;&lt;br /&gt;Now that we have a project home page, it's probably about time we started to do some work.     No better time than the present, let's make it happen!&lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12564" alt="red_banner_reflection.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Mon, 21 May 2007 01:59:48 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070521015948A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=9</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; aims to provide a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=462"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=461"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=468"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=445"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=463"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=464"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=447"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.  Top this off with a certificate. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Also, we're learning from and utilizing some  &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=open%20source%20libraries&amp;amp;referringTitle=Home"&gt;open source libraries&lt;/a&gt;.  Thank-you for making this world as better place - well, at least ours for sure!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;&lt;li&gt;A live demo of the code basecan be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Milestones&lt;/b&gt;&lt;br /&gt;We don't have a current release  yet, but we're working on it.  Below are some target dates we're aiming for.&lt;br /&gt;June 16th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4352"&gt;information_card_authentication 0.1.0&lt;/a&gt;&lt;br /&gt;June 29th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4353"&gt;information_card_authentication 0.2.0&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Fair enough, but where's the code?&lt;/b&gt;&lt;br /&gt;As mentioned, we don't have a release yet, and the code is still early in development.  As mentioned in the design goals, we're spiking the extraction of behaviors that we would like to see in a cardspace plugin/library.  The code can be found at: &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;RubyForge Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll leverage CodePlex's terrific issue tracker and release management to manage the Information Card Ruby and RubyForge's subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Let's get it started!&lt;/b&gt;&lt;br /&gt;Now that we have a project home page, it's probably about time we started to do some work.     No better time than the present, let's make it happen!&lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12555" alt="red_banner_reflection.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Mon, 21 May 2007 01:54:47 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070521015447A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=8</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; aims to provide a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2185"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2184"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2255"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2168"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2186"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2187"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2170"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2172"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.  Top this off with a certificate. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Also, we're learning from and utilizing some  &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=open%20source%20libraries&amp;amp;referringTitle=Home"&gt;open source libraries&lt;/a&gt;.  Thank-you for making this world as better place - well, at least ours for sure!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;&lt;li&gt;A live demo of the code basecan be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Milestones&lt;/b&gt;&lt;br /&gt;We don't have a current release  yet, but we're working on it.  Below are some target dates we're aiming for.&lt;br /&gt;June 16th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4352"&gt;information_card_authentication 0.1.0&lt;/a&gt;&lt;br /&gt;June 29th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4353"&gt;information_card_authentication 0.2.0&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Fair enough, but where's the code?&lt;/b&gt;&lt;br /&gt;As mentioned, we don't have a release yet, and the code is still early in development.  As mentioned in the design goals, we're spiking the extraction of behaviors that we would like to see in a cardspace plugin/library.  The code can be found at: &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;RubyForge Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll leverage CodePlex's terrific issue tracker and release management to manage the Information Card Ruby and RubyForge's subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Let's get it started!&lt;/b&gt;&lt;br /&gt;Now that we have a project home page, it's probably about time we started to do some work.     No better time than the present, let's make it happen!&lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12555" alt="red_banner_reflection.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Sun, 20 May 2007 21:43:04 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070520094304P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=7</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;Information Card &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; aims to provide a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12555" alt="red_banner_reflection.gif" /&gt;&lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2185"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2184"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2255"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2168"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2186"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2187"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2170"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2172"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.  Top this off with a certificate. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Also, we're learning from and utilizing some  &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=open%20source%20libraries&amp;amp;referringTitle=Home"&gt;open source libraries&lt;/a&gt;.  Thank-you for making this world as better place - well, at least ours for sure!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;&lt;li&gt;A live demo of the code basecan be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Milestones&lt;/b&gt;&lt;br /&gt;We don't have a current release  yet, but we're working on it.  Below are some target dates we're aiming for.&lt;br /&gt;June 16th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4352"&gt;information_card_authentication 0.1.0&lt;/a&gt;&lt;br /&gt;June 29th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4353"&gt;information_card_authentication 0.2.0&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Fair enough, but where's the code?&lt;/b&gt;&lt;br /&gt;As mentioned, we don't have a release yet, and the code is still early in development.  As mentioned in the design goals, we're spiking the extraction of behaviors that we would like to see in a cardspace plugin/library.  The code can be found at: &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;RubyForge Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll leverage CodePlex's terrific issue tracker and release management to manage the Information Card Ruby and RubyForge's subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Let's get it started!&lt;/b&gt;&lt;br /&gt;Now that we have a project home page, it's probably about time we started to do some work.     No better time than the present, let's make it happen!&lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12469" alt="logo_banner.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Sun, 20 May 2007 21:39:22 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070520093922P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=6</link><description>&lt;div class="wikidoc"&gt;
&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12555" alt="red_banner_reflection.gif" /&gt;&lt;br /&gt;&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;CardSpace &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; aims to provide a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2185"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2184"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2255"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2168"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2186"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2187"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2170"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2172"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.  Top this off with a certificate. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Also, we're learning from and utilizing some  &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=open%20source%20libraries&amp;amp;referringTitle=Home"&gt;open source libraries&lt;/a&gt;.  Thank-you for making this world as better place - well, at least ours for sure!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;&lt;li&gt;A live demo of the code basecan be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Milestones&lt;/b&gt;&lt;br /&gt;We don't have a current release  yet, but we're working on it.  Below are some target dates we're aiming for.&lt;br /&gt;June 16th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4352"&gt;information_card_authentication 0.1.0&lt;/a&gt;&lt;br /&gt;June 29th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4353"&gt;information_card_authentication 0.2.0&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Fair enough, but where's the code?&lt;/b&gt;&lt;br /&gt;As mentioned, we don't have a release yet, and the code is still early in development.  As mentioned in the design goals, we're spiking the extraction of behaviors that we would like to see in a cardspace plugin/library.  The code can be found at: &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;RubyForge Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll leverage CodePlex's terrific issue tracker and release management to manage the Information Card Ruby and RubyForge's subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Let's get it started!&lt;/b&gt;&lt;br /&gt;Now that we have a project home page, it's probably about time we started to do some work.     No better time than the present, let's make it happen!&lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12469" alt="logo_banner.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Sun, 20 May 2007 21:37:09 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070520093709P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Home&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;What is Information Card Ruby?&lt;/b&gt;&lt;br /&gt;CardSpace &lt;a href="http://www.ruby-lang.org/en/" class="externalLink"&gt;Ruby&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; aims to provide a &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins" class="externalLink"&gt;rails plugin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  for integrating &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; to your &lt;a href="http://www.rubyonrails.org/" class="externalLink"&gt;Ruby on Rails&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; relying party web application.  In the Identity Metasystem, an application that requests and consumes digital identities about an individual is called a relying party.  As we develop and learn from this project, Information Card Ruby will generate a developer guideline for integrating information cards to your rails website, much in the spirit of &lt;a href="http://cardspace.netfx3.com/files/folders/samples_rc_1/entry6000.aspx" class="externalLink"&gt; Accepting Information Cards to your ASP.NET site&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - if we have done the plugin right, this guideline will be short and sweet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Contributors&lt;/b&gt;&lt;br /&gt;Information Card Ruby is an open source collaboration project driven by: &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.thoughtworks.com" class="externalLink"&gt;ThoughtWorks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12470" alt="microsoft.gif" /&gt;  &lt;/th&gt;&lt;th&gt; &lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12471" alt="thoughtworks.png" /&gt; &lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;Microsoft is the project sponsor and being &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;CardSpace experts&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, provides architectural guidance and best practices in the Identity MetaSystem.&lt;/td&gt;&lt;td&gt; ThoughtWorks is actively involved in some of the world's &lt;a href="http://www.thoughtworks.com/ruby.html" class="externalLink"&gt;leading Ruby projects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and is excited to be driving the development on Information Card Ruby.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt; &lt;br /&gt;&lt;b&gt;What is CardSpace?&lt;/b&gt;&lt;br /&gt;In the Identity Metasystem, there are several players including the &lt;i&gt;user&lt;/i&gt;, the &lt;i&gt;identity selector&lt;/i&gt; and the &lt;i&gt;relying party&lt;/i&gt;.  This project allows a &lt;i&gt;relying party&lt;/i&gt; (your website) to accept and process information cards from a &lt;i&gt;user&lt;/i&gt;.    &lt;br /&gt; &lt;br /&gt;From &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;http://cardspace.netfx3.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&amp;quot;Windows CardSpace, formerly codenamed “InfoCard”,  is a piece of client software that enables users to provide their digital identity to online services in a simple, secure and trusted way. It is what is known as an &lt;i&gt;identity selector&lt;/i&gt;:  when a user – or subject – needs to authenticate to a website or a web service, CardSpace pops up a special security-hardened UI with a set of “cards”  for the user to choose from. Each card has some identity data associated with it – though this is not actually stored in the card – and has been given to the user by an identity provider such as their bank, employer or government. In fact, the user can also act as an identity provider – this is essentially what we do every time we register at a website. The CardSpace UI enables users to create Personal cards and associate a limited set of identity data. When the user chooses a card, a request in the form of a web service call goes to the relevant provider, and a signed and encrypted security token is returned containing the required information (e.g. credit limit, employer’s name and address, or perhaps a social security number). The user, in control of the flow of information at all times, then decides whether to release this information to the requesting online service. If the user approves then the token is sent on to this &lt;i&gt;relying party&lt;/i&gt; where the token is processed and the user is authenticated.&amp;quot;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Open Standards&lt;/b&gt;&lt;br /&gt;The Information Card model is built on open, &lt;a href="http://www.microsoft.com/interop/osp/default.mspx" class="externalLink"&gt;interoperable communication standards&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;  that have been implemented on Windows and other platforms.  Case in point, the relying party can be implemented in Ruby on Rails (that's us!).  For more information on interoperability, take a look at the &lt;a href="http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity-Selector-Interop-Profile-v1.pdf" class="externalLink"&gt;Identity Selector Interoperability Profile&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;The General Idea&lt;/b&gt;&lt;br /&gt;Lost in the Identity Metasystem? Need more information on information cards? No worries! Below is a diagram of a typical scenario to set your mental context - here, we have our star user Molly who would like to login into your rails application with her personal information card.  Note that this diagram is ultra simple and by no means correct - luckily for you, we have the good folks at Microsoft to provide us with the proper guidance at &lt;a href="http://cardspace.netfx3.com/" class="externalLink"&gt;cardspace.netfx.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12483" alt="flow_small.png" /&gt;&lt;br /&gt;Squinting? To view a larger image, click here: &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=The%20General%20Idea&amp;amp;referringTitle=Home"&gt;The General Idea&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;User Scenarios&lt;/b&gt;&lt;br /&gt;To get started, we have identified stories and tasks.  To help you get a feel for what we are working on, some are listed below:&lt;br /&gt; &lt;br /&gt;As a user, I would like to:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2185"&gt;Register for an account with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2184"&gt;Login with an information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2255"&gt;Associate an information card with his/her existing account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2168"&gt;Recover a lost information card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2186"&gt;Manage information cards associated with an account&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2187"&gt;Login with a conventional username &amp;amp; password&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Design goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2170"&gt;Provide a plugin to provide out-of-the-box information card authentication&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=2172"&gt;Provide documentation as to how to incorporate information cards to your website&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Provide a well tested plugin that so that fellow developers using it can sleep at night and stay up late at night contributing to it.&lt;/li&gt;&lt;li&gt;Simplicity.  From &lt;a href="http://safari.oreilly.com/0321483510" class="externalLink"&gt;James Adams&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on rails plugins, &amp;quot;It was the small mammals who survived when the the dinosaurs died out.&amp;quot;&lt;/li&gt;&lt;li&gt;Extract, don't expect it.  To achieve this simplicity that James describes, we're not going to start by building a plugin to handle every conceivable cardspace scenario.  Instead, we will first spike an application to authenticate personal information cards - we'll learn from it, immerse in it, be at one with the information card and then from there, extract out what makes sense.  Afterall, every piece of code just wants to have a purpose.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;br /&gt;To keep things simple, Information Card Ruby will only address &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=Personal%20Card&amp;amp;referringTitle=Home"&gt;personal information cards&lt;/a&gt; and SAML security tokens, as generated by Windows CardSpace. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Technical Notes&lt;/b&gt;&lt;br /&gt;To use cardspace with your rails application, you need the following:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SSL: The Windows CardSpace Identity Selector requires an SSL channel. To setup a Ruby on Rails website configured over HTTPS, an option is to setup an Apache SSL virtual host which proxies requests to your mongrel server or cluster.  Top this off with a certificate. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" class="externalLink"&gt;Internet Explorer 7&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (or FireFox with Cardspace plugin)&lt;/li&gt;&lt;li&gt;Windows Vista or Windows XP with &lt;a href="http://www.netfx3.com/" class="externalLink"&gt;.NET 3.0 Framework&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL: This project will use MySQL as the underlying database.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Also, we're learning from and utilizing some  &lt;a href="http://www.codeplex.com/informationcardruby/Wiki/View.aspx?title=open%20source%20libraries&amp;amp;referringTitle=Home"&gt;open source libraries&lt;/a&gt;.  Thank-you for making this world as better place - well, at least ours for sure!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;We believe in short feedback loops.  We want to deploy often and always know the status of our codebase. So, we have a live server which will run the latest codebase and a continuous integration server to tell us who to thank for fixing the build.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://cruisecontrolrb.thoughtworks.com/" class="externalLink"&gt;cruisecontrol.rb&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; server can be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;&lt;li&gt;A live demo of the code basecan be found at: &amp;lt;TBD, coming soon!&amp;gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;More importantly, let us know what you like and even more importantly, what you don't like! &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Milestones&lt;/b&gt;&lt;br /&gt;We don't have a current release  yet, but we're working on it.  Below are some target dates we're aiming for.&lt;br /&gt;June 16th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4352"&gt;information_card_authentication 0.1.0&lt;/a&gt;&lt;br /&gt;June 29th: &lt;a href="http://www.codeplex.com/informationcardruby/Release/ProjectReleases.aspx?ReleaseId=4353"&gt;information_card_authentication 0.2.0&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Fair enough, but where's the code?&lt;/b&gt;&lt;br /&gt;As mentioned, we don't have a release yet, and the code is still early in development.  As mentioned in the design goals, we're spiking the extraction of behaviors that we would like to see in a cardspace plugin/library.  The code can be found at: &lt;a href="http://rubyforge.org/projects/informationcard/" class="externalLink"&gt;RubyForge Information Card&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;CodePlex and RubyForge&lt;/b&gt;&lt;br /&gt;In bringing together platforms and technologies (it's truly a beautiful thing), there are naturally more choices, including the project home for open source projects - namely &lt;a href="http://www.codeplex.com" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.rubyforge.org" class="externalLink"&gt;RubyForge&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  The approach that we've taken is to use both.  We'll leverage CodePlex's terrific issue tracker and release management to manage the Information Card Ruby and RubyForge's subversion repository to house the codebase in &lt;a href="http://subversion.tigris.org/" class="externalLink"&gt;subversion&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  We'll try our very best not to duplicate information between the sites and make it intuitive where to find things.  We'd love to hear your comments or opinions as to what you would like to see!&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Let's get it started!&lt;/b&gt;&lt;br /&gt;Now that we have a project home page, it's probably about time we started to do some work.     No better time than the present, let's make it happen!&lt;br /&gt;&lt;img src="http://www.codeplex.com/informationcardruby/Project/FileDownload.aspx?DownloadId=12469" alt="logo_banner.gif" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>joepoon</author><pubDate>Sat, 19 May 2007 17:44:20 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070519054420P</guid></item></channel></rss>