<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5001437836673181818</id><updated>2012-01-12T02:18:37.989-08:00</updated><category term='opensso openam information-card cardspace'/><category term='openid'/><category term='opensso ssotoken session properties'/><category term='OpenAM'/><category term='GRC'/><category term='Visualization'/><category term='PaaS'/><category term='cloud computing'/><category term='opensso geneva informationCards cardSpace i-card claims-based digitalIdentity identityManagement WAM IAM'/><category term='opensso'/><category term='opensso enterprise sun'/><category term='opensso geneva information-cards cardspace claims-based identity security WAM IAM'/><category term='Opensso Information Cards Digitial Identity CardSpace Net-ID 2009'/><category term='DevOps'/><category term='security'/><category term='opensso information-cards cardspace identity openinfocard authnicrp authnicip'/><category term='privacy'/><category term='HPC'/><category term='ForgeRock'/><category term='simpleSAMLphp'/><category term='SAML'/><category term='net-id 2009 opensso infocard'/><category term='Opscode Chef'/><category term='AWS'/><category term='opensso opends'/><category term='Drupal'/><category term='SaaS'/><category term='Amazon EC2'/><category term='IaaS'/><category term='Investissements d&apos;Avenir'/><category term='Magellan'/><category term='WAM'/><category term='OpenSSO ForgeRock OpenESB Liferay OpenAM'/><category term='identity'/><category term='XACML'/><category term='information-cards i-cards identity security privacy opensso openid'/><category term='CMS'/><category term='SPML'/><category term='Bull'/><category term='sla'/><category term='opensso clientsdk'/><category term='IAM'/><category term='Book'/><category term='risks'/><category term='HPCC'/><title type='text'>Patrick Petit's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-1178442022263287854</id><published>2011-12-21T04:39:00.000-08:00</published><updated>2011-12-21T04:43:09.843-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Magellan'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='Investissements d&apos;Avenir'/><category scheme='http://www.blogger.com/atom/ns#' term='Bull'/><category scheme='http://www.blogger.com/atom/ns#' term='HPCC'/><title type='text'>Projet Magellan pour le High Performance Cloud Computing (HPCC)</title><content type='html'>Donc voila, c'est parti pour le projet Magellan qui a été officiellement sélectionné par le gouvernement&amp;nbsp;le 16 décembre dernier&amp;nbsp;dans le cadre du programme Investissements d'Avenir, Appel à Projet #1&amp;nbsp;&amp;nbsp;du FSN&amp;nbsp;pour l'Informatique dans les nuages. Voir article Journal du Net sur les &lt;a href="http://www.journaldunet.com/solutions/systemes-reseaux/investissements-d-avenir-19-millions-d-euros-dans-le-cloud-1211.shtml"&gt;résultats de la selection&lt;/a&gt;. Mes débuts chez Bull&amp;nbsp;en tant qu'architecte et chef de file&amp;nbsp;ont été intenses pour mettre au point ce projet&amp;nbsp;et promettent de&amp;nbsp;l'être&amp;nbsp;plus encore en 2012 avec son démarrage effectif. Les autres partenaires du consortium incluent les sociétés ATEME et HPC-Project, l'Institut Telecom / Telecom Sud-Paris, &amp;nbsp;le CEA-List, Inria-Reso, l'EISTI, et OW2. L'objectif est de réaliser le prototype d'une plate-forme de calcul intensif en mode cloud sur une base hardware&amp;nbsp;&lt;a href="http://www.bull.com/extreme-computing/bullx.html"&gt;bullx Extreme Computing&lt;/a&gt; fournissant entre autres des&amp;nbsp;fonctionnalités&amp;nbsp;avancées de visualisation interactive à distance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-1178442022263287854?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/1178442022263287854/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=1178442022263287854' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/1178442022263287854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/1178442022263287854'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2011/12/projet-magellan-pour-le-high.html' title='Projet Magellan pour le High Performance Cloud Computing (HPCC)'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-2384569741749281722</id><published>2011-03-27T05:16:00.000-07:00</published><updated>2011-03-27T05:18:44.655-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensso'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='IAM'/><category scheme='http://www.blogger.com/atom/ns#' term='WAM'/><category scheme='http://www.blogger.com/atom/ns#' term='Book'/><title type='text'>OpenAM Book Review</title><content type='html'>&lt;span style="font-size: small;"&gt;The &lt;a href="http://link.packtpub.com/VhYpzC"&gt;OpenAM book&lt;/a&gt; by &lt;a href="http://indirat.wordpress.com/"&gt;Indira Thangasamy&lt;/a&gt;&lt;span style="font-family: Calibri;"&gt; comes as a new entrant in a series of books that deal with open source single-sign-on and web access management. The OpenAM book covers well the fundamental concepts, properties and core capabilities of the product with the eyes of a well qualified practitioner. From that respect, this makes this book special and worth reading for anybody who intends to use OpenAM/OpenSSO in a production environment. You will learn in great details how to deploy, configure and manage the product in a highly available and secured environment by using the administration console and the sometimes cryptic, yet powerful, &lt;i&gt;ssoadm&lt;/i&gt; command line interface. The book is easy to read and well organized. I don't think there are many other books on the market that go into as many real-world examples and nitty-gritty details about customizing the user experience through the console and schema of the configuration and identity stores. A dedicated chapter deals with how to federate identities with Google Apps and Salesforce.com services using SAML. This is of particular interest to those organizations which would like to externalize some of their business functions to the cloud without losing control over their &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;IT service &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;identities and access rights.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;I wish the author could have covered more of the &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Federation services as well as some of the new capabilities that were introduced in version 9 including the Entitlement Service and the Web Services and Secure Token Service.&amp;nbsp; That's definitely a prospect for a new edition to be written soon!&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-2384569741749281722?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/2384569741749281722/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=2384569741749281722' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/2384569741749281722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/2384569741749281722'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2011/03/openam-book-review.html' title='OpenAM Book Review'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-4131911611388616435</id><published>2011-01-28T06:20:00.000-08:00</published><updated>2011-01-28T06:20:20.971-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensso'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='IAM'/><title type='text'>The First OpenAM Book</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_LEGcWLZW8pc/TULE4mP1ZoI/AAAAAAAAAKU/qyWTeZnOXM0/s1600/-1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_LEGcWLZW8pc/TULE4mP1ZoI/AAAAAAAAAKU/qyWTeZnOXM0/s1600/-1.png" /&gt;&lt;/a&gt;&lt;/div&gt;I was kindly offered  by &lt;span style="font-family: Calibri;"&gt;&lt;a href="https://www.packtpub.com/"&gt;Packt Publishing&lt;/a&gt; &lt;/span&gt;to receive a free copy of the first &lt;a href="http://link.packtpub.com/VhYpzC"&gt;OpenAM book&lt;/a&gt; by &lt;a href="http://indirat.wordpress.com/"&gt;Indira Thangasamy&lt;/a&gt;&lt;span style="font-family: Calibri;"&gt; who's a former colleague at Sun Microsystems.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Calibri;"&gt;If you read my posts, you may have noticed that Identity and Access Management (IAM) and OpenSSO (&lt;/span&gt;the product name has changed from OpenSSO to OpenAM)&lt;span style="font-family: Calibri;"&gt; account for some of my favorite topics. I am hoping the book tackles some of nitty-gritty details of the product's features, which can be tricky sometimes and not always well document. In short, I can't wait to review the book and share my impressions in these very columns. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Calibri;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-4131911611388616435?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/4131911611388616435/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=4131911611388616435' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/4131911611388616435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/4131911611388616435'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2011/01/first-openam-book.html' title='The First OpenAM Book'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LEGcWLZW8pc/TULE4mP1ZoI/AAAAAAAAAKU/qyWTeZnOXM0/s72-c/-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-2513140391985195506</id><published>2010-12-16T08:13:00.000-08:00</published><updated>2010-12-16T10:52:54.474-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Opscode Chef'/><category scheme='http://www.blogger.com/atom/ns#' term='opensso'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='SAML'/><category scheme='http://www.blogger.com/atom/ns#' term='DevOps'/><category scheme='http://www.blogger.com/atom/ns#' term='simpleSAMLphp'/><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon EC2'/><category scheme='http://www.blogger.com/atom/ns#' term='AWS'/><title type='text'>Automated Delivery of an Identity-enabled Drupal in the AWS Cloud (Part 2)</title><content type='html'>This the second part of a two-part post that examines how to automatically create an identity-enabled business application in the &lt;a href="http://aws.amazon.com/"&gt;AWS cloud&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.patrickpetit.com/2010/12/automated-delivery-of-identity-enabled.html"&gt;first&lt;/a&gt; part discussed some rationals about the idea that open standards, &lt;a href="http://en.wikipedia.org/wiki/Free_and_open_source_software"&gt;free and open source software &lt;/a&gt;(FOSS),  and automated configuration management bring business agility and  better integration results than most one-size-fits-all identity  integration solutions when it comes to extending the reach of an  organization's authentication and access control policies outside of its  administrative domain. &lt;br /&gt;&lt;br /&gt;The second part intends to show how to effectively achieve this kind of integration with &lt;a href="http://drupal.org/about"&gt;Drupal&lt;/a&gt; - the well-known open source &lt;a href="http://en.wikipedia.org/wiki/Content_management_system"&gt;content management system&lt;/a&gt; (CMS), and &lt;a href="http://forgerock.com/openam.html"&gt;OpenAM&lt;/a&gt; - the  market leading open source authentication, authorization, entitlement  and federation product, and how the resulting identity integration can  be &lt;a href="http://www.agileweboperations.com/getting-started-with-the-opscode-chef-platform-configuration-management-in-the-cloud"&gt;automatically delivered&lt;/a&gt; into &lt;a href="http://aws.amazon.com/ec2/"&gt;Amazon EC2&lt;/a&gt; using the &lt;a href="http://opscode.com/chef"&gt;Opscode Chef&lt;/a&gt; tools and platform.&lt;br /&gt;&lt;br /&gt;Let's try to do some work now... &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Install and Configure Chef&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Your best bet to get Chef running on your workstation is to follow the Opscode's &lt;a href="http://help.opscode.com/faqs/start/how-to-get-started"&gt;How To Get Started Tutorial&lt;/a&gt;. You only need to complete &lt;a href="http://help.opscode.com/faqs/start/system-requirements"&gt;Step1&lt;/a&gt; and &lt;a href="http://help.opscode.com/faqs/start/user-environment"&gt;Step2&lt;/a&gt;. Creating a Chef client (Step3), at this point, is not necessary as we will do it "automagically" by using the &lt;i&gt;knife bootstrap&lt;/i&gt; command. &lt;br /&gt;&lt;br /&gt;After completing &lt;a href="http://help.opscode.com/faqs/start/user-environment"&gt;Step2&lt;/a&gt; you should have a Chef repository that you will need to manage your cookbooks.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Import the required cookbooks&lt;/b&gt;&lt;br /&gt;You need to download all the cookbooks that are in the dependency chain of the &lt;i&gt;simplesamlphp&lt;/i&gt; cookbook, which I created for this post. The&lt;i&gt; simplesamlphp&lt;/i&gt; cookbook has a direct dependency on the &lt;i&gt;drupal&lt;/i&gt; cookbook, which in turn has a direct dependency over several other cookbooks including php, apache2&amp;nbsp; cookbooks. In other words, all the cookbooks required to build a full all-in-one LAMP stack.&lt;br /&gt;&lt;br /&gt;You can download all these cookbooks separately from the &lt;a href="http://cookbooks.opscode.com/"&gt;Opscode's Cookbooks Repository&lt;/a&gt; or use &lt;i&gt;knife&lt;/i&gt;. The best practice in working with the Opscode Platform  is to always keep local copies of the cookbooks you are using in your  chef-repo.&lt;br /&gt;&lt;br /&gt;To import a cookbook with knife:&lt;br /&gt;$ cd ~/chef-repo&lt;br /&gt;$ knife cookbook site vendor cookbook-name&lt;br /&gt;&lt;br /&gt;This command downloads cookbook-name, and creates a  'vendor branch' for you, which enables you to make your own custom changes to  the cookbook and keep track of the differences between yours and the  upstream. You'll find that there is no &lt;i&gt;simplesamlphp&lt;/i&gt; cookbook in the &lt;a href="http://cookbooks.opscode.com/"&gt;Opscode's Coobooks Repository&lt;/a&gt;. That's normal because I didn't put it there since this cookbook is just a proof of concept for the post. You need to download it individually as well as a slightly modified version of the &lt;i&gt;cookbook for drupal&lt;/i&gt; from &lt;a href="https://github.com/ppetit/Chef-Repository"&gt;GitHub&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Modify &lt;i&gt;simplesamlphp&lt;/i&gt; cookbook&lt;/b&gt;&lt;br /&gt;If you intend to run the same setup against your own instance of OpenAM server, you'll need to modify the &lt;i&gt;simplesamlphp &lt;/i&gt;cookbook in oder to add the SAML v2 metadata descriptor of your own identity provider. For that you need to edit the file &lt;i&gt;saml20-idp-remote.php&lt;/i&gt; under &lt;i&gt;files&lt;/i&gt; and change the value of the &lt;i&gt;idpname&lt;/i&gt; and &lt;i&gt;idpid&lt;/i&gt; attributes within the &lt;i&gt;drupalsaml&lt;/i&gt; role accordingly.&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Upload all the cookbooks and roles&lt;/b&gt;&lt;br /&gt;After you have modified your cookbooks or not, you need to upload them in your organization that resides in the Opscode Platform:&lt;br /&gt;&lt;br /&gt;$ cd ~/chef-repo&lt;br /&gt;$ knife cookbook upload --all&lt;br /&gt;$ knife role from file roles/drupalsaml&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Bootstrap the Drupal Server Instance in EC2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Chef's knife bootstrap command allows to literally bootstrap a fully functional Drupal server in EC2 out of a vanilla linux distribution. In this demo I use an EBS-backed Ubuntu 10.04 LTS (Lucid Lynx) Server 32-bit distribution with AMI id '&lt;span class="value"&gt;ami-f4340180'.&lt;/span&gt;&lt;br /&gt;Don't forget to download the AWS key pair, for the AWS region you want to use, somewhere in your home directory (ex.  ~/.ssh/eu-west-1-keypair.pem).&lt;br /&gt;&lt;br /&gt;Launch a new EC2 instance from the &lt;a href="http://aws.amazon.com/"&gt;AWS Management Console&lt;/a&gt;. Once the instance is running, copy it's Pulic DNS URL obtained from the dashboard and past it into the&lt;i&gt; knife bootstrap&lt;/i&gt; command as shown below. Note the paramete&lt;span style="background-color: white;"&gt;r &lt;/span&gt;&lt;i&gt;&lt;span style="background-color: white;"&gt;-r 'role[drupalsaml]'&lt;/span&gt;&lt;/i&gt;&lt;span style="background-color: white;"&gt; that &lt;/span&gt;tells Chef to configure the instance as per the recipes and attributes defined in the&lt;i&gt; drupalsaml &lt;/i&gt;role. The bootstrap is displayed to the instance's console starting with the installation of Chef itself, followed by the automated installation and configuration of all the required components (i.e. Apache2, PHP,&amp;nbsp; OpenSSL, MySQL, Drupal, simpleSAMLphp, memcached, and sendmail).&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-size: x-small;"&gt;#&lt;span style="background-color: #9fc5e8;"&gt; knife bootstrap &lt;/span&gt;&lt;/span&gt;&lt;span class="value" style="background-color: #9fc5e8; font-size: x-small;"&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="background-color: #9fc5e8;"&gt; \&lt;br /&gt;&amp;gt; -r 'role[drupalsaml]' -i ../.ssh/eu-west-keypair.pem -x ubuntu --sudo&lt;/span&gt;INFO: &lt;span style="background-color: white;"&gt;Bootstrapping Chef on&lt;/span&gt;&lt;span style="background-color: white;"&gt; &lt;/span&gt;&lt;br /&gt;0% [Working]3-241.eu-west-1.compute.amazonaws.com &lt;br /&gt;Get: 1 http://security.ubuntu.com lucid-security Release.gpg [198B]&lt;br /&gt;Ign http://security.ubuntu.com/ubuntu/ lucid-security/main Translation-en_GB   &lt;br /&gt;96% [Connecting to eu-west-1.ec2.archive.ubuntu.com (10.224.74.112)]&lt;br /&gt;Ign http://security.ubuntu.com/ubuntu/ lucid-security/universe Translation-en_GB&lt;br /&gt;Get: 2 http://security.ubuntu.com lucid-security Release [38.5kB]   &lt;br /&gt;0% [Connecting to eu-west-1.ec2.archive.ubuntu.com (10.224.74.112)] [2 Release &lt;br /&gt;Hit http://eu-west-1.ec2.archive.ubuntu.com lucid Release.gpg                  &lt;br /&gt;&lt;br /&gt;[.....]&lt;br /&gt;&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com Successfully installed mixlib-authentication-1.1.4&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com Successfully installed mime-types-1.16&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com Successfully installed rest-client-1.6.1&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com Successfully installed bunny-0.6.0&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com Successfully installed abstract-1.0.0&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com Successfully installed erubis-2.6.6&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com Successfully installed moneta-0.6.0&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com Successfully installed highline-1.6.1&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com Successfully installed uuidtools-2.1.1&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com Successfully installed chef-0.9.12&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com 17 gems installed&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com [Wed, 15 Dec 2010 12:55:20 +0000] INFO: Client key /etc/chef/client.pem is not present - registering&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com [Wed, 15 Dec 2010 12:55:24 +0000] WARN: HTTP Request Returned 404 Not Found: Cannot load node ip-10-234-178-251.eu-west-1.compute.internal&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com [Wed, 15 Dec 2010 12:55:27 +0000] INFO: Setting the run_list to ["role[drupalsaml]"] from JSON&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com [Wed, 15 Dec 2010 12:55:29 +0000] &lt;span style="background-color: #9fc5e8;"&gt;INFO: Starting Chef Run (Version 0.9.12)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[.....]&lt;br /&gt;&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com [Wed, 15 Dec 2010 13:00:31 +0000] INFO: &lt;span style="background-color: #9fc5e8;"&gt;Navigate to 'http://ec2-46-51-163-241.eu-west-1.compute.amazonaws.com/install.php' to complete the drupal installation&lt;/span&gt;&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com [Wed, 15 Dec 2010 13:00:43 +0000] INFO: Chef Run complete in 314.902713 seconds&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com [Wed, 15 Dec 2010 13:00:43 +0000] INFO: cleaning the checksum cache&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com [Wed, 15 Dec 2010 13:00:43 +0000] INFO: Running report handlers&lt;br /&gt;ec2-46-51-163-241.eu-west-1.compute.amazonaws.com [Wed, 15 Dec 2010 13:00:43 +0000] INFO: Report handlers complete&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;A the end of the run, which in my case took about 5 minutes, you get a fully operational identity-enabled Drupal server instance federated with OpenAM. Note however, the message at the end of the configuration sequence:&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: white;"&gt;&lt;i&gt;Navigate to 'http://ec2-46-51-163-241.eu-west-1.compute.amazonaws.com/install.php' to complete the drupal installation.&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;This is because Drupal 6.x requires some manual configuration at the end of the installation. According to a conversation I had with &lt;a href="http://www.ducea.com/"&gt;Marius Ducea&lt;/a&gt;, who authored the &lt;a href="https://github.com/mdxp/cookbooks/tree/master/drupal/"&gt;cookbook for Drupal&lt;/a&gt;, that limitation should be removed with Drupal 7.&lt;br /&gt;&lt;br /&gt;It is assumed that there is an OpenAM 9.5 server running  somewhere in your data center or in the cloud. That OpenAM server must  be accessible from the newly created Drupal instance. In this demo, I have created an  OpenAM server in EC2 that is attached to an &lt;a href="http://aws.amazon.com/ec2/"&gt;Elastic IP&lt;/a&gt; (static IP address). Chef is also used in the OpenAM server to help with automatically importing the metadata descriptor of the SAML2 service providers that are started in the same Opscode's managed organization. A unique recipe for OpenAM is executed on a regular basis, by &lt;i&gt;chef-client&lt;/i&gt; running as a daemon, which only task is to search for any node that is assigned with the &lt;i&gt;drupalsaml &lt;/i&gt;role, then retrieve the location of the service provider metadata reading the &lt;i&gt;simplesamlphp.metadata&lt;/i&gt; attribute, to finally execute &lt;i&gt;ssoadm import-entity&lt;/i&gt; locally. The openam recipe is fairly straighforward.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-size: x-small;"&gt;sps = []&lt;br /&gt;url = String.new&lt;br /&gt;hostname = String.new&lt;br /&gt;&lt;br /&gt;search(:node, "role:drupalsaml") do |n|&lt;br /&gt;&amp;nbsp; sps &amp;lt;&amp;lt; n&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;sps.each do |n|&lt;br /&gt;&amp;nbsp; url = n['simplesamlphp']['metadata']&lt;br /&gt;&amp;nbsp; hostname = n['hostname']&lt;br /&gt;&lt;br /&gt;&amp;nbsp; if !url.nil? &amp;amp;&amp;amp; url.match(/^http/)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bash "download-entity-descriptor" do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user "root"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cwd "/tmp"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; code &amp;lt;&amp;lt;-EOH&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wget #{url}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EOH&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; only_if "/usr/bin/test ! -f /var/log/entities#{hostname}"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; execute "move_entity_descriptor" do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user "root"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command "mv /tmp/openam-idp /var/log/entities/#{hostname}"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; action :nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; execute "ssoadm_import_entity" do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; user "root"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command "/opt/openam/bin/ssoadm import-entity -u amadmin -f /opt/openam/password -m /tmp/openam-idp -t local"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notifies :run, resources("execute[move_entity_descriptor]")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;end&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;br /&gt;Now, you click on the screencast below to see how the identity federation between Drupal and OpenAM works in practice.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-e77d509fa1f4b68f" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v12.nonxt7.googlevideo.com/videoplayback?id%3De77d509fa1f4b68f%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330290281%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7C010B8324DF064483086EC2FD53A60114FF4EE6.5C3E6CFF78FEE4AD3C7AC1B6600BD660CDEBCE6F%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3De77d509fa1f4b68f%26offsetms%3D5000%26itag%3Dw160%26sigh%3DS_eJCBZPhFhsphE7NEjhOB8WcXw&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v12.nonxt7.googlevideo.com/videoplayback?id%3De77d509fa1f4b68f%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330290281%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7C010B8324DF064483086EC2FD53A60114FF4EE6.5C3E6CFF78FEE4AD3C7AC1B6600BD660CDEBCE6F%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3De77d509fa1f4b68f%26offsetms%3D5000%26itag%3Dw160%26sigh%3DS_eJCBZPhFhsphE7NEjhOB8WcXw&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-2513140391985195506?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/2513140391985195506/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=2513140391985195506' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/2513140391985195506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/2513140391985195506'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2010/12/automated-delivery-of-identity-enabled_16.html' title='Automated Delivery of an Identity-enabled Drupal in the AWS Cloud (Part 2)'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-8935910675224147711</id><published>2010-12-03T08:02:00.000-08:00</published><updated>2010-12-03T08:02:21.735-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IAM'/><category scheme='http://www.blogger.com/atom/ns#' term='SAML'/><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenAM'/><category scheme='http://www.blogger.com/atom/ns#' term='opensso'/><category scheme='http://www.blogger.com/atom/ns#' term='Opscode Chef'/><category scheme='http://www.blogger.com/atom/ns#' term='IaaS'/><category scheme='http://www.blogger.com/atom/ns#' term='DevOps'/><category scheme='http://www.blogger.com/atom/ns#' term='SaaS'/><category scheme='http://www.blogger.com/atom/ns#' term='simpleSAMLphp'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon EC2'/><category scheme='http://www.blogger.com/atom/ns#' term='ForgeRock'/><title type='text'>Automated Delivery of an Identity-enabled Drupal in the AWS Cloud (Part I)</title><content type='html'>This post is composed of two parts that examine how to automatically create an identity-enabled business application to the &lt;a href="http://aws.amazon.com/"&gt;AWS cloud&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The first part discusses the rationals behind the idea that open standards, &lt;a href="http://en.wikipedia.org/wiki/Free_and_open_source_software"&gt;free and open source software &lt;/a&gt;(FOSS), and automated configuration management bring business agility and better integration results than most one-size-fits-all identity integration solutions when it comes to extending the reach of an organization's authentication and access control policies outside its administrative domain. &lt;br /&gt;&lt;br /&gt;To illustrate that claim, the second part will show how to effectively achieve an integration between &lt;a href="http://drupal.org/about"&gt;Drupal&lt;/a&gt;-the well-known open source &lt;a href="http://en.wikipedia.org/wiki/Content_management_system"&gt;content management system&lt;/a&gt; (CMS), and &lt;a href="http://forgerock.com/openam.html"&gt;OpenAM&lt;/a&gt;-the market leading open source authentication, authorization, entitlement and federation product, and how the resulting identity integration can be &lt;a href="http://www.agileweboperations.com/getting-started-with-the-opscode-chef-platform-configuration-management-in-the-cloud"&gt;dynamically delivered&lt;/a&gt; in &lt;a href="http://aws.amazon.com/ec2/"&gt;Amazon EC2&lt;/a&gt; using the &lt;a href="http://opscode.com/chef"&gt;Opscode Chef&lt;/a&gt; tools and platform.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;The problem in a nutshell&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One of the main issues with creating new services in the AWS cloud, like any other public cloud, is that IT may loose control over who has access to what resources because the usual authentication and access control schemes that are commonly enforced within an organization's data center security perimeter may not be applicable in a multi-tenant environment. But IT surely needs to enforce authentication, sign-on (SSO), and access controls across the entire organization's IT services, so that, only those users that are properly authorized by IT are granted access, regardless of whether the application is running in-house or in the cloud. While centralized access control policies are relatively simple to support behind the enterprise's firewall, it is more difficult to support "in the wild" because IT has different types of control (or no control at all) over those software-as-a-service (SaaS) applications that are provided. As a result, compliance with regulations that mandate accountability for data security, privacy and auditing becomes challenging to achieve. Another challenge with moving an organization's business applications to a public cloud stands from the fact that IT doesn't want to duplicate identity and access management (IAM) information all over the place, as it may compromise security and the consistency of the organization's identity management system. In general, IT needs to leverage the identity information where they have it, meaning from within the organization's data center. Additional issues may arise from prohibiting the elasticity benefits of a cloud-operated infrastructure through locking users and applications in a more static compute environment that would prevent features like auto-scaling to work properly. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;The devil is always in the details &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Identity-enabling a business application, whether it is running on-premise or in a public cloud, almost always requires a fair amount of customization to address the nitty gritty details of an identity integration. I think this is because most business applications, regardless of how they are delivered, are almost never deployed out of the box, as is. If we take Drupal for example, the application does not work out-of-the-box in a &lt;a href="http://en.wikipedia.org/wiki/Security_Assertion_Markup_Language"&gt;SAML-based identity federation&lt;/a&gt; without requiring some significant customization. Note that I could also have taken the example of WordPress, Joomla, or MediaWiki. The same customization needs would apply.&lt;br /&gt;&lt;br /&gt;Why is that? Simply because many of those applications pre-date the standardization and more pervasive use of federated identity technologies such as SAML. Those applications were designed with a built-in user management support in mind that is tightly coupled with the application's core functions. For example, Drupal creates, at install time, a SQL user database that is built out of a proprietary schema. Drupal needs that database to compute and render customized contents when a user logs in. This unfortunate fact of a fractured identity management landscape is responsible for the proliferation of the so called identity silos that are "traditionally" addressed by expensive identity management software, which mitigate the mess through the deployment of synchronization connectors. With that understanding in mind, it is easy to understand why data security and access control issues rank among the top cloud computing's adoption concerns in customer surveys.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;No one-size-fits-all solution for the identity integration problem&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Some newly entering cloud security vendors promote an architectural approach that can address the identity and access management divide by extending the reach of an organization's authentication and access control schemes to a cloud through the use of a general-purpose HTTP traffic interposition artifact known as &lt;a href="http://www.symplified.com/main/what-we-do-for-you/products/WAM/saas-single-sign-on.html"&gt;HTTP Access Proxy Gateway&lt;/a&gt;. The role of an HTTP Access Proxy Gateway is to enforce user authentication and access control at the HTTP protocol level, somewhere in the cloud infrastructure, to protect access to resources. I would qualify this architectural approach as a one-size-fits-all solution, which in my opinion can hardy address the identity integration challenge, for business&amp;nbsp; applications like Drupal, because it doesn't address the problem deeply enough to be truly usable. As we have seen above, the identity integration challenge needs to be addressed at the application level, as opposed to the network level, so that the core functions of the application can be maintained. Another issue with the proxy approach is that it creates a performance bottleneck (i.e. every HTTP request must be intercepted and checked against a valid session), and a single point of failure, which altogether doesn't play well with high availability and auto-scaling objectives. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;A plug-in approach based on open standards and open source software&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The starting point of the reflection builds upon the fact that Drupal, for example, can be easily extended. In open source software, modularity is more a rule than an exception. Therefore, thanks to its modular design, Drupal can incorporate plug-ins (called modules) that can modify the behavior of a particular core function. For example, in Drupal 6.x, a module that implements the &lt;i&gt;hook_user&lt;/i&gt; API can alter the login / logout logic so that instead of getting a user's identity (i.e. email, first name, last name, ... attributes) from the database, the module can execute an authentication redirect to a trusted Identity Provider (idP) party, which in the end of the browser-based redirections choreography, returns a SAML assertion in the HTTP request. The assertion that is digitally signed is deciphered using the idP's public key to ensure that the user was properly authenticated against the organization's IAM authority. The SAML assertion contains the attributes of the user's identity that can be mapped to create (or update) a Drupal user account accordingly (if that account doesn't exist yet), and derive which role the user belongs to, and so, allows Drupal to enforce any role-based access control policy that may be defined.&lt;br /&gt;&lt;br /&gt;All this is possible with using world-class FOSS from the &lt;a href="http://simplesamlphp.org/"&gt;simpleSAMLPHP&lt;/a&gt; project, led by UNINETT, and the OpenAM project, led by &lt;a href="http://forgerock.com/"&gt;ForgeRock&lt;/a&gt; and the &lt;a href="http://opensso.dev.java.net/"&gt;OpenSSO&lt;/a&gt; community.&lt;br /&gt;&lt;br /&gt;The simpleSAMLphp project provides a native PHP application that supports the functions of a SAML V2 Service Provider (SP). In addition, simpleSAMLphp provides also a &lt;a href="https://ow.feide.no/simplesamlphp:drupal"&gt;Drupal 6.x module&lt;/a&gt; that implements the&lt;i&gt; &lt;a href="http://www.blogger.com/goog_1794459552"&gt;hook_user&lt;/a&gt;&lt;/i&gt;&lt;a href="http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hook_user/6"&gt; API&lt;/a&gt; that can redirect authentication requests to a SAML V2 compliant idP like OpenAM. OpenAM is the IAM Swiss Army Knife solution in that it can perform authentication protocol conversions between SAML and many other enterprise's authentication standards including, but not limited to, LDAP, Kerberos, X509 certificate, and Radius.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Automated delivery of the identity-enabled application to Amazon EC2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In a series of foundational articles "&lt;a href="http://news.cnet.com/8301-19413_3-10362278-240.html"&gt;Cloud computing and the big rethink&lt;/a&gt;", James Urquhart argues that with cloud computing, the very form of application delivery will change in that cloud-operated infrastructures and software development will play a major role. This comes from the need for more efficient application delivery and operations to address the accelerated need for new software functionality driven by end users. The most obvious place where this is happening is in the SaaS area. Cloud services that fall under this category are targeted at end users with specific business needs such as content management system (CMS) and customer relationship management (CRM). I think that this concept is particularly relevant to our identity integration case because it helps addressing the challenge of delivering compliant services in the cloud. As such, the creation of identity-enabled applications calls for a high level of automated operations so that the communicating parties can be properly and securely linked with no (or minimal) manual intervention.&lt;br /&gt;&lt;br /&gt;This is were the Opscode Chef framework comes into place. Chef allows to bootstrap a virtual machine instance in an infrastructure supported by the &lt;a href="http://www.opscode.com/blog/2010/06/21/opscode-unveils-commercial-platform/"&gt;Opscode Platform&lt;/a&gt; to dynamically install and configure all the software components that are required to run the identity-enabled application. The concept behind Opscode Chef is known as &lt;a href="http://www.jedi.be/blog/2010/02/12/what-is-this-devops-thing-anyway/"&gt;&lt;i&gt;DevOps&lt;/i&gt;&lt;/a&gt;. This concept contrasts with the static image building process in that software installation and configuration is performed at runtime by program. A software configuration can be tweaked incrementally until a machine's state matches the desired end state without having to re-bundle a new image every time a tiny change is applied. Then, configuration management becomes more like a software development project, and so, breaking the divide between IT operations and software development.&lt;br /&gt;&lt;br /&gt;With Opscode Chef, a configuration management task is called a &lt;a href="http://wiki.opscode.com/display/chef/Recipes"&gt;&lt;i&gt;recipe&lt;/i&gt;&lt;/a&gt;. It is written in a domain specific language (DSL) based on Ruby. Recipes can execute arbitrary Ruby code, but are mainly designed to execute actions on &lt;a href="http://wiki.opscode.com/display/chef/Resources"&gt;&lt;i&gt;resources&lt;/i&gt;&lt;/a&gt; that are an abstract representation of system resources like packages, directories and files. For example to install Apache2 on Linux, one would just have to insert this block in a recipe, or event better, execute the default recipe of the Apache2 &lt;a href="http://wiki.opscode.com/display/chef/Cookbooks"&gt;&lt;i&gt;cookbook&lt;/i&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;package "apache2" do&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case node[:platform]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; when "centos","redhat","fedora","suse"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    package_name "httpd"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;  when "debian","ubuntu"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    package_name "apache2"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;  end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;  action :install&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;end&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;br /&gt;Once the Apache2 package is installed on the target machine, further invocations of that recipe would not attempt to reinstall the package. This behavior is referred to as being &lt;i style="font-family: inherit;"&gt;idempotent&lt;/i&gt;&lt;span style="font-family: inherit;"&gt; meaning &lt;/span&gt;&lt;/span&gt;unchanged when multiplied against itself (in mathematics)&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;. Opscode Chef also uses the concept of &lt;/span&gt;&lt;a href="http://wiki.opscode.com/display/chef/Nodes"&gt;&lt;i style="font-family: inherit;"&gt;node&lt;/i&gt;&lt;/a&gt;&lt;span style="font-family: inherit;"&gt;, which can be associated with one or several &lt;/span&gt;&lt;a href="http://wiki.opscode.com/display/chef/Roles"&gt;&lt;i style="font-family: inherit;"&gt;roles&lt;/i&gt;&lt;/a&gt;&lt;span style="font-family: inherit;"&gt;, which themselves encapsulate runtime configuration parameters and a list of recipes to execute on the target machine. Recipes are packaged in a &lt;i&gt;cookbook&lt;/i&gt; whose successive versions are typically managed in a source code control system such as Git or Subversion.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Voila, that is all for today. After this rather lengthly, and hopefully not too boring introduction, the second part of this post will discuss the concrete details of how to do the integration and run the automated delivery of the identity-enabled Drupal.&lt;/span&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-8935910675224147711?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/8935910675224147711/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=8935910675224147711' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/8935910675224147711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/8935910675224147711'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2010/12/automated-delivery-of-identity-enabled.html' title='Automated Delivery of an Identity-enabled Drupal in the AWS Cloud (Part I)'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-7770617727555157749</id><published>2010-07-08T04:05:00.000-07:00</published><updated>2010-07-08T04:45:25.869-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensso openam information-card cardspace'/><title type='text'>Information Card Authentication Module on OpenAM</title><content type='html'>That was on my &lt;span style="font-style: italic;"&gt;todo&lt;/span&gt; list for a while so this morning I took couple hours to verify that the OpenSSO Information-Card Module (a.k.a Authnicrp) works properly on the latest version of OpenAM 9.5. It appears that after modifying the Information-Card-enabled login page (i.e. &lt;span style="font-style: italic;"&gt;infocard.jsp)&lt;/span&gt; to better reflect OpenAM's logotype graphics, everything worked out-of-the-box without a glitch meaning that OpenAM is 100% compatible with OpenSSO for that extension. The modification will be committed to OpenAM's subversion repository shortly. Below is a snapshot of what the login page looks like with that module.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LEGcWLZW8pc/TDW5vQAgo6I/AAAAAAAAAJc/zzES9U0ymuI/s1600/trash.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 265px;" src="http://1.bp.blogspot.com/_LEGcWLZW8pc/TDW5vQAgo6I/AAAAAAAAAJc/zzES9U0ymuI/s400/trash.jpg" alt="" id="BLOGGER_PHOTO_ID_5491499542050284450" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-7770617727555157749?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/7770617727555157749/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=7770617727555157749' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/7770617727555157749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/7770617727555157749'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2010/07/information-card-authentication-module.html' title='Information Card Authentication Module on OpenAM'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LEGcWLZW8pc/TDW5vQAgo6I/AAAAAAAAAJc/zzES9U0ymuI/s72-c/trash.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-8294763162913659564</id><published>2010-03-30T09:48:00.000-07:00</published><updated>2010-03-30T23:43:43.191-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IAM'/><category scheme='http://www.blogger.com/atom/ns#' term='GRC'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='sla'/><category scheme='http://www.blogger.com/atom/ns#' term='risks'/><title type='text'>Take-Away from Kuppinger Cole's Cloud Computing Security Foundations Virtual Conference (Part 2)</title><content type='html'>&lt;span style="font-style: italic;"&gt;Last week, on March 25-26, 2010  &lt;a href="http://www.kuppingercole.com/"&gt;Kuppinger Cole&lt;/a&gt; sponsored a virtual conference on the topic of the  Security Foundations for Cloud Computing. This Kuppinger Cole event has  been organized around six identity and security-related questions that  have been the subject of keynotes, panel discussions and analyst  viewpoints. What follow are my "augmented| take-away notes of these  viewpoints. In &lt;a href="http://www.patrickpetit.com/2010/03/take-away-from-kuppinger-coles-cloud.html"&gt;Part 1&lt;/a&gt; of this post, I focus on the question of the  "Cloud Computing security standards: which ones are already there and  which ones are missing?". Part 2 of this post focuses on Martin  Kuppinger's initial keynote around the question of "&lt;a href="http://www.kuppingercole.com/events/n40085"&gt;Cloud Computing, is  it really a risk?&lt;/a&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Let's start by the end of the talk that concludes by debunking some of Cloud Computing security myths.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The Cloud is not inherently insecure. It mainly depends upon the  provider's ability to do a proper job with the management of the  security threats.&lt;/li&gt;&lt;li&gt;Conversely, the Cloud is not more secure than internal IT. Again,  it depends on both the Cloud provider and internal IT expertise to deal  with security threats.&lt;/li&gt;&lt;li&gt;A few Cloud security issues are new. Most already exit in internal  IT and outsourced service providers.&lt;/li&gt;&lt;li&gt;Security is the problem of the Cloud provider only to the extent  that it falls within the scope of its service delivery description. For  example, an IaaS provider is not responsible for the security of the  hosted operating system. A PaaS provider is not responsible for the  security of the enterprise's data and applications. A SaaS provider is  not responsible for the enforcement of the enterprise's governance and  auditing policies.&lt;/li&gt;&lt;li&gt;We can store data outside of the EU zone, but careful  considerations must be taken with regard to the EU's data security and  privacy regulations enforced by the member states. For example, the EU  privacy laws have established regulations that prevent the disclosure of  sensitive personal information without explicit consent of the user to  countries outside of the EU who do not honor equivalent privacy laws. To  cope with this problem, some providers are now offering features to  enable sticky location of data in security zones and regions across  their distributed data centers&lt;/li&gt;&lt;li&gt;SAML unfortunately doesn't solve all the IAM issues in the Cloud.  It helps to solve secure authentication issues, but doesn't help much  with the larger problem of authorization.&lt;/li&gt;&lt;li&gt;It is somewhat true that security in the Cloud can't be measured.  In particular, auditing and risk metric logs are missing, due in part to  the lack of standardization, as described in Part 1 of this post,  although the situation should improve over time.&lt;br /&gt;  &lt;/li&gt;&lt;/ol&gt; CEOs and CIOs need to understand that Cloud Computing requires new  policies and new controls because it may give rise to new IT risks that  can have an operational and even strategic impact on the enterprise's  efficiency and effectiveness. Adopting Cloud Computing to externalize  computing resources poses the question of ascertaining opportunities  versus operational and strategic risks.&lt;br /&gt;&lt;br /&gt;When ascertaining Cloud security risks, we tend to think more of the  technology side of the issue rather than of the information side.  However, this way of thinking should be reversed because, in IT, the  technology is here to manage the information. Not the other way around.  Therefore, information should take precedence over technology when it  comes to assessing the security and risks associated with Cloud  Computing. For example, enterprises should start thinking about where  the information is and what it means from a security and risk management  perspective before moving to the Cloud. This eventually should help to  decide what kind of information can reside in a public Cloud versus what  kind of information should stay on-premises. Answering this question,  along with what services or applications use this information, should  also help to figure out which technology and Cloud provider can fulfill  the enterprise's data security and risks management requirements.  Another important consideration for CIOs at the beginning and along the  course of the service procurement process is how well the service  continuity and security requirements are met by the Cloud provider. The  risk that the Cloud provider does not fulfill these requirements should  be covered by the Service Level Agreement (SLA). Thus, a precise and  standard description of the service level in the SLA should constitute  the foundation of a risk mitigation strategy by looking at important  service procurement characteristics such as information location,  security of the transport, security of storage, authentication and  authorization of users, auditing interfaces, and privileged user  controls.&lt;br /&gt;&lt;br /&gt;So, yes there are risks involved in using Cloud services. Some are new  and some are old, although they can be exacerbated by the diversity and  multiplicity of the actors. But most risks associated with Cloud Computing  are well-known and not really new or specific to Cloud Computing.  Knowing these risks and understanding how well they are covered (or not  covered) through a detailed service description allows drawing risk  mitigation plans. Depending on the quality and expertise of the Cloud  provider, some internal security weaknesses can be reduced by  externalizing  the procurement of IT services. On the other hand, in  doing so, new risks can arise. The crucial point of the decision-making  process is to strike a fine balance between taking advantage of the  Cloud's numerous benefits in terms of cost cutting and improved business  agility, versus new risks arising from externalizing IT services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-8294763162913659564?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/8294763162913659564/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=8294763162913659564' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/8294763162913659564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/8294763162913659564'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2010/03/take-away-from-kuppinger-coles-cloud_30.html' title='Take-Away from Kuppinger Cole&apos;s Cloud Computing Security Foundations Virtual Conference (Part 2)'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-3450646164796228642</id><published>2010-03-29T10:15:00.000-07:00</published><updated>2010-03-31T00:00:48.489-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openid'/><category scheme='http://www.blogger.com/atom/ns#' term='IAM'/><category scheme='http://www.blogger.com/atom/ns#' term='SAML'/><category scheme='http://www.blogger.com/atom/ns#' term='PaaS'/><category scheme='http://www.blogger.com/atom/ns#' term='identity'/><category scheme='http://www.blogger.com/atom/ns#' term='GRC'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><category scheme='http://www.blogger.com/atom/ns#' term='opensso'/><category scheme='http://www.blogger.com/atom/ns#' term='IaaS'/><category scheme='http://www.blogger.com/atom/ns#' term='SaaS'/><category scheme='http://www.blogger.com/atom/ns#' term='XACML'/><category scheme='http://www.blogger.com/atom/ns#' term='SPML'/><title type='text'>Take-Away from Kuppinger Cole's Cloud Computing Security Foundations Virtual Conference (Part 1)</title><content type='html'>&lt;span style="font-style: italic; color: rgb(51, 51, 51);font-family:georgia;font-size:100%;"  &gt;Last week, on March 25-26, 2010 &lt;a href="http://www.kuppingercole.com/"&gt;Kuppinger Cole&lt;/a&gt; sponsored a virtual conference on the topic of the &lt;a href="http://www.kuppingercole.com/oldevents"&gt;Security Foundations for Cloud Computing&lt;/a&gt;. A much talked-about topic these days as the perceived lack of security in the Cloud is seen by some as a strong adoption inhibitor. For example, Gartner in "Top Five Cloud-Computing Adoption Inhibitors" claims that data security, and regulation non-compliance risks, rank amongst the top-five Cloud Computing inhibitors. Forrester in "How Secure is Your Cloud?" classifies CIOs' fears about Cloud Computing into three categories: Security and Privacy, Compliance and Other Legal and Contractual issues. We will see that to a certain extent these fears, uncertainties and doubts (FUD) around Cloud Computing have been overly emphasized. This Kuppinger Cole event has been organized around six identity and security-related questions that have been the subject of keynotes, panel discussions and analyst viewpoints. What follows are my take-away notes of these viewpoints. Part 1 of this post focuses on the question of the "&lt;a href="http://www.kuppingercole.com/events/n40086"&gt;Cloud Computing security standards. Which one are already there and which one are missing&lt;/a&gt;&lt;a href="http://www.kuppingercole.com/events/n40086"&gt;?&lt;/a&gt;"[1], &lt;a href="http://www.patrickpetit.com/2010/03/take-away-from-kuppinger-coles-cloud_30.html"&gt;Part 2&lt;/a&gt; will focus on Martin  Kuppinger's initial  keynote around the question of "&lt;a href="http://www.kuppingercole.com/events/n40085"&gt;Cloud Computing, is   it really a risk?&lt;/a&gt;"&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;The good news is that the identity security standards we need for the Cloud are already there, and  have been around for quite some time. The less good news is that Cloud Computing as a new industry is lagging behind in terms of these standards adoption and use compared to the traditional ITC industry. For example, access control standards are not being implemented by cloud providers as quickly and effectively as we would like. SaaS applications (e.g. Salesforce.com) as precursors of the Cloud Computing model are the driving forces toward SAML adoption. But in other segments, we see a gap in adoption that arises from the disconnection between XML-based standards and REST-based standards. There is a tendency for the enterprise world to focus on heavyweight, feature-rich, XML-based standards like SPML and SAML, whereas the Cloud world focuses more on lightweight REST-based standards and technologies such as OAuth and OpenID. This is viewed as a big disconnection between these two camps today. On the Web Services security front, WS-* protocols like WS-Trust are very much entrenched in the enterprise (e.g. Service Token Service (STS) in Geneva and OpenSSO/AM), whereas OAuth is more commonly used by SaaS providers. The Cloud Computing industry will have to decide which of these protocol families are going to be used; lightweight REST-based versus more advanced XML-based protocols. Enterprise security specialists are getting involved in this debate. The more advanced standards are seen more appropriate to the enterprise world. As such, we have seen Cloud providers implementing more heavyweight standards like SAML as a direct response to customer requirements. There will be ongoing debates around this question, but at the end of the day, the customer's point of view should win. As a matter of fact, it was suggested that the most effective leverage for standards adoption happens during the RFP contracting process where customers mandate specifically the support of SAML for example. It was noted that another standardization gap relates to the relative inability to get access to application audits and access logs in a coherent and secure way. This gap is rooted at the standardization bodies level defining auditing and access logs standards.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;SAML v2 is sufficient and a well-adapted standard for the support of identity federation. SPML, on the other hand (or something very much like SPML), is needed for identity provisioning in the Cloud. The lack of a provisioning standard support in the Cloud is a serious concern that providers must address now to get around the plight of proprietary connectors and custom developments. Also, there are some educational problems around SPML. It is not a well-known standard across the board as its specification does not follow the same "happy path" as the SAML specification.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;XACML standard adoption is more of a longer term issue and a more tricky concept for organizations to get their head around. The need for remote authorization in the Cloud will come at some point, but pressure on providers is a little further out. XACML is certainly sufficient for remote authorization in the Cloud and a very rich specification. However, business requirements aren't there yet for organizations to fully understand why they would need to externalize standards like this. There seems to be no generic use cases except perhaps in some vertical markets where specific security requirements call for remote authorization management.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Governance, risk management and compliance (GRC) in the Cloud is yet an even more complicated topic. It was suggested that the first place to go is not related to technology or standards, but to the framework of corporate policies. When trying to nail down cross-domain application relationships in the Cloud, you need a way of communicating requirements and policies at a higher level. At some point, there will be standards able to communicate that kind of information, but today it is hard to think of it as a standard. Risk management auditing is commonly happening more in isolation, in different places with different Cloud vendors implementing it their own way hoping it will become &lt;/span&gt;&lt;span style="font-style: italic;font-family:georgia;font-size:100%;"  &gt;the&lt;/span&gt;&lt;span style=";font-family:lucida grande;font-size:100%;"  &gt;&lt;span style="font-family:georgia;"&gt; standard. The best fall-back option may reside in control frameworks already in place in the enterprise such as &lt;/span&gt;&lt;a style="font-family: georgia;" href="http://fr.wikipedia.org/wiki/Cobit"&gt;COBIT&lt;/a&gt;&lt;span style="font-family:georgia;"&gt; or &lt;/span&gt;&lt;a style="font-family: georgia;" href="http://www.27000.org/"&gt;ISO 27000&lt;/a&gt;&lt;span style="font-family:georgia;"&gt; These norms are most relevant to IT and business service management  (ITSM) functions. However, the problem with these frameworks is that they are too broad and non-technical, hence leaving way to interpretations. COBIT provides standardized metrics for self-assessment and self-auditing that could be leveraged in technical standards for the Cloud.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Standards relevancy should be think through according to the three service models found in the Cloud - infrastructure-as-a service (IaaS),  platform-as-a-service (PaaS), and software-as-a-service (SaaS) - because these models cast different types of constraints. For example, SaaS and PaaS are black boxes from a security point of view, whereas IaaS is largely yours to apply the same security schemes and controls as you do in on-premises data centers. In any event, auditors are looking for continuity and formalization in  the way they apply assessment criteria for SOX or PCI compliance, for instance, regardless whether  applications run in the Cloud or on-premises.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Indeed, not all Cloud service models are equal from a security standardization adoption perspective. There are differences between IaaS, PaaS and SaaS  with regard to IAM, GRC and ITSM enablement. The key point is that the amount of control you get over your Cloud-based applications goes from one where you have almost complete control with IaaS, to one where you get almost no control - technically speaking - excepted at the data level with SaaS. The question one should ask from a security control changes point-off-view is that SaaS providers should at least provide controls for managing users and their access privileges. Getting control over access logs is a must, but difficult to achieve because of the lack of standards. As you go to the PaaS model, building an application with some level of control at the application logic level is your responsibility, but beyond that level, controls are kind of murky. With IaaS you might want to keep control over privileged users because they are those who get OS access in the VM. The main difference between IaaS and an on-premises infrastructure is that you can't go to the  bare-metal. The physical machine is a black box. Anything above that is your responsibility as you can control the entire software stack and, therefore, you should keep the same controls and security processes for applications running in an IaaS and applications running on-premises. However, even though there are differences in the way your applications run in the Cloud, the standards that are used for IAM and GRC should be consistent across the board regardless of the deployment model being used. That is not the case today. For example, getting SAML support in a public SaaS out of your technical control requires the provider to do it for you, whereas in IaaS, buidling SAML in your application is up to you. If you build it, you get it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;The Cloud has already affected the evolution of Web Services and SOA and standards around these technologies. For example, Salesforce.com already has more interactions with its Web Services API than it does in terms of browser interactions. Also we can see an increase of inter-cloud  interactions with mashups. We have gone from a unidirectional kind of interaction to a bi-directional interaction (i.e. inbound and outbound data transfers). Again, enterprises are focusing on WS* standards whereas the Cloud focuses more on REST-based APIs, for which there wasn't, until the advent of OAuth, a good standard for identify and data security. But there is still a little bit of flux. It is still too early to say which standard to use to secure Cloud-based services because Cloud management APIs haven't stabilized enough yet to positively say which WS* or REST style approaches will prevail. Also, the emergence of the Cloud is the best thing that can happen to SOA because it is bringing under the spot light a compelling service-oriented architectural paradigm.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Cloud computing vendors are adopting IAM security and GRC standards slowly. Too slowly according to the panelists. Customers should mandate for the support of these standards at procurement time as they are the biggest adoption drivers when dealing with SaaS offerings for instance. However, this is not slowing down Cloud Computing yet because INFOSEC people are just starting to think about the security aspects of Cloud Computing and auditors who have to measure the enterprise's ITC against corporate security policies and regulatory compliance are just starting to show interest in the Cloud.  These two groups will certainly start to have more influence over these problems to be addressed in a more timely and standardized manner. They will be one of the forcing factors to accelerate the deployment of these standards. At the end of day, Cloud Computing vendors will adopt established security standards only if there is a compelling business incentive for them (i.e. service differentiation, taking into account customer requirements) otherwise they won't. Therefore, the ITC security industry needs to keep pushing for this to happen in any possible way.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51);font-family:georgia;font-size:100%;"  &gt;&lt;span style="font-size:85%;"&gt;[1] Speakers: Matthew Gardiner - Director CA,  Patrick Harding - CTO Ping Identity, Martin Kuppinger - Kuppinger Cole&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-3450646164796228642?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/3450646164796228642/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=3450646164796228642' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/3450646164796228642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/3450646164796228642'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2010/03/take-away-from-kuppinger-coles-cloud.html' title='Take-Away from Kuppinger Cole&apos;s Cloud Computing Security Foundations Virtual Conference (Part 1)'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-3532152017950100104</id><published>2010-03-17T11:31:00.000-07:00</published><updated>2010-03-17T12:03:30.819-07:00</updated><title type='text'>Identity in the Cloud discussed at RSA Conference 2010</title><content type='html'>Data security and privacy threats is often spotted as inhibitor #1 against mainstream adoption of Cloud Computing. Personally, I think that this claim is too often overly emphasized. In reality, Cloud platforms may be safer than many in-house data centers for the simple reason that many IT departments underestimate or just don't understand security risks at the level big irons like Amazon, Rackspace and others do. Anyhow, for those who didn't get the chance to attend the RSA Conference 2010 (like me), here is the link of the CA keynote panel replay discussing identity in the Cloud. Enjoy!&lt;br /&gt;http://media.omediaweb.com/rsa2010/video-only.htm?id=2-5&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-3532152017950100104?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/3532152017950100104/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=3532152017950100104' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/3532152017950100104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/3532152017950100104'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2010/03/identity-in-cloud-discussed-at-rsa.html' title='Identity in the Cloud discussed at RSA Conference 2010'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-7634641500499185629</id><published>2010-02-02T03:22:00.000-08:00</published><updated>2010-02-02T04:04:48.266-08:00</updated><title type='text'>Update on OpenSSO Authnicip</title><content type='html'>&lt;h3 style="font-family: georgia;" class="post-title entry-title"&gt; &lt;/h3&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Last December I posted an article about the &lt;a href="https://opensso.dev.java.net/source/browse/opensso/extensions/authnicip/"&gt;OpenSSO's Authnicip&lt;/a&gt; extension module. That's the extension to issue Information Cards and Security Tokens to an Identity Selector. I said, the code doesn't compile anymore with the latest build of &lt;a href="http://code.google.com/p/openinfocard/"&gt;openinfocard&lt;/a&gt; and that I would try to fix it. This was easy enough, so I have done it to the best of my knowledge with no guaranty of course. However, I don't currently have the commit rights for this extension. So, until I figure that out, and for those who can't wait (I doubt it), I can send a tar file upon request.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-7634641500499185629?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/7634641500499185629/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=7634641500499185629' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/7634641500499185629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/7634641500499185629'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2010/02/update-on-opensso-authnicip.html' title='Update on OpenSSO Authnicip'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-2325368593929999308</id><published>2010-02-02T01:46:00.000-08:00</published><updated>2010-02-02T03:16:47.020-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSO ForgeRock OpenESB Liferay OpenAM'/><title type='text'>Don't say OpenSSO, say OpenAM</title><content type='html'>&lt;span style="font-family:georgia;"&gt;The news arrived on teletwitter yesterday... A new open-source shop headed by Lasse Andressen- Sun's former CTO for Central &amp;amp; Northern Europe-was born &lt;/span&gt;&lt;strong style="font-family: georgia; font-weight: normal;"&gt;February 1st, 2010&lt;/strong&gt;&lt;span style="font-family:georgia;"&gt; under the name of &lt;a href="http://www.forgerock.com/"&gt;ForgeRock&lt;/a&gt;. &lt;/span&gt;&lt;span style="font-family:georgia;"&gt;ForgeRock is apparently providing a "home" for OpenSSO, OpenESB and Liferay portal projects with the clever intend to ramp up the security integration stack&lt;/span&gt;&lt;span style="font-family:georgia;"&gt;. &lt;/span&gt;&lt;span style="font-family:georgia;"&gt;This is good news, not surprising, and certainly bound to happen following Oracle's announcement to pull "useful" parts (i.e. Fedlet, STS, Entitlement) out of OpenSSO to feed into Oblix without clearly indicating what's next with OpenSSO and its community. ForgeRock says "&lt;/span&gt;to be committed to the continued open development of OpenAM (understand OpenSSO) and aims to meet Sun's original product roadmap". That's great! &lt;span style="font-family:georgia;"&gt;Coupe things puzzle me though... How on Earth can they release OpenSSO Express Build 9 (re-branded &lt;/span&gt;&lt;span style="font-family:georgia;"&gt;OpenAM Build 9) today &lt;/span&gt;&lt;span style="font-family:georgia;"&gt;since the official bits aren't released yet? Or maybe they are, only we don't know it. And second, what engineering resources will they commit to continue the development on the basis of the OpenSSO's source tree? To be followed...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-2325368593929999308?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/2325368593929999308/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=2325368593929999308' title='8 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/2325368593929999308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/2325368593929999308'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2010/02/dont-say-opensso-say-openam.html' title='Don&apos;t say OpenSSO, say OpenAM'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-2585552282975513973</id><published>2009-11-23T01:41:00.000-08:00</published><updated>2009-11-23T02:11:52.924-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensso information-cards cardspace identity openinfocard authnicrp authnicip'/><title type='text'>How about the OpenSSO's Information Card Issuer?</title><content type='html'>How about OpenSSO as an Information Card issuer...? Some of you may have noticed the existence of an extension known as &lt;a href="https://opensso.dev.java.net/source/browse/opensso/extensions/authnicip/"&gt;Authnicip&lt;/a&gt; (for Information Cards Identity Provider) in the OpenSSO extension's source code repository... Wouldn't be cool to issue Information Cards with OpenSSO? That's what this module is aimed for. As for Authnicrp (for Information Cards Relying Party) the extension relies quite a bit upon the &lt;a href="http://code.google.com/p/openinfocard/"&gt;openinfocard&lt;/a&gt; project to deal with the lower level protocols of the &lt;a href="http://en.wikipedia.org/wiki/Identity_Metasystem"&gt;Identity Metasystem&lt;/a&gt;. It turns out that this code hasn't been update for 18 months, and that it doesn't compile with the latest version of openinfocard's library any more. A quick review of the code makes me optimistic that this issue can be fixed relatively easily. I'll keep you posted on my progress with some follow up articles that will explain how to use Authnicip in conjunction with Authnicrp, the Information Cards authentication module.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-2585552282975513973?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/2585552282975513973/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=2585552282975513973' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/2585552282975513973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/2585552282975513973'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2009/11/how-about-openssos-information-card.html' title='How about the OpenSSO&apos;s Information Card Issuer?'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-5209026927306062649</id><published>2009-11-18T08:19:00.000-08:00</published><updated>2009-11-19T07:38:00.311-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensso ssotoken session properties'/><title type='text'>OpenSSO SSOToken Standard Properties</title><content type='html'>That's a note for myself that can be useful to others... Thanks to Charles Wesley for the trick.&lt;br /&gt;Also, you can check this link : http://docs.sun.com/app/docs/doc/820-3748/adudc?a=view.&lt;br /&gt;Always look at the documentation before asking silly questions...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;CharSet: ex. "UTF-8"&lt;/li&gt;&lt;li&gt;UserId: ex "fb"&lt;/li&gt;&lt;li&gt;FullLoginURL: ex. "/opensso/UI/Login?module=LDAP"&lt;/li&gt;&lt;li&gt;successURL: ex. "/opensso/console"&lt;/li&gt;&lt;li&gt;cookieSupport: ex. "true"&lt;/li&gt;&lt;li&gt;AuthLevel:  Ex. "0"&lt;/li&gt;&lt;li&gt;SessionHandle: ex. "shandle:&lt;some&gt;"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;UserToken: ex. "upgradeuser"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;loginURL: ex.  "/opensso/UI/Login"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;IndexType: ex. "module_instance"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;Principals: ex. "uid=foobar,ou=people,dc=red,dc=iplanet,dc=com"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;moduleAuthTime: ex. "LDAP+2009-11-10T20:38:16Z|anon1+2009-11-10T20:37:44Z&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;amlbcookie: ex. "01"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;sun.am.UniversalIdentifier: ex. "id=foobar,ou=user,dc=red,dc=iplanet,dc=com"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;Organization: ex. "dc=red,dc=iplanet,dc=com"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;Locale: ex. "en_US"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;HostName: ex. "red.iplanet.com"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;com-iplanet-am-console-location-dn: ex. "dc=red,dc=iplanet,dc=com"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;AuthType: ex. value="LDAP|anon1"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;UserProfile: ex. "Required"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;Host: ex. "red.iplanet.com"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;clientType: ex. "genericHTML"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;AMCtxId: ex. "6747059ed30ea08a01"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;authInstant: ex. "2009-11-10T20:38:16Z"&lt;/some&gt;&lt;/li&gt;&lt;li&gt;&lt;some&gt;Principal: ex. "uid=upgradeuser,ou=people,dc=red,dc=iplanet,dc=com"&lt;/some&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-5209026927306062649?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/5209026927306062649/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=5209026927306062649' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/5209026927306062649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/5209026927306062649'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2009/11/opensso-ssotoken-standard-properties.html' title='OpenSSO SSOToken Standard Properties'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-6078432740847897308</id><published>2009-10-14T08:29:00.000-07:00</published><updated>2009-11-18T08:38:05.729-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensso geneva informationCards cardSpace i-card claims-based digitalIdentity identityManagement WAM IAM'/><title type='text'>Claims-based Identity in OpenSSO (Part III)</title><content type='html'>In &lt;a href="http://www.patrickpetit.com/2009/09/claims-based-identity-in-opensso-part.html"&gt;Claims-based Identity in OpenSSO (Part II)&lt;/a&gt; I talked about how to use an Information Card to sign-in within OpenSSO using the &lt;span style="font-style: italic;"&gt;ignore&lt;/span&gt; user profile.  In this post, I will show how the Information Card Module (a.k.a the Authnicrp Module ) and OpenSSO's core services can be configured to perform claims-based access control and self-provisioning actions using the &lt;span style="font-style: italic;"&gt;dynamic&lt;/span&gt; user profile. Simply put, the &lt;span style="font-style: italic;"&gt;required&lt;/span&gt; or &lt;span style="font-style: italic;"&gt;dynamic&lt;/span&gt; profiles require that an active user account exist in the OpenSSO's Identity Repository in order to authenticate a subject successfully, and this regardless of whether the subject's Information Card meets the security requirements  of the Relying Party (RP) or not.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Self-Provisioning&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;In addition, the &lt;span style="font-style: italic;"&gt;dynamic&lt;/span&gt; user profile allows for dynamically provision a new user account (when one doesn't exist or is not associated with an Information Card yet) using the Information Card's claims. As always, it is up to the subject to decide what optional claims can be shared or not with the RP during the sign-up process. This feature is referred to as claims-based self-provisioning, whereby the administrator defines claim to  attribute mapping rules as shown in the configuration pane below:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LEGcWLZW8pc/SwKDqWRZxII/AAAAAAAAAJI/Rt5bJgSdiAI/s1600/grab.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 138px;" src="http://3.bp.blogspot.com/_LEGcWLZW8pc/SwKDqWRZxII/AAAAAAAAAJI/Rt5bJgSdiAI/s400/grab.jpg" alt="" id="BLOGGER_PHOTO_ID_5405027266354332802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Exact mapping rules may differ from one Identity Repository to another. For example, OpenDS and Active Directory have significant different schemas, thus requiring different attribute names to Information Card claims mapping rules.&lt;br /&gt;&lt;br /&gt;In the &lt;span style="font-style: italic;"&gt;required&lt;/span&gt; or &lt;span style="font-style: italic;"&gt;dynamic&lt;/span&gt; profiles, the Authnicrp module link a user account with one or more Information Cards (when they are presented for the first time to the module) using the Personal Private Identifier (PPID). This association is performed under two conditions: 1) the user is successfully authenticated with regular username / password credentials or creates a new account, 2) the claims contained in the security token match the security requirements of the Relying Party (RP). Once the binding is completed, any Information Card associated with a user account can be used for sign-in, in lieu of the username / password credentials, until the card expires or is removed from the account.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Claims-based Access Control&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Authnicrp module offers also the possibility to link a self-provisioned user account with an LDAP group or role. This capability is achieved through the creation of a role-resolver-plug-in that is declared in the Authnicrp module's configuration pane as shown in the figure below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LEGcWLZW8pc/SwKLyvSC48I/AAAAAAAAAJQ/xRd4Bc45bA4/s1600/grab2.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 137px;" src="http://1.bp.blogspot.com/_LEGcWLZW8pc/SwKLyvSC48I/AAAAAAAAAJQ/xRd4Bc45bA4/s400/grab2.jpg" alt="" id="BLOGGER_PHOTO_ID_5405036206599889858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;In this case, the &lt;span style="font-style: italic;"&gt;ComeOfAge&lt;/span&gt;  plug-in is invoked by Authnicrp every time an Information Card is presented. The function of the plug-in is to return 'true' whenever the digital identity of the subject matches the criteria of &lt;span style="font-style: italic;"&gt;ComeOfAge&lt;/span&gt; role or 'false' otherwise. It is up to the developer of the role-resolver-plug-in to implement the matching logic that is appropriate.&lt;br /&gt;&lt;br /&gt;An administrator can set up as many role-resolver-plug-ins as necessary in a module instance for the task at hand. Each plug-in is invoked in sequence by the Authnicrp module. Typically, a role-resolver-plug-in implements the &lt;span style="font-style: italic;"&gt;RoleCheckPlugin&lt;/span&gt; interface that has only one method:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:lucida grande;"&gt;boolean isIdentityMatchingRole(InfocardIdentity identity, String role);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The two short videos below show the onscreen sign-in and sign-up experiences for a user of an Information Card. The browser window on the left points to a website protected by a Security Agent executing different security policies. The browser window on the right points to the OpenSSO's administration console.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;To access the protected.jsp resource, the user must be successfully authenticated&lt;br /&gt;&lt;/li&gt;&lt;li&gt;To access the comeOfAge.jsp resource, the user must be successfully authenticated and must possess the &lt;span style="font-style: italic;"&gt;ComeOfAge&lt;/span&gt; role&lt;/li&gt;&lt;li&gt;To access the corporate.jsp resource, the user must be successfully authenticated and must belong to the group '&lt;span style="font-style: italic;"&gt;employee&lt;/span&gt;' in Identity Repository for the realm. Self-provisioning is used to dynamically create a new user account.&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;To display the video, click on the images below (please use full screen mode)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a href="http://www.screencast.com/t/YjI1ODk5M"&gt;&lt;img style="cursor: pointer; width: 116px; height: 116px;" src="http://1.bp.blogspot.com/_LEGcWLZW8pc/Sr5Q2XL78NI/AAAAAAAAAJA/ywyMcRcwD7c/s400/videos.jpg" alt="Video 1" id="BLOGGER_PHOTO_ID_5385831099248931026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.screencast.com/t/MWU4OWJk"&gt;&lt;img style="cursor: pointer; width: 116px; height: 116px;" src="http://1.bp.blogspot.com/_LEGcWLZW8pc/Sr5Q2XL78NI/AAAAAAAAAJA/ywyMcRcwD7c/s400/videos.jpg" alt="Video 2" id="BLOGGER_PHOTO_ID_5385831099248931026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-6078432740847897308?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/6078432740847897308/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=6078432740847897308' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/6078432740847897308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/6078432740847897308'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2009/10/claims-based-identity-in-opensso-part.html' title='Claims-based Identity in OpenSSO (Part III)'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LEGcWLZW8pc/SwKDqWRZxII/AAAAAAAAAJI/Rt5bJgSdiAI/s72-c/grab.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-5915672089353913036</id><published>2009-10-10T00:22:00.000-07:00</published><updated>2009-10-10T23:44:19.979-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='information-cards i-cards identity security privacy opensso openid'/><title type='text'>Information Card and OpenID Foundations to collabortate on the Open Trust Framework</title><content type='html'>Mary Rudy of the Information Card Foundation (ICF) announced recently a joint effort with the OpenID Foundation (OIDF) to collaborate on the Open Government Initiative that will enable the US government to accept Information Cards and OpenIDs from industry identity providers.&lt;br /&gt;&lt;br /&gt;At Gov 2.0 last month, Vivek Kundra, the Federal CIO, announced a pilot project to have government websites accept industry identity credentials. The Information Card and OpenID foundations issued a joint &lt;a href="http://informationcard.net/blog/open-identity-initiative-2009-09-09"&gt;press release&lt;/a&gt; naming ten industry Identity Providers  and the National Institutes of Health (NIH)  as the first agency to participate  in a pilot project.&lt;br /&gt;&lt;br /&gt;"As part of enabling this initiative, the ICF has worked closely with the US General Services Administration (GSA) Identity Credential and Access Management (ICAM) committee to define profiles of the Information Card IMI 1.0 standard for use by US government websites for levels of Assurance 1-3. In order for US government websites to know which IdPs conform to the GSA’s profile and privacy policies, the GSA is requiring that IdPs be certified" said Mary Ruddy.&lt;br /&gt;&lt;br /&gt;To that aim, the ICF and OIDF are collaborating to create an Open Trust Framework program that can perform this certification. The Open Trust Framework  is explained in the joint white paper &lt;a href="http://informationcard.net/white-papers/open-trust-frameworks"&gt;Open Trust Frameworks for Open Government&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-5915672089353913036?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/5915672089353913036/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=5915672089353913036' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/5915672089353913036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/5915672089353913036'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2009/10/information-card-and-openid-foundations.html' title='Information Card and OpenID Foundations to collabortate on the Open Trust Framework'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-2140064599879558116</id><published>2009-10-04T02:58:00.000-07:00</published><updated>2009-10-04T05:17:04.997-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='net-id 2009 opensso infocard'/><title type='text'>Net-ID 2009 is over</title><content type='html'>Special thanks to &lt;a href="http://www.linkedin.com/pub/stefanie-schiebenhoefer-geuhs/0/618/906"&gt;Stefanie Schiebenhoefer&lt;/a&gt; and team at &lt;a href="http://www.computas.de/html/engl_index.html"&gt;Computas&lt;/a&gt;, as well as &lt;a href="http://www.linkedin.com/in/hellmuthbroda"&gt;Hellmut Broda&lt;/a&gt; for the excellent and friendly organization of &lt;a href="http://www.computas.de/html/engl_index.html"&gt;Net-ID 2009&lt;/a&gt;. I wish I had better managed my time to run a more complete demo of the OpenSSO Information Cards module... But for those interested, there is one screencast and more to come on this topic in the "Claims-based Identity in OpenSSO" series. It was particularly impressive to meet and hear in person some of the big names of the Identity Management sphere like &lt;a href="http://www.linkedin.com/pub/gerry-gebel/0/332/626"&gt;Gerry Gebel&lt;/a&gt;, from Burton Group, whom I am an assiduous reader.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-2140064599879558116?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/2140064599879558116/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=2140064599879558116' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/2140064599879558116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/2140064599879558116'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2009/10/net-id-2009-is-over.html' title='Net-ID 2009 is over'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-4551502550048599995</id><published>2009-09-27T22:30:00.000-07:00</published><updated>2009-09-27T09:37:14.678-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensso geneva informationCards cardSpace i-card claims-based digitalIdentity identityManagement WAM IAM'/><title type='text'>Claims-based Identity in OpenSSO (Part II)</title><content type='html'>In &lt;a href="http://www.patrickpetit.com/2009/08/claims-based-identity-in-opensso-part-i.html"&gt;Claims-based Identity in OpenSSO (Part I)&lt;/a&gt;, I started with introducing briefly the concept of claims-based identity, and how to configure and use the Information Cards authentication module (a.k.a Authnicrp module) of OpenSSO. In this post, I discuss further the behavior of the Authnicrp module when the 'Ignore&lt;span style="font-style: italic;"&gt;'&lt;/span&gt; user profile of the Core authentication service is used.&lt;br /&gt;&lt;br /&gt;In this user profile, the Authnicrp module provides anonymous access to resources protected by a Security Policy Agent. The term 'anonymous&lt;span style="font-style: italic;"&gt;'&lt;/span&gt; here tends to be a misnomer as it refers to OpenSSO's anonymous access that allows to log on without presenting credentials. However, Information Cards  identities are  anonymous so long as one's claims do not allow others to know one’s personal identity. Furthermore, the Authnicrp module does not necessarily eliminate the need to present authentication credentials. To get a security token, a user is required to authenticate one way or another (e.g. password, X509 certificate, Kerberos, self-signed i-card), through the Identity Selector, for the Identity Provider (IDP) to assert the claims presented in the security token. This requirement can be enforced by configuring the module not to allow self-signed information cards for example. Hence, the level of trust a Relying Party (RP) puts in Information Cards will depend  on the method used by the IDP to collect personal information, and the authentication schemes used to challenge the identity of a user.&lt;br /&gt;&lt;br /&gt;The administrator must specify an anonymous user ID in a realm, so that anyone in that realm can log on with an information card provided the asserted claims  honor the security requirements of the Relying Party (RP). The reason why we need a user ID with Information Cards is purely technical. An OpenSSO authentication module is a JAAS module, and as such, is required to return a subject's Principal. If the authentication  succeeds, a session is created for the user ID that stores  the claims and their values as property value-pairs. Session properties are retained in the system until the  user's session expires. In a future post, I will explain how applications can retrieve session properties  either by way of querying the Session Service, or by way of configuring the Security Policy Agent to copy them in various HTTP artifacts.&lt;br /&gt;&lt;br /&gt;The anonymous mode provides several benefits. It allows to grant access to an information card bearer, while avoiding the usual tedious registration process of creating a user account. Also, because Information Cards supply claim values such as name, address, and e-mail address to RPs on demand, Web sites do not need to store persistent personal data. This way, the anonymous mode reduces the need for Web sites to request and store personal data across sessions and thereby narrows a classic attack vector for identity theft.&lt;br /&gt;&lt;br /&gt;The short video sequence below shows the onscreen user's experience of getting access to a protected resource  using an information card in anonymous mode. The sequence is as follow:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The user hits a Web page with a link to a protected resource&lt;/li&gt;&lt;li&gt;The user presents a self-signed i-card with a blank email-address required claim &lt;/li&gt;&lt;li&gt;The Authnicrp denies access but gives the user a second chance&lt;/li&gt;&lt;li&gt;The user this time uses another i-card that has all required claims filled in&lt;br /&gt;&lt;/li&gt;&lt;li&gt;OpenSSO grants access to the protected resource that displays some of the information cards claims retrieved from the HTTP request&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a href="http://www.screencast.com/t/wEAiyxDcvR"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 116px; height: 116px;" src="http://1.bp.blogspot.com/_LEGcWLZW8pc/Sr5Q2XL78NI/AAAAAAAAAJA/ywyMcRcwD7c/s400/videos.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385831099248931026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-4551502550048599995?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/4551502550048599995/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=4551502550048599995' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/4551502550048599995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/4551502550048599995'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2009/09/claims-based-identity-in-opensso-part.html' title='Claims-based Identity in OpenSSO (Part II)'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LEGcWLZW8pc/Sr5Q2XL78NI/AAAAAAAAAJA/ywyMcRcwD7c/s72-c/videos.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-5892454652114417205</id><published>2009-09-24T10:20:00.000-07:00</published><updated>2009-09-24T10:27:33.589-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Opensso Information Cards Digitial Identity CardSpace Net-ID 2009'/><title type='text'>Information Cards in OpenSSO at Net-ID 2009</title><content type='html'>I got the opportunity to talk about Information Cards in OpenSSO at &lt;a href="http://www.amiando.com/net-id09.html"&gt;Net-ID 2009&lt;/a&gt;. For those interested to attend the conference, you can get 50 % discount by using 'STG' code in the registration page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-5892454652114417205?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/5892454652114417205/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=5892454652114417205' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/5892454652114417205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/5892454652114417205'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2009/09/information-cards-in-opensso-at-net-id.html' title='Information Cards in OpenSSO at Net-ID 2009'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-6321696164253438993</id><published>2009-08-18T02:20:00.000-07:00</published><updated>2009-09-16T00:30:10.086-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensso geneva information-cards cardspace claims-based identity security WAM IAM'/><title type='text'>Claims-based Identity in OpenSSO (Part I)</title><content type='html'>I will  discuss in a series of articles the use of the Information Cards Authentication Module (a.k.a Authnicrp extension module) version 1.0 beta that I committed recently to the OpenSSO source tree. Authnicrp is an &lt;a href="https://opensso.dev.java.net/public/extensions/"&gt;extension of the OpenSSO core platform&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Authnicrp allows a Relying Party (RP) to accept &lt;a href="http://en.wikipedia.org/wiki/Information_Card"&gt;Information Cards&lt;/a&gt; for a  user's authentication and authorization to access Web resources protected by a Security Policy Agent. In this version, the processing of the security token is delegated to the &lt;a href="http://code.google.com/p/openinfocard/"&gt;OpenInfocard&lt;/a&gt; library that has been slightly modified to be embedded in the module. You should check the &lt;a href="https://opensso.dev.java.net/source/browse/opensso/extensions/authnicrp/README.txt?view=markup"&gt;README&lt;/a&gt; file, which contains instructions for building and installing the module in an OpenSSO instance. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;font-family:georgia;font-size:130%;"  &gt;Backgrounder&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A claim is a piece of information about a subject  that an Identity Provider asserts about that subject. In the world of claims-based identity, a digital identity is simply represented by a security token that contains one or more claims, each of which carries some piece of information about the user the token identifies, such as  name, age, address, employers, and the like. Claims can represent pretty much anything about a user depending on what is required by the RP services. Claims-based identity is a powerful concept that stems from the work of Microsoft on the Identity Metasystem and Information Cards (CardSpace in  Microsoft's parlance). For a complete description of the concept, I recommend reading David Campbell's white paper "&lt;a href="http://www.google.fr/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fdownload.microsoft.com%2Fdownload%2F7%2Fd%2F0%2F7d0b5166-6a8a-418a-addd-95ee9b046994%2FIntroducing_Geneva_Beta1_Whitepaper.pdf&amp;amp;ei=02SvSvrMMpea4ga_zIitCg&amp;amp;usg=AFQjCNFGjIOjGJWqKK4JeGP_39CKfCGYxg&amp;amp;sig2=QEmru6lrI5L1Fsn8pBekGw"&gt;Introducing Geneva&lt;/a&gt;". There is also an &lt;a href="http://informationcard.net/"&gt;Information Card Foundation&lt;/a&gt; dedicated to making the Information Card technology successful, which has documentation, best practices and references to contributions for Replying Party and Identity Selector software. Several open-source initiatives are being developed to facilitate the adoption and use of claims-based identity, spanning both the enterprise and the Internet ecosystems.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;font-size:130%;" &gt;&lt;span style="font-family:georgia;"&gt;The Authnicrp Authentication Module at a Glance&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In order to understand the Authnicrp authentication module, it is important to understand that it  combines the functionalities of three other OpenSSO authentication modules. Namely, the Membership, Anonymous and Data Store standard modules. With Authnicrp, it is possible, using an Information Card, to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;login as an anonymous user,&lt;/li&gt;&lt;li&gt;create a user account dynamically based on the mapping of the claims provided in the security token,&lt;/li&gt;&lt;li&gt;login as a user registered in the data store of OpenSSO's Identity Repository (Generic LDAPv3, Sun DS with OpenSSO schema, Active Directory or JDBC database).&lt;/li&gt;&lt;/ul&gt;The operating mode is selectable from the "Realm Attributes" configuration pane of the Core authentication service as shown in the image below:&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LEGcWLZW8pc/Sq9Dv6_zMMI/AAAAAAAAAIQ/emwq97GqD1Q/s1600-h/Authnicrp2.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 127px;" src="http://4.bp.blogspot.com/_LEGcWLZW8pc/Sq9Dv6_zMMI/AAAAAAAAAIQ/emwq97GqD1Q/s400/Authnicrp2.png" alt="" id="BLOGGER_PHOTO_ID_5381594570300797122" border="1" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;In the User Profile radio button selection you should tick:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;'Ignored' for anonymous user login&lt;br /&gt;&lt;/li&gt;&lt;li&gt;'Required' for a registered user login&lt;br /&gt;&lt;/li&gt;&lt;li&gt;'Dynamic' for the dynamic creation of a user account if the account doesn't already exist&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic; font-weight: bold;font-size:130%;" &gt;&lt;span style="font-family:georgia;"&gt;The Authnicrp Service Configuration Pane&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Authnicrp service configuration pane contains parameters that enable the module to operate according to the  authentication profile chosen and the security requirements of the RP.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;General Settings:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Assign a user ID to the anonymous profile&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Assign default roles applied to the dynamic creation profile&lt;/li&gt;&lt;li&gt;Assign a status to the subject&lt;/li&gt;&lt;li&gt;Assign an authentication level to the service instance&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The application server's keystore settings used to get the Web site's private key  used to process  the encrypted security token.&lt;/li&gt;&lt;/ul&gt;&lt;center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LEGcWLZW8pc/Sq9T4R0x2hI/AAAAAAAAAIg/ePg9gv2WGw0/s1600-h/Authnicrp3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 304px;" src="http://4.bp.blogspot.com/_LEGcWLZW8pc/Sq9T4R0x2hI/AAAAAAAAAIg/ePg9gv2WGw0/s400/Authnicrp3.png" alt="" id="BLOGGER_PHOTO_ID_5381612306053585426" border="1" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;RP Security Requirements&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The security requirements stated by the RP are entirely configurable at the realm level. Here, the site administrator can specify the list of required claims and optional claims. Verification elements defined in the &lt;a href="https://wiki.informationcard.net/index.php/Claim_Catalog"&gt;claims catalog&lt;/a&gt; of the Information Card Foundation can also be specified,  including the method  employed for verifying the verified claims.&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LEGcWLZW8pc/Sq9YEruXyVI/AAAAAAAAAIo/xHjYaqp37ug/s1600-h/Authnicrp4.png"&gt;&lt;img style="cursor: pointer; width: 322px; height: 400px;" src="http://3.bp.blogspot.com/_LEGcWLZW8pc/Sq9YEruXyVI/AAAAAAAAAIo/xHjYaqp37ug/s400/Authnicrp4.png" alt="" id="BLOGGER_PHOTO_ID_5381616917210974546" border="1" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dynamic Creation of a User Account&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Dynamic profile is used for self-provisioning of new user accounts using the claims of the security token. The configuration pane provides a flexible mechanism by which the administrator can define a claim to Identity Repository attribute mapping. It is also possible to define a set of default roles, or even better, provide a role DN to a role check-in pluggin that will be instantiated by the authentication module for determining whether the digital identity matches the requirements of a given role or not. The class "com.identarian.infocard.opensso.rp.rcheck.ComOfAge", provided in the module, gives an example of how a pluggin can be specified to check the matching programmatically. In the particular case of the ComeOfAge role, the pluggin returns true if any of the age-18-or-over, or coppa-certified-adult claims are provided in the security token.&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LEGcWLZW8pc/Sq9gocQlxTI/AAAAAAAAAIw/BU-9qkNO9BM/s1600-h/Authnicrp5.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 332px;" src="http://4.bp.blogspot.com/_LEGcWLZW8pc/Sq9gocQlxTI/AAAAAAAAAIw/BU-9qkNO9BM/s400/Authnicrp5.png" alt="" id="BLOGGER_PHOTO_ID_5381626327627842866" border="1" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;That's it for today. Claims-based Identity in OpenSSO (Part II) will show how the anonymous profile works, and how to obtain the user's claims from OpenSSO in a Web application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-6321696164253438993?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/6321696164253438993/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=6321696164253438993' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/6321696164253438993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/6321696164253438993'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2009/08/claims-based-identity-in-opensso-part-i.html' title='Claims-based Identity in OpenSSO (Part I)'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LEGcWLZW8pc/Sq9Dv6_zMMI/AAAAAAAAAIQ/emwq97GqD1Q/s72-c/Authnicrp2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-1803976186190348864</id><published>2009-08-14T01:53:00.000-07:00</published><updated>2009-08-14T03:32:00.224-07:00</updated><title type='text'>Back from vacation in Bali with new resolutions</title><content type='html'>It's been a year I haven't touched this blog. Not for the lack of having things to tell. But eh, I have been really busy with work, and my MBA at &lt;a href="http://www.grenoble-em.com/accueil_ecole.aspx?ecole=ggsb"&gt;GGSB&lt;/a&gt;, not to mention turmoil raised by the economic downturn and the Oracle-Sun M&amp;A.&lt;br /&gt;&lt;br /&gt;I cleaned up a little bit the presentation of this page, and changed the banner with a photo of &lt;a href="http://www.baliaround.com/barong-and-rangda-balinese-two-opposites/"&gt;Barong&lt;/a&gt;, a mythical character of Balinese theater, that I took in Bali hoping he will bring me luck and wisdom...&lt;br /&gt; &lt;br /&gt;After two years, the taught part of the MBA program is behind me :-). So, I figured, it would be cool to share my findings here as I progress through the master thesis work. The objective of the thesis is to deep dive into analyzing the business opportunities and impediments of cloud computing from the point of view of small and medium businesses. I already collected a large number of articles and studies stating the issues from both technological and business angles. I may publish my bibliography if I get enough interest.&lt;br /&gt;&lt;br /&gt;Also, there are obvious synergies and complementarity between what I am doing at Sun, and the subject of the master thesis. For example, I stumbled recently on an article "&lt;a href="http://www.itweb.co.za/sections/techforum/2009/0906050801.asp?S=Security&amp;A=SEC&amp;O=google"&gt;Identity as a service becomes reality&lt;/a&gt;", and a couple white papers from &lt;a href="http://www.conformity-inc.com/"&gt;Conformity&lt;/a&gt;, discussing the challenges and risks associated with integrating SaaS and cloud-based applications into exiting IT with regard to how how this trend is fundamentally changing the traditional models of IT over control, accountability and best practices with information and operation security around segregation-of-duties, role-based access control (RBAC), and the principle of least privilege.&lt;br /&gt;&lt;br /&gt;It will very interesting to discuss in future messages how OpenSSO's Express 9 Entitlement Enforcement capabilities can be leveraged to address some of the above issues. &lt;br /&gt;&lt;br /&gt;Finally, I released recently an update of the Information Card authentication module for OpenSSO which is a complete a revamp of the initial version. Check the extension's &lt;a href="https://opensso.dev.java.net/source/browse/opensso/extensions/authnicrp/README.txt?view=markup"&gt;README&lt;/a&gt; file for details. I will discuss and show in future messages how the Information Card extension can be used to enable claim-based authentication and authorization in OpenSSO.&lt;br /&gt;&lt;br /&gt;Sounds like a good blogging program for the next few months. Let's try to stick with that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-1803976186190348864?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/1803976186190348864/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=1803976186190348864' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/1803976186190348864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/1803976186190348864'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2009/08/back-from-vacation-in-bali-with-new.html' title='Back from vacation in Bali with new resolutions'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-5372044434355010325</id><published>2008-08-25T05:16:00.000-07:00</published><updated>2008-08-25T05:30:57.061-07:00</updated><title type='text'>Identity and Access in Microsoft Architecture Journal</title><content type='html'>Browsing through one of my &lt;a href="http://ignisvulpis.blogspot.com/"&gt;favorite blogs&lt;/a&gt;, I stumbled upon an astonishing issue of the Microsoft Architecture Journal, which talks about &lt;a href="http://download.microsoft.com/download/a/7/6/a76e5770-19b1-415b-8b6c-6ff5c7b71574/J16_EN.zip"&gt;Identity and Access&lt;/a&gt;. This issue is full of information about user-centric and digital identity, federation, STS and more. A must read to get an overview of the state-of-the-art!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-5372044434355010325?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/5372044434355010325/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=5372044434355010325' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/5372044434355010325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/5372044434355010325'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2008/08/identity-and-access-in-microsoft.html' title='Identity and Access in Microsoft Architecture Journal'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-9089214691275894983</id><published>2008-08-19T00:56:00.000-07:00</published><updated>2008-08-19T00:58:46.423-07:00</updated><title type='text'>How to insert source code in a blog post</title><content type='html'>I have been struggling quite a bit with this question until I find the link &lt;a href="http://blogging-madeeasy.blogspot.com/2008/07/displaying-java-code-or-html-code-in.html"&gt;Displaying Java Code or HTML code in Blogger&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-9089214691275894983?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/9089214691275894983/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=9089214691275894983' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/9089214691275894983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/9089214691275894983'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2008/08/how-to-insert-source-code-in-blog-post.html' title='How to insert source code in a blog post'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-1981186153115813253</id><published>2008-08-18T06:21:00.000-07:00</published><updated>2008-08-18T06:25:31.497-07:00</updated><title type='text'>OpenSSO tips and tricks: Install and Configure the AgentSample</title><content type='html'>Asyd's Blog published a post in French about how to &lt;a href="http://blog.asyd.net/2008/07/opensso-installation-et-configuration-de-lagentsample/"&gt;install and configure the agentsample.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-1981186153115813253?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/1981186153115813253/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=1981186153115813253' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/1981186153115813253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/1981186153115813253'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2008/08/opensso-tips-and-tricks-install-and.html' title='OpenSSO tips and tricks: Install and Configure the AgentSample'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-5034681314194883207</id><published>2008-08-18T06:15:00.000-07:00</published><updated>2008-08-18T06:26:00.973-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensso opends'/><title type='text'>OpenSSO tips and tricks: Backup the embedded OpenDS</title><content type='html'>Asyd's Blog published post in French about how to &lt;a href="http://blog.asyd.net/2008/07/sauvegarde-de-linstance-opends-embarque-dans-opensso/"&gt;backup the OpenDS configuration database&lt;/a&gt; embedded in OpenSSO.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-5034681314194883207?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/5034681314194883207/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=5034681314194883207' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/5034681314194883207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/5034681314194883207'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2008/08/openssi-tips-and-tricks-backup-embedded.html' title='OpenSSO tips and tricks: Backup the embedded OpenDS'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-7845361503872008323</id><published>2008-08-12T02:13:00.000-07:00</published><updated>2008-08-12T02:25:58.255-07:00</updated><title type='text'>The OpenSSO Information Card RP extension works fine with build 5</title><content type='html'>Yesterday, I successfully tested the &lt;a href="https://opensso.dev.java.net/source/browse/opensso/extensions/authnicrp/README.txt?view=markup"&gt;Information Card Relying Party&lt;/a&gt; authentication module (authnicrp extension) against OpenSSO Express Build 5. Introduced a minor fix in the handling of the Information Card parameters, and new 'install' ant target that allows to install the extension in a deployed OpenSSO instance more easily.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-7845361503872008323?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/7845361503872008323/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=7845361503872008323' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/7845361503872008323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/7845361503872008323'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2008/08/yesterday-i-successfully-tested.html' title='The OpenSSO Information Card RP extension works fine with build 5'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-374778076224380652</id><published>2008-08-08T02:16:00.000-07:00</published><updated>2008-08-18T06:14:22.802-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensso enterprise sun'/><title type='text'>Sun Microsystems to provide OpenSSO Support</title><content type='html'>Sun Microsystems announced on July 23, 2008 support for OpenSSO through its &lt;a href="https://opensso.dev.java.net/servlets/NewsItemView?newsItemID=6258"&gt;Sun OpenSSO Express&lt;/a&gt; program. What it means is that companies can buy support for the OpenSSO offering that is expected to release on a much shorter cycle basis than its commercial counterpart Federated Access Manager (now rebranded &lt;a href="http://dennisseah.wordpress.com/2008/07/23/sun-opensso-enterprise/"&gt;Sun OpenSSO Enterprise)&lt;/a&gt;. That's a good news for OpenSSO contributors and customers who should be able to access new features issued from the OpenSSO community quicker than waiting for the longer full releasing cycles of Federated Access Manager.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-374778076224380652?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/374778076224380652/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=374778076224380652' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/374778076224380652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/374778076224380652'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2008/08/sun-microsystems-provides-opensso.html' title='Sun Microsystems to provide OpenSSO Support'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-280522529704849465</id><published>2008-04-08T01:58:00.000-07:00</published><updated>2008-04-08T02:40:28.390-07:00</updated><title type='text'>OpenSSO Information Card Extensions Demo at Concordia Workshop RSA 2008</title><content type='html'>Pat Patterson &lt;a href="http://blogs.sun.com/superpat/entry/rsa_conference_2008_concordia_done"&gt;announced yesterday&lt;/a&gt; that the &lt;a href="http://projectconcordia.org/index.php/RSA_IOP_Scenarios"&gt;RSA IOP scenario&lt;/a&gt;, held Monday, April 7, 2008, featured the Information Card RP and  IdP/STS extensions of OpenSSO. Notes from the Concordia workshop still to be supplied. I believe Pat did some enhancements to the Information Card RP authentication module to support the declaration of dynamic claims passed directly in the request URI. More on this latter...  Further &lt;a href="http://osis.idcommons.net/wiki/Main_Page"&gt;I3 user-centric identity interoperability&lt;/a&gt; demonstrations will be held Tuesday, April 8 and Wednesday, April 9, 2008 at the &lt;a href="http://www.rsaconference.com/2008/US/Highlights_and_Events/Interoperability_Demonstrations.aspx"&gt;Moscone Center&lt;/a&gt;. So, Pat, we are counting on you to let us known how things worked out. &lt;span id="ctl07_leftContent"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-280522529704849465?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/280522529704849465/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=280522529704849465' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/280522529704849465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/280522529704849465'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2008/04/opensso-information-card-extensions.html' title='OpenSSO Information Card Extensions Demo at Concordia Workshop RSA 2008'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-563739816596964621</id><published>2008-04-07T01:09:00.000-07:00</published><updated>2008-08-19T00:55:29.225-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensso clientsdk'/><title type='text'>Writing a Relying Party for the OpenSSO Information Card Authentication Module</title><content type='html'>This post explains how to write a simple relying party web application using the&lt;span style="text-decoration: underline;"&gt; &lt;/span&gt;&lt;a href="https://opensso.dev.java.net/public/extensions/"&gt;Information Card Authentication Module&lt;/a&gt; extension of OpenSSO. This is two simple steps detailed below:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Install and setup the Information Card Authentication Module following the instructions outlined in the &lt;a href="https://opensso.dev.java.net/source/browse/opensso/extensions/authnicrp/README.txt?view=markup"&gt;README&lt;/a&gt; file.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create a web application that will use the &lt;a href="http://docs.sun.com/app/docs/doc/819-5899/gcsar?a=view"&gt;Client SDK&lt;/a&gt; for Java.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Once you have created your web application project, using Netbeans for instance, you need to add the Client SDK for Java in the project's libraries property. If you installed OpenSSO, the jar file is located under &lt;span style="font-style: italic;"&gt;install-dir&lt;/span&gt;&lt;opensso-base-dir&gt;&lt;install_dir&gt;&lt;install-dir&gt;/libraries/jar/openssoclientsdk.jar&lt;br /&gt;&lt;br /&gt;Then, you'll need to prepare the AMConfig.properties file which contains parameters used by the SDK to connect to the OpenSSO services. You can do it either manually (the hard way), or deploy the samples web application provided in&lt;br /&gt;&lt;install_dir&gt;&lt;opensso-install-dir&gt;&lt;install-dir&gt;&lt;span style="font-style: italic;"&gt;install-dir&lt;/span&gt;/samples/war/fam-client-jdk15.war. &lt;/install-dir&gt;&lt;/opensso-install-dir&gt;First, unzip fam-client.zip&lt;install_dir&gt;&lt;install_dir&gt; and then deploy the WAR file. This web application invokes a JSP (i.e. Configurator.jsp), which creates a AMConfig.properties file in the user's home directory. Personally, I used the defaults for user name &lt;/install_dir&gt;&lt;/install_dir&gt;and password (i.e. anonymous) which happened to work fine for my needs&lt;install_dir&gt;&lt;install_dir&gt;. This part is little a tricky but not unsurmountable. &lt;/install_dir&gt;&lt;/install_dir&gt;&lt;/install_dir&gt;&lt;/install-dir&gt;T&lt;opensso-base-dir&gt;&lt;install_dir&gt;&lt;install_dir&gt;&lt;install_dir&gt;his unfortunate convolution comes from the lack of an installer and specific documentation, that are included with Access Manager, but not with the open source project.&lt;/install_dir&gt;&lt;/install_dir&gt;&lt;/install_dir&gt;&lt;/opensso-base-dir&gt;&lt;/install_dir&gt;&lt;/opensso-base-dir&gt;&lt;br /&gt;&lt;br /&gt;You can verify that the AMConfig.properties is properly configured by playing with the samples web application. Once you get there, writing and deploying a relying party web application using the Information Card authentication module is fairly easy. Here is an example that I provided for your convenience. Create a servlet in your project and copy the file below. It should work...&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;package com.identarian.infocard.opensso.ssosample;&lt;br /&gt;&lt;br /&gt;import com.iplanet.am.util.SystemProperties;&lt;br /&gt;import com.iplanet.sso.SSOException;&lt;br /&gt;import com.iplanet.sso.SSOToken;&lt;br /&gt;import com.iplanet.sso.SSOTokenListener;&lt;br /&gt;import com.iplanet.sso.SSOTokenManager;&lt;br /&gt;import com.sun.identity.idm.AMIdentity;&lt;br /&gt;import com.sun.identity.idm.IdRepoException;&lt;br /&gt;import com.sun.identity.idm.IdUtils;&lt;br /&gt;import java.io.*;&lt;br /&gt;import java.net.*;&lt;br /&gt;&lt;br /&gt;import java.util.Map;&lt;br /&gt;import java.util.Properties;&lt;br /&gt;import javax.servlet.*;&lt;br /&gt;import javax.servlet.http.*;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author ppetit&lt;br /&gt; */&lt;br /&gt;public class SSOTokenSample extends HttpServlet {&lt;br /&gt;&lt;br /&gt;    private static boolean initialized = false;&lt;br /&gt;    private static String host = null;&lt;br /&gt;    private static String port = null;&lt;br /&gt;    private static String proto = null;&lt;br /&gt;    ServletOutputStream out = null;&lt;br /&gt;&lt;br /&gt;    @Override&lt;br /&gt;    public void init() {&lt;br /&gt;&lt;br /&gt;        String configFile = System.getProperty(&amp;quot;user.home&amp;quot;)  &lt;br /&gt;                File.separator   &amp;quot;AMConfig.properties&amp;quot;;&lt;br /&gt;        Properties props = new Properties();&lt;br /&gt;        try {&lt;br /&gt;            props.load(new FileInputStream(configFile));&lt;br /&gt;        } catch (IOException e) {&lt;br /&gt;            System.out.println(&amp;quot;Failed to load AMConfig.properties&amp;quot;);&lt;br /&gt;            return;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        host = props.getProperty(&amp;quot;com.iplanet.am.server.host&amp;quot;, &amp;quot;localhost&amp;quot;);&lt;br /&gt;        port = props.getProperty(&amp;quot;com.iplanet.am.server.port&amp;quot;, &amp;quot;8181&amp;quot;);&lt;br /&gt;        proto = props.getProperty(&amp;quot;com.iplanet.am.server.protocol&amp;quot;, &amp;quot;https&amp;quot;);&lt;br /&gt;&lt;br /&gt;        SystemProperties.initializeProperties(props);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        initialized = true;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /** &lt;br /&gt;     * Processes requests for both HTTP &amp;lt;code&amp;gt;GET&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;POST&amp;lt;/code&amp;gt; methods.&lt;br /&gt;     * @param request servlet request&lt;br /&gt;     * @param response servlet response&lt;br /&gt;     */&lt;br /&gt;    protected void processRequest(HttpServletRequest request,&lt;br /&gt;            HttpServletResponse response)&lt;br /&gt;            throws ServletException, IOException {&lt;br /&gt;&lt;br /&gt;        response.setContentType(&amp;quot;text/html;charset=UTF-8&amp;quot;);&lt;br /&gt;&lt;br /&gt;        try {&lt;br /&gt;            out = response.getOutputStream();&lt;br /&gt;&lt;br /&gt;            // create the sso token from http request &lt;br /&gt;            SSOTokenManager manager = SSOTokenManager.getInstance();&lt;br /&gt;            SSOToken token = manager.createSSOToken(request);&lt;br /&gt;            out.println(&amp;quot;Entering SSOTokenSample.java&amp;quot;);&lt;br /&gt;            out.println(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;);&lt;br /&gt;            // throws an exception if token is not valide&lt;br /&gt;            manager.validateToken(token);&lt;br /&gt;            //print some of the values from the token.&lt;br /&gt;&lt;br /&gt;            java.security.Principal principal = token.getPrincipal();&lt;br /&gt;            String authType = token.getAuthType();&lt;br /&gt;&lt;br /&gt;            out.println(&amp;quot;SSOToken Principal name: &amp;quot;  &lt;br /&gt;                    principal.getName());&lt;br /&gt;            out.println(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;);&lt;br /&gt;            out.println(&amp;quot;Authentication type used: &amp;quot;   authType);&lt;br /&gt;            out.println(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;);&lt;br /&gt;&lt;br /&gt;            // Retrieve user profile and print them&lt;br /&gt;            AMIdentity userIdentity = IdUtils.getIdentity(token);&lt;br /&gt;            Map attrs = userIdentity.getAttributes();&lt;br /&gt;            out.println(&amp;quot;User Attributes: &amp;quot;   attrs);&lt;br /&gt;            out.println(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;);&lt;br /&gt;            // Retreive user session properties&lt;br /&gt;            out.println(&amp;quot;Session properties:&amp;quot;);&lt;br /&gt;            String ppid = token.getProperty(&amp;quot;privatepersonalidentifier&amp;quot;);&lt;br /&gt;            if (ppid != null &amp;amp;&amp;amp; ppid.length() != 0) {&lt;br /&gt;                out.println(&amp;quot;PPID: &amp;quot;   ppid);&lt;br /&gt;            }&lt;br /&gt;            String gname = token.getProperty(&amp;quot;givenname&amp;quot;);&lt;br /&gt;            String sname = token.getProperty(&amp;quot;surname&amp;quot;);&lt;br /&gt;            if (gname != null &amp;amp;&amp;amp; sname != null) {&lt;br /&gt;                out.println(&amp;quot;Welcome &amp;quot;   gname   &amp;quot; &amp;quot;   sname);&lt;br /&gt;            }&lt;br /&gt;            out.println(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;);&lt;br /&gt;            /*&lt;br /&gt;            http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname&lt;br /&gt;            http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname&amp;quot;&amp;gt;&lt;br /&gt;            &amp;lt;PARAM Name=&amp;quot;optionalClaims&amp;quot;            Value=&amp;quot;&lt;br /&gt;            http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress&lt;br /&gt;            http://schemas.xmlsoap.org/ws/2005/05/identity/claims/locality&lt;br /&gt;            http://schemas.xmlsoap.org/ws/2005/05/identity/claims/stateorprovince&lt;br /&gt;            http://schemas.xmlsoap.org/ws/2005/05/identity/claims/postalcode&lt;br /&gt;            http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country&lt;br /&gt;            http://schemas.xmlsoap.org/ws/2005/05/identity/claims/homephone&lt;br /&gt;            http://schemas.xmlsoap.org/ws/2005/05/identity/claims/otherphone&lt;br /&gt;            http://schemas.xmlsoap.org/ws/2005/05/identity/claims/mobilephone&lt;br /&gt;            http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dateofbirth&lt;br /&gt;            http://schemas.xmlsoap.org/ws/2005/05/identity/claims/gender&lt;br /&gt;           &lt;br /&gt;            http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress&amp;quot;&amp;gt;&lt;br /&gt;             */&lt;br /&gt;            /* let us add a listener to the SSOToken. Whenever a token&lt;br /&gt;             * event arrives, ssoTokenChanged method of the listener will&lt;br /&gt;             * get called.&lt;br /&gt;             */&lt;br /&gt;            SSOTokenListener myListener = new SampleTokenListener();&lt;br /&gt;            token.addSSOTokenListener(myListener);&lt;br /&gt;        } catch (SSOException e) {&lt;br /&gt;            // No valid SSO token in request redirect to Infocard authh module&lt;br /&gt;            String openssoUrl = proto   &amp;quot;://&amp;quot;   host   &amp;quot;:&amp;quot;   port  &lt;br /&gt;                    &amp;quot;/opensso/UI/Login?module=Infocard&amp;amp;goto=&amp;quot;  &lt;br /&gt;                    request.getRequestURL().toString();&lt;br /&gt;            response.sendRedirect(openssoUrl);&lt;br /&gt;        } catch (IdRepoException e) {&lt;br /&gt;            out.println(&amp;quot;IdRepo Exception: &amp;quot;   e);&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        } catch (IOException e) {&lt;br /&gt;            out.println(&amp;quot;IO Exception: &amp;quot;   e);&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        } finally {&lt;br /&gt;            out.flush();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /** &lt;br /&gt;     * Handles the HTTP &amp;lt;code&amp;gt;GET&amp;lt;/code&amp;gt; method.&lt;br /&gt;     * @param request servlet request&lt;br /&gt;     * @param response servlet response&lt;br /&gt;     */&lt;br /&gt;    @Override&lt;br /&gt;    protected void doGet(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;            throws ServletException, IOException {&lt;br /&gt;        processRequest(request, response);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /** &lt;br /&gt;     * Handles the HTTP &amp;lt;code&amp;gt;POST&amp;lt;/code&amp;gt; method.&lt;br /&gt;     * @param request servlet request&lt;br /&gt;     * @param response servlet response&lt;br /&gt;     */&lt;br /&gt;    @Override&lt;br /&gt;    protected void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;            throws ServletException, IOException {&lt;br /&gt;        processRequest(request, response);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /** &lt;br /&gt;     * Returns a short description of the servlet.&lt;br /&gt;     */&lt;br /&gt;    @Override&lt;br /&gt;    public String getServletInfo() {&lt;br /&gt;        return &amp;quot;SSOTokenSample servlet demonstrate the use of OpenSSO client SDK&amp;quot;;&lt;br /&gt;    }&lt;br /&gt;    // &amp;lt;/editor-fold&amp;gt;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;[1] Client SDK configuration properties loaded from AMConfig.properties&lt;br /&gt;[2] Initialize the SDK with properties&lt;br /&gt;[3] Test whether a valid token is present in the request or not&lt;br /&gt;[4] Display user's identity repository data, that is only the uid / password in the case&lt;br /&gt;of Information Card authentication module&lt;br /&gt;[5] Display Information Card claims stored in the session by the module&lt;br /&gt;[6] An SSOException is thrown because the token is invalid. The catch block sends a redirect to the Information Card auth module, which in turn, sends the user back (notice the goto) to the RP's current URL when the authentication is complete&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-563739816596964621?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/563739816596964621/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=563739816596964621' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/563739816596964621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/563739816596964621'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2008/04/writing-relying-party-for-opensso.html' title='Writing a Relying Party for the OpenSSO Information Card Authentication Module'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-4560928344883251551</id><published>2008-04-04T02:42:00.000-07:00</published><updated>2008-04-04T03:15:59.239-07:00</updated><title type='text'>Information Card Authentication Module with OpenSSO Build 4</title><content type='html'>I upgraded to OpenSSO Build 4 this morning to test the Information Card  Relying Party authentication module (i.e. &lt;a href="https://opensso.dev.java.net/source/browse/opensso/extensions/authnicrp/source/"&gt;authnicrp OpenSSO extension&lt;/a&gt;). I did some changes that I committed to the opensso/extension build yesterday. The changes improve the configurability and security of the module, thanks to &lt;a href="http://ignisvulpis.blogspot.com/"&gt;Axel's&lt;/a&gt; explanation about the use of the &lt;span style="font-style: italic;"&gt;Token.getClientDigest()&lt;/span&gt; method of the &lt;a href="http://xmldap.org/"&gt;xmldap.org&lt;/a&gt; library. Also, notice that you will have to recompile xmldap-1.0.jar with the latest of &lt;a href="http://code.google.com/p/openinfocard/source/checkout"&gt;xmldap.org build&lt;/a&gt; to get a fix for this method and run the Information Card authentication module.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-4560928344883251551?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/4560928344883251551/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=4560928344883251551' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/4560928344883251551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/4560928344883251551'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2008/04/information-card-authentication-module.html' title='Information Card Authentication Module with OpenSSO Build 4'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-4121040099066717331</id><published>2008-04-03T06:13:00.000-07:00</published><updated>2008-04-03T06:21:24.238-07:00</updated><title type='text'>OpenSSO Build 4 is out-of-the-door</title><content type='html'>OpenSSO build 4 availability was announced earlier this week on &lt;a href="http://blogs.sun.com/theaquarium/entry/opensso_build_4_out_now"&gt;The Aquarium&lt;/a&gt; with a support for WS-Trust based Security Token Service (STS) (based on &lt;a href="https://metro.dev.java.net/"&gt;Metro&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-4121040099066717331?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/4121040099066717331/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=4121040099066717331' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/4121040099066717331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/4121040099066717331'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2008/04/opensso-build-4-is-out-of-door.html' title='OpenSSO Build 4 is out-of-the-door'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-7554794927616171032</id><published>2008-03-13T07:04:00.000-07:00</published><updated>2008-03-13T07:14:25.497-07:00</updated><title type='text'>Higgins Tutorial and Short Talks at EclipseCON on March 17-19</title><content type='html'>&lt;span style="font-family: arial;font-size:100%;" &gt;Mary Ruddy,from &lt;/span&gt;SocialPhysics.org,&lt;span style="font-family: arial;font-size:100%;" &gt; just announced that a &lt;/span&gt;&lt;span style="font-family:Arial;font-size:100%;"&gt;&lt;span&gt;tutorial on Higgins will be presented on Monday at &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:100%;"&gt;&lt;span&gt;EclipseCON March 17-20 2008 at the &lt;a href="http://www.eclipsecon.org/2008/"&gt;Santa Clara Convention  center.&lt;/a&gt;&lt;br /&gt;The presentation can be downloaded &lt;a href="http://www.eclipsecon.org/2008/?page=sub/&amp;amp;id=382"&gt;here&lt;/a&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-7554794927616171032?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/7554794927616171032/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=7554794927616171032' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/7554794927616171032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/7554794927616171032'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2008/03/higgins-tutorial-and-short-talks-at.html' title='Higgins Tutorial and Short Talks at EclipseCON on March 17-19'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001437836673181818.post-6773931725588916529</id><published>2008-02-29T08:26:00.000-08:00</published><updated>2008-12-11T07:06:34.700-08:00</updated><title type='text'>Information Card Relying Party Authentication Module for OpenSSO</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LEGcWLZW8pc/R8g14O-BVoI/AAAAAAAAAAM/UkUDTl_MRvs/s1600-h/PPetitInfocard.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_LEGcWLZW8pc/R8g14O-BVoI/AAAAAAAAAAM/UkUDTl_MRvs/s320/PPetitInfocard.png" alt="" id="BLOGGER_PHOTO_ID_5172443412242192002" border="0" /&gt;&lt;/a&gt;Things always come at once. Now I have to setup a blog to get the most out of publishing an &lt;a href="http://https://opensso.dev.java.net/public/extensions/"&gt;OpenSSO extension&lt;/a&gt; which supports &lt;a href="http://en.wikipedia.org/wiki/Information_Card"&gt;Information Card&lt;/a&gt; authentication. Superpat, kindly posted a nice article on the &lt;a href="http://blogs.sun.com/theaquarium/entry/new_opensso_extension_information_card"&gt;Aquarium&lt;/a&gt;  about the event. I think that combining the power and staggering capabilities of OpenSSO along with a standardized authentication module supporting Information Card a.k.a &lt;a href="http://netfx3.com/content/WindowsCardspaceHome.aspx"&gt;Cardspace or Infocard&lt;/a&gt; should facilitate the adoption of the technology in the enterprise.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001437836673181818-6773931725588916529?l=www.patrickpetit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.patrickpetit.com/feeds/6773931725588916529/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001437836673181818&amp;postID=6773931725588916529' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/6773931725588916529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001437836673181818/posts/default/6773931725588916529'/><link rel='alternate' type='text/html' href='http://www.patrickpetit.com/2008/02/information-card-relying-party.html' title='Information Card Relying Party Authentication Module for OpenSSO'/><author><name>Patrick Petit</name><uri>http://www.blogger.com/profile/06333746271247325927</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://2.bp.blogspot.com/_LEGcWLZW8pc/SoPOr_tRFgI/AAAAAAAAAGM/8RNZExTEvbg/S220/portrait.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LEGcWLZW8pc/R8g14O-BVoI/AAAAAAAAAAM/UkUDTl_MRvs/s72-c/PPetitInfocard.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
