<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>Information Card Ruby</title><link>http://www.codeplex.com/informationcardruby/Project/ProjectRss.aspx</link><description>Information card authentication plugin for Ruby on Rails relying parties.</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>CLOSED TASK: Logging strategy</title><link>http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=1013</link><description>Reminder to investigate the logging strategy for information card ruby.&lt;br/&gt;Comments: Migrating off of Codeplex</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:48:05 GMT</pubDate><guid isPermaLink="false">CLOSED TASK: Logging strategy 20070625064805P</guid></item><item><title>CLOSED FEATURE: Auto-populate user fields on registration with information card</title><link>http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=1012</link><description>As a user, it'd be nice if the fields (ex. username, email address) would populate from the claims in the information card (if present).&lt;br/&gt;Comments: Migrating off of Codeplex</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:48:04 GMT</pubDate><guid isPermaLink="false">CLOSED FEATURE: Auto-populate user fields on registration with information card 20070625064804P</guid></item><item><title>CLOSED TASK: Performance Review</title><link>http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=471</link><description>This is a reminder to review the performance - epescially when it comes to parsing &amp; examing the encrypted and SAML tokens.&lt;br/&gt;Comments: Migrating off of Codeplex</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:48:04 GMT</pubDate><guid isPermaLink="false">CLOSED TASK: Performance Review 20070625064804P</guid></item><item><title>CLOSED TASK: Security Review / Threat Model</title><link>http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=470</link><description>Examine the security vulnerabilities to exercise due diligence when providing a plugin/library that performs user authentication for sites.&lt;br/&gt;Comments: Migrating off of Codeplex</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:48:03 GMT</pubDate><guid isPermaLink="false">CLOSED TASK: Security Review / Threat Model 20070625064803P</guid></item><item><title>CLOSED TASK: Validate SAML Schema</title><link>http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=469</link><description>Should the SAML document be validated against a schema?&lt;br/&gt;&lt;br/&gt;Also, the schema does not allow "colons" in the AssertionID, yet the SAML tokens generated have "colons."&lt;br/&gt;Comments: Migrating off of Codeplex</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:48:01 GMT</pubDate><guid isPermaLink="false">CLOSED TASK: Validate SAML Schema 20070625064801P</guid></item><item><title>CLOSED TASK: Support encryption algorithms</title><link>http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=458</link><description>As a developer, I would like to support both http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p and http://www.w3.org/2001/04/xmlenc#rsa-1_5 algorithms for decrypting the incoming information card token.&lt;br/&gt;Comments: Migrating off of Codeplex</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:48:00 GMT</pubDate><guid isPermaLink="false">CLOSED TASK: Support encryption algorithms 20070625064800P</guid></item><item><title>CLOSED TASK: Support x509 certificates in SAML KeyInfo</title><link>http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=457</link><description>As a developer, I would like the library to support scenarios where the public key of the identity provider uses x509 certificates.&lt;br/&gt;Comments: Migrating off of Codeplex</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:47:59 GMT</pubDate><guid isPermaLink="false">CLOSED TASK: Support x509 certificates in SAML KeyInfo 20070625064759P</guid></item><item><title>CLOSED TASK: Protect against replay attacks</title><link>http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=456</link><description>As a developer, I would like the library to protect the end user from replay attacks (ensure that the assertion id has not been used within the same window before).&lt;br/&gt;Comments: Migrating off of Codeplex</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:47:58 GMT</pubDate><guid isPermaLink="false">CLOSED TASK: Protect against replay attacks 20070625064758P</guid></item><item><title>CLOSED FEATURE: Detect for information card enabled browser</title><link>http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=453</link><description>s a developer, I would like a mechanism for detecting if the user is using an information card enabled browser.&lt;br/&gt;&lt;br/&gt;Script code can detect browser support for Information Cards within Internet Explorer by testing the userAgent string to determine whether the browser version is greater than or equal to "MSIE 7.0". A second issue with Internet Explorer 7 is that the Information Card support might not be installed (because Microsoft .NET Framework 3.0 is not installed on the machine). This can be detected within the browser by using the "isInstalled" property on the Information Card OBJECT from scripting code. .NET 3.0 installation can be detected on web servers by testing whether the userAgent string contains ".NET CLR 3.0".&lt;br/&gt;&lt;br/&gt;For example, the userAgent string on a Windows XP machine using IE 7 and .NET 3.0 will contain at least these elements:&lt;br/&gt;&lt;br/&gt;MSIE 7.0; Windows NT 5.1; .NET CLR 3.0.04506.30&lt;br/&gt;Comments: Migrating off of Codeplex</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:47:58 GMT</pubDate><guid isPermaLink="false">CLOSED FEATURE: Detect for information card enabled browser 20070625064758P</guid></item><item><title>CLOSED FEATURE: Specify policy via XHTML Syntax</title><link>http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=452</link><description>As a developer, I would like the option of specifying the security policy via XHTML syntax (as opposed to OBJECT tags) to handle the scenarios where OBJECT tags are not supported.&lt;br/&gt;Comments: Migrating off of Codeplex</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:47:57 GMT</pubDate><guid isPermaLink="false">CLOSED FEATURE: Specify policy via XHTML Syntax 20070625064757P</guid></item><item><title>CLOSED FEATURE: Specify policy via WS-SecurityPolicy</title><link>http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=451</link><description>As a developer, I would like to specify the security policy via WS-SecurityPolicy.&lt;br/&gt;&lt;br/&gt;The most straight forward way to specify the policy is via HTML extensions which signal to the browser when to invoke the Identity Selector.&lt;br/&gt;&lt;br/&gt;http://msdn2.microsoft.com/en-us/library/aa480726.aspx&lt;br/&gt;Comments: Migrating off of Codeplex</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:47:57 GMT</pubDate><guid isPermaLink="false">CLOSED FEATURE: Specify policy via WS-SecurityPolicy 20070625064757P</guid></item><item><title>CLOSED FEATURE: Guideline for integrating library / plugin to your rails site</title><link>http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=450</link><description>As a developer, I would like to have a guideline as to how to support information cards on my rails site.&lt;br/&gt;Comments: Migrating off of Codeplex</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:47:56 GMT</pubDate><guid isPermaLink="false">CLOSED FEATURE: Guideline for integrating library / plugin to your rails site 20070625064756P</guid></item><item><title>CLOSED TASK: Generate unique ID from SAML token</title><link>http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=432</link><description>As a developer, I would like for the SAML token to provide me a unique ID such that I can identify this user in the database.&lt;br/&gt;&lt;br/&gt;To identify a user, a unique id will be generated from the received SAML token. This could be generated from as hash of the Issuer's key + PPID (Identification Claim type).&lt;br/&gt;&lt;br/&gt;A question that is up for discussion is what happens if the PPID is not a required claim?  What would the uniqueID resolve to?&lt;br/&gt;Comments: Migrating off of Codeplex</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:47:53 GMT</pubDate><guid isPermaLink="false">CLOSED TASK: Generate unique ID from SAML token 20070625064753P</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>COMMENTED FEATURE: Specify policy via XHTML Syntax</title><link>http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=452</link><description>As a developer, I would like the option of specifying the security policy via XHTML syntax (as opposed to OBJECT tags) to handle the scenarios where OBJECT tags are not supported.&lt;br/&gt;Comments: Moved from deleted structure information_card_authentication 0.2.0</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:32:14 GMT</pubDate><guid isPermaLink="false">COMMENTED FEATURE: Specify policy via XHTML Syntax 20070625063214P</guid></item><item><title>COMMENTED FEATURE: Detect for information card enabled browser</title><link>http://www.codeplex.com/informationcardruby/WorkItem/View.aspx?WorkItemId=453</link><description>s a developer, I would like a mechanism for detecting if the user is using an information card enabled browser.&lt;br/&gt;&lt;br/&gt;Script code can detect browser support for Information Cards within Internet Explorer by testing the userAgent string to determine whether the browser version is greater than or equal to "MSIE 7.0". A second issue with Internet Explorer 7 is that the Information Card support might not be installed (because Microsoft .NET Framework 3.0 is not installed on the machine). This can be detected within the browser by using the "isInstalled" property on the Information Card OBJECT from scripting code. .NET 3.0 installation can be detected on web servers by testing whether the userAgent string contains ".NET CLR 3.0".&lt;br/&gt;&lt;br/&gt;For example, the userAgent string on a Windows XP machine using IE 7 and .NET 3.0 will contain at least these elements:&lt;br/&gt;&lt;br/&gt;MSIE 7.0; Windows NT 5.1; .NET CLR 3.0.04506.30&lt;br/&gt;Comments: Moved from deleted structure information_card_authentication 0.2.0</description><author>joepoon</author><pubDate>Mon, 25 Jun 2007 18:32:14 GMT</pubDate><guid isPermaLink="false">COMMENTED FEATURE: Detect for information card enabled browser 20070625063214P</guid></item></channel></rss>