<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/&quot;AkYBQHsyfSp7ImA9WhFSEU8.&quot;"><id>tag:blogger.com,1999:blog-12447072</id><updated>2013-06-13T08:55:51.595-04:00</updated><category term="Liberty Alliance" /><category term="federated authorization" /><category term="threads" /><category term="identity" /><category term="tribute" /><category term="history" /><category term="tidbits" /><category term="privacy" /><category term="Grid" /><category term="Sirius radio" /><category term="phish" /><category term="NBC Identity" /><category term="XRI" /><category term="health" /><category term="Google" /><category term="SAML" /><category term="security privacy" /><category term="OpenID" /><title>ConnectID</title><subtitle type="html">When you don't have anything nice to say, well then perhaps its time consider a career as an analyst.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>1956</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/gMwy" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="blogspot/gmwy" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;C08FQXsyfCp7ImA9WhFSEEg.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-2033812105091676501</id><published>2013-06-12T11:43:00.001-04:00</published><updated>2013-06-12T11:43:30.594-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-06-12T11:43:30.594-04:00</app:edited><title>Elvis-like, the data has left the building</title><content type="html">Enterprises want to ensure that its business data is accessed only by those who have a valid right to do so, ie those that require access in order to do their jobs. When the business data is only ever stored on a server, behind a web page or an API, restricting such access is relatively easy. Authenticate the user sending the request for the data, check their roles, determine if the roles are such that the user has a justifiable need to get at the data and, if so, approve the request and send the data back to the requesting client. (When the identity store (where the roles are kept) is remote from the business data (as is the case when the data is held by some SaaS), the mechanisms (and standardized protocols) might differ, but the logic remains the same).&lt;br /&gt;
&lt;br /&gt;
A client sends a request for the data - this request intercepted by some sort of enforcement mechanism (a Policy Enforcement Point (PEP) in the lingo). A co-located Policy Decision Point (PDP) determines which policy is relevant for the requested data, and interprets that policy to make a decision whether to grant the request or not. If the decision is 'yes', the data is served up back to the client (either as HTML or JSON depending on the nature of the client).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-XKKy0-0xR54/UbhWd6YrOLI/AAAAAAAAKQI/yVlTFPb4RMc/s1600/Screen+Shot+2013-06-12+at+7.07.06+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="140" src="http://4.bp.blogspot.com/-XKKy0-0xR54/UbhWd6YrOLI/AAAAAAAAKQI/yVlTFPb4RMc/s320/Screen+Shot+2013-06-12+at+7.07.06+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
All good, but as soon as you allow the business data, once released by the server, to be stored by the requesting client beyond the original session, then the original access control check is no longer sufficient and must be supplemented. Despite the additional complexity, mobile native applications and enabling offline usage (the 'CEO sitting in seat 3B' use case) push the enterprise towards supporting this sort of client storage.&lt;br /&gt;
&lt;br /&gt;
The Mobile Information Management (MIM) proposition is that the business data delivered down to the clients (the native applications) carries with it (implicitly or explicitly) the policies governing its access &amp;amp; usage - reminiscent of DRM. Before the data is delivered down to the mobile client, appropriate policy is bound to the data - the policy will stipulate what users and/or applications can access the data, what they can do with it, and restrictions on subsequent sharing. Once on the device, only if the policy stipulations are met will the data be made accessible to particular applications, and what they subsequently do with that data will also be accordingly constrained.&lt;br /&gt;
&lt;br /&gt;
But merely attaching some rules to a document or powerpoint (PRISM anyone?) doesn't actually restrict access to that data. It would be a polite hacker that, seeing a rule forbidding her access, respected that rule. There needs to be a mechanism on the device comparable to the PEP in the diagram above to &lt;i&gt;enforce&lt;/i&gt; the policy, ie prevent all data access unless the policy is met.&lt;br /&gt;
&lt;br /&gt;
You also need something comparable to the PDP to read &amp;amp; interpret the policy associated with a given piece of data. But whereas in the above model, the policy decision was whether or not to release the data itself, in this case the data has already been released, it's already on the client after all. So what is the decision?&lt;br /&gt;
&lt;br /&gt;
In MIM, the policy enforcement mechanism (the PEP that prevents unauthorized access) is appropriate encryption of the data, and the policy decision (made by the PDP determining what is authorized access) is whether or not to release a key that can be used to decrypt the data.&lt;br /&gt;
&lt;br /&gt;
An abstract model is shown below&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/--r2oJKqTmRk/UbiQWBZ4dMI/AAAAAAAAKQY/Og_wCfwWVRc/s1600/Screen+Shot+2013-06-12+at+11.13.59+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="393" src="http://3.bp.blogspot.com/--r2oJKqTmRk/UbiQWBZ4dMI/AAAAAAAAKQY/Og_wCfwWVRc/s640/Screen+Shot+2013-06-12+at+11.13.59+AM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On the right is some piece of business data, encrypted to prevent just anybody who has access to the device on which it sits from being able to access the data. On the left is a decryption key that will decrypt the encrypted data and so make it accessible to application usage. For an application to be able to 'get at' the data, it will need to gain access to the decryption key.&lt;br /&gt;
&lt;br /&gt;
Sitting between the two (the encrypted data and the corresponding decryption key) is the policy enforcement &amp;amp; decision infrastructure that ensures the two will 'meet' if and only if the policy is satisfied. Policy associated with the encrypted business data stipulates under which contexts the decryption key can be released, as well as additional constraints should that happen. Taken as input to the 'key release' decision are all the various current contexts, ie what app is trying to access the data, one behalf of which user, when, where etc.&lt;br /&gt;
&lt;br /&gt;
If the policy decision is 'yes', then the PEP releases the decryption key to the application, along with additional constraints (read but no right, no sharing etc). Now armed with the decryption key, the application uses it to decrypt the data and does whatever it does.&lt;br /&gt;
&lt;br /&gt;
The above is abstract, how to make it concrete? Specifically&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;how is the policy bound to data?&lt;/li&gt;
&lt;li&gt;how &amp;amp; where is the data encrypted?&lt;/li&gt;
&lt;li&gt;with which key?&lt;/li&gt;
&lt;li&gt;how &amp;amp; from where is the decryption key obtained?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;how are PEP &amp;amp; PDP roles distributed?&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Next time I'll propose an architecture for the above that leverages&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;REST APIs&lt;/li&gt;
&lt;li&gt;OAuth &amp;amp; OpenID Connect as mechanisms for authenticating &amp;amp; authorizing clients to such APIs&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/f5zUNotGu2A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/2033812105091676501/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=2033812105091676501" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/2033812105091676501?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/2033812105091676501?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/06/elvis-like-data-has-left-building.html" title="Elvis-like, the data has left the building" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-XKKy0-0xR54/UbhWd6YrOLI/AAAAAAAAKQI/yVlTFPb4RMc/s72-c/Screen+Shot+2013-06-12+at+7.07.06+AM.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DE4HR3w6eSp7ImA9WhBaGE8.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-3317468486896945563</id><published>2013-05-29T07:28:00.004-04:00</published><updated>2013-05-29T07:28:56.211-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-29T07:28:56.211-04:00</app:edited><title>Discovery for IoT</title><content type="html">Premise is that the IoT would have us awash in services advertising us of their availability.&lt;br /&gt;
&lt;br /&gt;
So, how to filter this sea down to something useful &amp;amp; manageable?

&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-8WtzkJVDQvU/UaXlPW9MJQI/AAAAAAAAKPE/gLmigYpkzaI/s1600/Screen+Shot+2013-05-29+at+7.22.25+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-8WtzkJVDQvU/UaXlPW9MJQI/AAAAAAAAKPE/gLmigYpkzaI/s400/Screen+Shot+2013-05-29+at+7.22.25+AM.png" width="382" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Via filters determined (mostly) by the context of everything else we have going on - what searches we've performed, what events are in our calendar, what we've recently bought, listened to etc etc.&lt;br /&gt;
&lt;br /&gt;
Those services that meet the criteria are allowed to prompt us (via applications?) for interaction.&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/aesYm07sIKE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/3317468486896945563/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=3317468486896945563" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/3317468486896945563?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/3317468486896945563?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/05/discovery-for-iot.html" title="Discovery for IoT" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-8WtzkJVDQvU/UaXlPW9MJQI/AAAAAAAAKPE/gLmigYpkzaI/s72-c/Screen+Shot+2013-05-29+at+7.22.25+AM.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A0cCQ3ozcCp7ImA9WhBaE0Q.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-5626791580300079681</id><published>2013-05-24T08:35:00.001-04:00</published><updated>2013-05-24T08:37:42.488-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-24T08:37:42.488-04:00</app:edited><title>Identity, application models &amp; the Internet of Things</title><content type="html">&lt;span style="font-family: Verdana, sans-serif;"&gt;In a blog post entitled '&lt;a href="http://designmind.frogdesign.com/blog/mobile-apps-must-die.html"&gt;Mobile apps must die&lt;/a&gt;', Scott Jenson argues that the Internet of Things (and the associated implication of having to interact with all the 'things') will make the native application model impractical, and push application development back to the browser.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;I buy the argument, will repeat some of it and will try to tease out some of the identity implications.&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;First, a bit of a recap of Scott's argument (or my interpretation at least)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l3 level1 lfo1; text-indent: -.25in;"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Whereas on a desktop we
      might have had ~10
      installed apps, on a phone or tablet we might have ~100. Users have to manage this list. It is trivially easy to install apps
      from the app
      stores. That’s great from the app developers PoV, it minimizes the
      pain of
      installation and so allows for Users to play and experiment. But
      from the Users PoV
      there is a price to be paid for easy experimenting – the application remains. SSO
      between these apps helps but the problem is bigger
      than just
      authentication.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Offline mode will become an
      antiquated concept
      as connectivity becomes ubiquitous. ‘CEO on a plane’ will
      disappear as an
      important use case when every plane has wifi. Consequently, the
      current advantage
      native has over browser models with respect to supporting offline
      via device
      storage will become less relevant.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;As more and more objects
      become connected (IoT),
      the nature of mobile applications
      (through which we’ll interact with those objects) will have
      to change
      accordingly. When my fridge, dryer, furnace, air conditioner,
      microwave, and
      thermostat etc are all connected and desperately want to interact
      with me – do
      I want a unique app for each of them? And what about objects
      outside the house
      – coke machines, point-of-sale terminals, bus stops schedules, restaurant menus, gas pumps etc&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;So the Internet of things would push us to have 1000s of native applications on our devices, but that would place a completely unrealistic management burden on
      the User –
      installing, authenticating, sorting, updating, &amp;amp; deleting of applications when no
      longer needed
      etc. &lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The problem is that the current native
      application life-cycle looks like&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l2 level1 lfo2; text-indent: -.25in;"&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Discover&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Install&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Authenticate&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Use&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Update&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Remove&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;This sequence places a heavy burden on the user
      and is very
      static – not particularly applicable to a ‘Just in time’ model (as Scott puts it) where
      I might
      interact with an application once and never again.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Clearly this isn’t viable in an IoT world where
      we will
      constantly be presented with previously unseen connected objects.
      We’d spend
      our days installing apps and by the time we were ready to
      interact, the
      opportunity will have passed (somebody else would have grabbed the last Dr
      Pepper etc)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;IoT demands an application interaction model that is far more dynamic, something
      like&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo3; text-indent: -.25in;"&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Sense – my device must be
      constantly on the
      lookout for IoT connected objects and, based on rules I’ve
      defined, determine whether &amp;amp; how best to interact with them&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Notify – based on rules
      I’ve defined, prompt me to know that I can now interact with the object&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Authenticate – the object may need to know who I
      am, but this obviously has to be seamless from a UX PoV. (the
      object may have to be
      able to authenticate to me as well)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Use – I interact with the
      object. This can’t
      require an ‘install’, instead whatever unique application
      functionality must be
      downloaded and run in an existing app designed with this sort of
      flexibility –
      ie a web page running in a browser&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Cleanup – as there was no
      install, there are no
      artifacts (except perhaps some state to simplify the next interaction) to be
      cleaned up, ie
      no uninstall&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The Internet of Things would appear then to be pushing us towards a future where&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l1 level1 lfo4; text-indent: -.25in;"&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;The pendulum swings back to the
      browser (&amp;amp; so HTML5
      comes into its own)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;The importance of browser means
      Web SSO remains
      relevant&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;For Web SSO, SAML gives way
      to OIDC due to its support for Javascript-powered apps running in the browser and
      pulling data
      from APIs offered up by the 'things' (or network endpoints on their behalf)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;SSO (in the sense of
      facilitating seamless user authentication to all the various IoT objects) is absolutely
      critical.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The last can be summarized as&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;IoT won't scale without SSO to the T.

&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo4; text-indent: -.25in;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo4; text-indent: -.25in;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo4; text-indent: -.25in;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo4; text-indent: -.25in;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;Imagine I have&amp;nbsp;a smart toaster that I want to interact with
      on my phone to determine if I need to empty the crumb tray (this needs to happen Science!!)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
      How&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;does the toaster advertise its presence to the phone?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;is the user invited to interact with the toaster?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;toaster data (crumb tray status etc) get sent to the toaster
      cloud for analysis&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;toaster data (crumb tray status etc) get sent
      to the phone for display&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;
      This diagram is a really rough attempt at a model&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-UA2u2Ci_1is/UZ9XQ-zXaMI/AAAAAAAAKO0/upJJaEDlYLM/s1600/toaster.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="308" src="http://1.bp.blogspot.com/-UA2u2Ci_1is/UZ9XQ-zXaMI/AAAAAAAAKO0/upJJaEDlYLM/s400/toaster.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;The toaster serves up crumb tray data (&amp;amp; some javascript) to the device browser. T&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;he javascript interacts with an OAuth Authorization Server (we can get the User consent at this point) and&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;obtains an OAuth access token that represents the combination of toaster &amp;amp; User. The javascript then&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;uses the access token to upload the data to an associated TAAPI (Toaster Analysis API) for analysis and then renders application UI to the user based on that analysis (eg ALERT - CRUMB TRAY DANGEROUSLY FULL).&lt;/span&gt;&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/BtMFg5gtbJ8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/5626791580300079681/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=5626791580300079681" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/5626791580300079681?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/5626791580300079681?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/05/identity-internet-of-things.html" title="Identity, application models &amp; the Internet of Things" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-UA2u2Ci_1is/UZ9XQ-zXaMI/AAAAAAAAKO0/upJJaEDlYLM/s72-c/toaster.png" height="72" width="72" /><thr:total>3</thr:total></entry><entry gd:etag="W/&quot;D04NSHs4fSp7ImA9WhBUFEw.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-2970099406641609165</id><published>2013-05-01T09:46:00.000-04:00</published><updated>2013-05-01T09:46:39.535-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-01T09:46:39.535-04:00</app:edited><title>The Quantified Self &amp; Application Scale</title><content type="html">As part part of the&lt;a href="http://quantifiedself.com/"&gt;&amp;nbsp;self-quantification&lt;/a&gt;&amp;nbsp;(QS) movement, there would appear to be a pairing of measuring device &amp;amp; associated application for every aspect of personal health - diet,&amp;nbsp;&lt;a href="http://www.withings.com/en/bodyanalyzer"&gt;weight&lt;/a&gt;, &lt;a href="http://www.vitality.net/glowcaps.html"&gt;prescription medicine&lt;/a&gt;, &lt;a href="http://www.fitbit.com/"&gt;fitness&lt;/a&gt;, blood, &lt;a href="http://www.star-telegram.com/2012/05/08/3946437/device-monitors-infants-breathing.html"&gt;breathing&lt;/a&gt;, GI tract health, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-7Rz-zadjInE/UYEUKdwqhYI/AAAAAAAAKLo/i3XMXFa3zGk/s1600/hero-lb.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="170" src="http://3.bp.blogspot.com/-7Rz-zadjInE/UYEUKdwqhYI/AAAAAAAAKLo/i3XMXFa3zGk/s320/hero-lb.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
Devices measure the various X (some passively, some actively), and the associated application, once installed onto a phone or tablet, displays and analyzes the collected data for the user - presumably to help them make health decisions in the direction of longer life (and so longer duration customer for the application provider).&lt;br /&gt;
&lt;br /&gt;
When each health aspect has its own device, and each device has its own native application - the user will necessarily bear the burden of installing, managing, and authenticating each native application.&lt;br /&gt;
&lt;br /&gt;
That may be an acceptable burden for somebody with 2-3 separate devices (and so 2-3 native applications). But what of the neurotic hypochondriacs? Or the paranoid new parents obsessing over each cough and sniffle of their new baby - both of whom might have &amp;gt; 10 health monitoring applications?&lt;br /&gt;
&lt;br /&gt;
This hilites a key problem with native applications - their lifecycle (discover, install, login, use, manage, remove) doesn't scale particularly well for the user. App stores make the first two trivially easy (arguably too easy), but dont help much with the steps that follow.&lt;br /&gt;
&lt;br /&gt;
The problem will only get worse when it's not only personal health monitoring devices that we will want to be able to interact with, but everything. When my fridge, washing machine, dishwasher, printer, garage door opener, mailbox, and TV remote are all collecting data and clamoring for my attention to view, analyze, and act on that data - do I want a separate native application for each of them? No I do not.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
If only there were an alternative to the native application model - one where application functionality can be &lt;i&gt;downloaded&lt;/i&gt; in real-time, rather than a priori &lt;i&gt;installed&lt;/i&gt;.....&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/4KQ-BCtqODc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/2970099406641609165/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=2970099406641609165" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/2970099406641609165?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/2970099406641609165?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/05/the-quantified-self-application-scale.html" title="The Quantified Self &amp; Application Scale" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-7Rz-zadjInE/UYEUKdwqhYI/AAAAAAAAKLo/i3XMXFa3zGk/s72-c/hero-lb.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkQEQ38zcCp7ImA9WhBUE0k.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-3290953108250213257</id><published>2013-04-30T12:44:00.002-04:00</published><updated>2013-04-30T12:45:02.188-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-30T12:45:02.188-04:00</app:edited><title>Which begs the question ....</title><content type="html">In&amp;nbsp;&lt;a href="http://connectid.blogspot.ca/2013/04/yapauofa-yet-another-post-about-using.html"&gt;YAPAUOFA (Yet Another Post About Using OAuth For Authentication)&lt;/a&gt;&amp;nbsp;I argue (following the lead of John and Vittorio) that the issue with trying to use OAuth OOB for authentication is that a Client can use a token it obtains 'fairly' in order to impersonate the corresponding user at some other Client.&lt;br /&gt;
&lt;br /&gt;
Necessarily then, a Client has gone 'bad'.&lt;br /&gt;
&lt;br /&gt;
Why then is this not an issue for the use case that OAuth was designed for, ie delegated authorization of API access? Could not such a Client also go 'bad' and do similarly malicious things?&lt;br /&gt;
&lt;br /&gt;
In the delegated access use case for OAuth, all that an access tokens 'means' is that it allows a Client to access the corresponding User's protected resources. Clearly a Client can go bad and share this access token and (in a bearer token model) anybody else who obtains that token will also be able to access those same resources. Critically, all these additional Clients will only enjoy the permissions allowed by the scope attached to the original token.&lt;br /&gt;
&lt;br /&gt;
As John &lt;a href="http://www.thread-safe.com/2012/01/problem-with-oauth-for-authentication.html"&gt;points out&lt;/a&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;i&gt;In the authorization case the client can be trusted with the access 
token because it has no real motivation to share it. &amp;nbsp;They could give it
 to a third party and also grant them access to the 
information(protected resource), but they can just share the information
 anyway if they are bad&lt;/i&gt;&lt;/blockquote&gt;
Yes the Client can go bad and share the access token. But it already has access to the protected resources and can already do all the evil operations it desires against those resources. The fact that a shared token will allow multiple bad Clients to perform evil operations instead of only the original bad Client probably wont matter much to the user. &lt;br /&gt;
&lt;br /&gt;
So in the authorization case, if a Client goes bad - it doesn't really matter whether that evil manifests as that Client doing malicious things with the token, or rather sharing that token and allowing other bad Clients to do the malicious things. Put another way, sharing the token doesn't change the 'scope' of the possible damage.&lt;br /&gt;
&lt;br /&gt;
But this isn't the case when basic OAuth is used for authentication. If a malicious Client can use its own token to impersonate a User at some other (non-evil) Client, then the scope of the attack expands greatly - to include all the damage that malicious Client can do at the other Client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/HxqWTqY1o7k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/3290953108250213257/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=3290953108250213257" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/3290953108250213257?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/3290953108250213257?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/04/which-begs-question.html" title="Which begs the question ...." /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkIDSHk4cSp7ImA9WhBUE04.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-3249735537216233098</id><published>2013-04-30T10:02:00.002-04:00</published><updated>2013-04-30T10:02:59.739-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-30T10:02:59.739-04:00</app:edited><title>YAPAUOFA (Yet Another Post About Using OAuth For Authentication)</title><content type="html">






&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:OfficeDocumentSettings&gt;
  &lt;o:AllowPNG/&gt;
 &lt;/o:OfficeDocumentSettings&gt;
&lt;/xml&gt;&lt;![endif]--&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;JA&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:EnableOpenTypeKerning/&gt;
   &lt;w:DontFlipMirrorIndents/&gt;
   &lt;w:OverrideTableStyleHps/&gt;
   &lt;w:UseFELayout/&gt;
  &lt;/w:Compatibility&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val="Cambria Math"/&gt;
   &lt;m:brkBin m:val="before"/&gt;
   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;
   &lt;m:smallFrac m:val="off"/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val="0"/&gt;
   &lt;m:rMargin m:val="0"/&gt;
   &lt;m:defJc m:val="centerGroup"/&gt;
   &lt;m:wrapIndent m:val="1440"/&gt;
   &lt;m:intLim m:val="subSup"/&gt;
   &lt;m:naryLim m:val="undOvr"/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="276"&gt;
  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;
  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;
  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;
  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;
  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="0" Name="Plain Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;
  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;
  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;

&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
table.MsoNormalTable
 {mso-style-name:"Table Normal";
 mso-tstyle-rowband-size:0;
 mso-tstyle-colband-size:0;
 mso-style-noshow:yes;
 mso-style-priority:99;
 mso-style-parent:"";
 mso-padding-alt:0in 5.4pt 0in 5.4pt;
 mso-para-margin:0in;
 mso-para-margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:Cambria;
 mso-ascii-font-family:Cambria;
 mso-ascii-theme-font:minor-latin;
 mso-hansi-font-family:Cambria;
 mso-hansi-theme-font:minor-latin;}
&lt;/style&gt;
&lt;![endif]--&gt;



&lt;!--StartFragment--&gt;

&lt;br /&gt;
&lt;div class="MsoNormal"&gt;
As both &lt;a href="http://www.thread-safe.com/2012/01/problem-with-oauth-for-authentication.html"&gt;John&lt;/a&gt; and &lt;a href="http://www.cloudidentity.com/blog/2013/01/02/oauth-2-0-and-sign-in-4/"&gt;Vittorio&lt;/a&gt; have written (extensively) on the matter, I will be brief.&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
The fundamental problem with using OAuth (with no additional constraints) for authentication is that it
relies on the following premise &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-left: .5in;"&gt;
‘If I can enable the delivery of a
valid access token to a Client, then I can lay claim to the identity
represented by that access token at the corresponding AS.’&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
So, if an attacker (acting as a normal OAuth Client, albeit
one with evil in its heart) can obtain a valid access token for a User Bob from
a valid AS, it can present it to a different valid Client and have the
following conversation&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;Attacker-&amp;gt;Client: Here is a token&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;Client-&amp;gt;AS: tell me about the User associated with this token&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;AS-&amp;gt;Client: that token is good and refers to Bob&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;Client to itself: Hmm, well it meets the criteria ……&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;Client-&amp;gt;Attacker: Welcome Bob&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;Attacker-&amp;gt;Client: Err, hi, yes well of course I'm Bob. Let's start moving $$&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
The core problem is that the valid Client is unable to
distinguish between a token previously handed to the Attacker, and a valid
token being delivered via the real Bob.&amp;nbsp;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
So why not add something to the token
to make that distinction easy for the valid Client, so the conversation now becomes&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;Attacker-&amp;gt;Client: Here is a token&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;Client to itself: Whoaaa, this token is not for me!!!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;Client-&amp;gt;Attacker: Nice try bud&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
That is what OpenID Connect does, the OIDC &lt;span style="font-family: Courier New, Courier, monospace; font-size: x-small;"&gt;id_token&lt;/span&gt; carries the audience (in the aud param) to
which the token was issued, preventing it from being presented elsewhere. If an OIDC Client is presented with an id_token with an audience not itself, it will stop the login process.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Facebook Connect similarly restricts the audience, but does so implicitly by requiring that the Client validate a signature calculated over the signed_request. If a Client can't validate the signature, it will know that something is up and abort.&lt;/div&gt;
&lt;!--EndFragment--&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/pT_hiaFmyaA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/3249735537216233098/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=3249735537216233098" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/3249735537216233098?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/3249735537216233098?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/04/yapauofa-yet-another-post-about-using.html" title="YAPAUOFA (Yet Another Post About Using OAuth For Authentication)" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C0INRHc8fyp7ImA9WhBUE08.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-6644218581409970674</id><published>2013-04-30T07:33:00.000-04:00</published><updated>2013-04-30T07:33:15.977-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-30T07:33:15.977-04:00</app:edited><title>Persona UX</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
You start off at the SP&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-5RbFclH4iR0/UW00iy-m0oI/AAAAAAAAKK8/KH_XIX8lfAI/s1600/Screen+Shot+2013-04-16+at+7.22.18+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="242" src="http://2.bp.blogspot.com/-5RbFclH4iR0/UW00iy-m0oI/AAAAAAAAKK8/KH_XIX8lfAI/s400/Screen+Shot+2013-04-16+at+7.22.18+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
The SP sends you to the IdP (of which there is 1? there was no discovery step)&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-UvskifOESms/UW00BUBJ9wI/AAAAAAAAKKU/MhFhKfGIlp8/s1600/Screen+Shot+2013-04-15+at+4.20.10+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="251" src="http://4.bp.blogspot.com/-UvskifOESms/UW00BUBJ9wI/AAAAAAAAKKU/MhFhKfGIlp8/s400/Screen+Shot+2013-04-15+at+4.20.10+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
I am going to log in to Persona.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-saBDP2la7ks/UW00Bsm3EXI/AAAAAAAAKKc/DpfoVzwhgIw/s1600/Screen+Shot+2013-04-15+at+4.20.38+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://4.bp.blogspot.com/-saBDP2la7ks/UW00Bsm3EXI/AAAAAAAAKKc/DpfoVzwhgIw/s400/Screen+Shot+2013-04-15+at+4.20.38+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-YV7qXmAtDQY/UW00BrJM67I/AAAAAAAAKKY/3htpKQwdybc/s1600/Screen+Shot+2013-04-15+at+4.20.50+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="247" src="http://3.bp.blogspot.com/-YV7qXmAtDQY/UW00BrJM67I/AAAAAAAAKKY/3htpKQwdybc/s400/Screen+Shot+2013-04-15+at+4.20.50+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
How long?&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-ke7tm4wFLEY/UW00DKKmSSI/AAAAAAAAKKw/1r32a_4YAQ0/s1600/Screen+Shot+2013-04-15+at+4.24.13+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="241" src="http://2.bp.blogspot.com/-ke7tm4wFLEY/UW00DKKmSSI/AAAAAAAAKKw/1r32a_4YAQ0/s400/Screen+Shot+2013-04-15+at+4.24.13+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;I'm in&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-kb21eq4h9Pk/UW00CxDhcUI/AAAAAAAAKKs/JivS6JpbwL0/s1600/Screen+Shot+2013-04-15+at+4.23.27+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="265" src="http://3.bp.blogspot.com/-kb21eq4h9Pk/UW00CxDhcUI/AAAAAAAAKKs/JivS6JpbwL0/s400/Screen+Shot+2013-04-15+at+4.23.27+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/W18zV3PJU7M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/6644218581409970674/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=6644218581409970674" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/6644218581409970674?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/6644218581409970674?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/04/persona-ux.html" title="Persona UX" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-5RbFclH4iR0/UW00iy-m0oI/AAAAAAAAKK8/KH_XIX8lfAI/s72-c/Screen+Shot+2013-04-16+at+7.22.18+AM.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C0IDRXkzeSp7ImA9WhBUE08.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-2685116554540625545</id><published>2013-04-30T07:32:00.000-04:00</published><updated>2013-04-30T07:32:54.781-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-30T07:32:54.781-04:00</app:edited><title>New line of greeting cards </title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ho8x0MzEnRs/UX-rzpx7lTI/AAAAAAAAKLY/vdtGGXsaZis/s1600/Screen+Shot+2013-04-29+at+5.04.52+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-ho8x0MzEnRs/UX-rzpx7lTI/AAAAAAAAKLY/vdtGGXsaZis/s400/Screen+Shot+2013-04-29+at+5.04.52+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/vtsnkUvbWBs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/2685116554540625545/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=2685116554540625545" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/2685116554540625545?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/2685116554540625545?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/04/new-line-of-greeting-cards_30.html" title="New line of greeting cards " /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-ho8x0MzEnRs/UX-rzpx7lTI/AAAAAAAAKLY/vdtGGXsaZis/s72-c/Screen+Shot+2013-04-29+at+5.04.52+PM.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A0IDRXkyeip7ImA9WhBVEE8.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-8713576147980622399</id><published>2013-04-15T08:39:00.002-04:00</published><updated>2013-04-15T08:39:34.792-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-15T08:39:34.792-04:00</app:edited><title>The hip bone is connected to the thigh bone ....</title><content type="html">The graphic below represents the 'chain of secrets' for OAuth - showing how it is the logical combination of a client &amp;amp; a user (as represented by their secrets) that are combined into OAuth tokens for use on API calls. &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-ZwJemu7uRbc/UWvyW7Ul2bI/AAAAAAAAKKE/ZLNyn1Fl268/s1600/New+Skitch.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="305" src="http://2.bp.blogspot.com/-ZwJemu7uRbc/UWvyW7Ul2bI/AAAAAAAAKKE/ZLNyn1Fl268/s640/New+Skitch.jpg" width="640" /&gt;&lt;/a&gt;After authenticating to an OAuth Authorization Server with it's password (green 'Pwd'), a User grants to a given Client an authorization grant, as manifested in an authorization code (green 'Code').&lt;br /&gt;
&lt;br /&gt;
An OAuth Client exchanges that code for a Refresh Token (Green 'Rt'), using its client secret (red 'Cs') on the request.&lt;br /&gt;
&lt;br /&gt;
The OAuth Client can exchange the refresh token for Access Token (green 'At'), also using its client secret on the request.&lt;br /&gt;
&lt;br /&gt;
The Access Token is then presented by the Client to the REST endpoint (yellow 'API') , as proof that the User has previously made the grant (ie gave their consent).&lt;br /&gt;
&lt;br /&gt;
For native clients, it's unrealistic to expect that the app could be distributed (through an app store) with a secret (such as 'Cs') so instead the app can be distributed with a global Application Secret (red 'As'), this subsequently exchanged for a unique Cs (as in the dynamic registration spec).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/U4H1FSS4210" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/8713576147980622399/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=8713576147980622399" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/8713576147980622399?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/8713576147980622399?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/04/the-hip-bone-is-connected-to-thigh-bone.html" title="The hip bone is connected to the thigh bone ...." /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-ZwJemu7uRbc/UWvyW7Ul2bI/AAAAAAAAKKE/ZLNyn1Fl268/s72-c/New+Skitch.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkENSH8-eyp7ImA9WhBWFEs.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-8144263214686993423</id><published>2013-04-08T18:38:00.001-04:00</published><updated>2013-04-08T18:38:19.153-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-08T18:38:19.153-04:00</app:edited><title>New line of greeting cards</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile5.posterous.com/getfile/files.posterous.com/paulmadsen/eWLAmqGVNLSqswDxrDkdw9mXquYFzPqIXoFm7yNoHxOolhblbVStpIGt1kmh/Screen_Shot_2013-04-08_at_6.31.png.scaled.1000.jpg"&gt;&lt;img alt="Screen_shot_2013-04-08_at_6" height="241" src="http://getfile3.posterous.com/getfile/files.posterous.com/paulmadsen/fTLAsnhU8t0d7nNU0C4KZzD2iKGYGPZDnxc6Gow5KAEGXrrE4B0eQm03EnAs/Screen_Shot_2013-04-08_at_6.31.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://paulmadsen.posterous.com/new-line-of-greeting-cards-69898"&gt;Pre(posterous)&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/8l0irJeilx4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/8144263214686993423/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=8144263214686993423" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/8144263214686993423?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/8144263214686993423?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/04/new-line-of-greeting-cards_8.html" title="New line of greeting cards" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkUBQ3k7eSp7ImA9WhBWE04.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-5492394916426642601</id><published>2013-04-07T07:30:00.001-04:00</published><updated>2013-04-07T07:30:52.701-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-07T07:30:52.701-04:00</app:edited><title>New line of greeting cards</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile2.posterous.com/getfile/files.posterous.com/paulmadsen/ryTBBE7J2nrWtPTVxTpqSRRCekxh40raRhM1xg833pbot6g5HOWERGcbWFKF/Screen_Shot_2013-04-06_at_7.22.png.scaled.1000.jpg"&gt;&lt;img alt="Screen_shot_2013-04-06_at_7" height="344" src="http://getfile0.posterous.com/getfile/files.posterous.com/paulmadsen/4m6m4nBMtFX1cFwBCWnwRbM7Qupdhli0aMXU7iUsZ4pHMfdGn6KuBPgT4Jcw/Screen_Shot_2013-04-06_at_7.22.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://paulmadsen.posterous.com/new-line-of-greeting-cards-48967"&gt;Pre(posterous)&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/Tj2fBojM3L4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/5492394916426642601/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=5492394916426642601" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/5492394916426642601?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/5492394916426642601?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/04/new-line-of-greeting-cards.html" title="New line of greeting cards" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0YDQXY_eCp7ImA9WhBWEkk.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-8477592853617567919</id><published>2013-04-06T06:46:00.001-04:00</published><updated>2013-04-06T06:46:10.840-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-06T06:46:10.840-04:00</app:edited><title>New line of greeting cards @klout</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile8.posterous.com/getfile/files.posterous.com/paulmadsen/NO4opABU6MammNxcRVGXfqtBnsuPtEj3pWEOznMpdohZrZd4EMPEgsqF3Kkh/Screen_Shot_2013-04-06_at_6.39.png.scaled.1000.jpg"&gt;&lt;img alt="Screen_shot_2013-04-06_at_6" height="332" src="http://getfile6.posterous.com/getfile/files.posterous.com/paulmadsen/7nLm6dSNjPPFnC4vsrfhdMN8qkqAhYDUDYw8LLSesGStBeZ6AUeyMF7IQGpq/Screen_Shot_2013-04-06_at_6.39.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://paulmadsen.posterous.com/new-line-of-greeting-cards-klout-70289"&gt;Pre(posterous)&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/AA6zrkmYeNw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/8477592853617567919/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=8477592853617567919" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/8477592853617567919?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/8477592853617567919?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/04/new-line-of-greeting-cards-klout.html" title="New line of greeting cards @klout" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CU8EQH46eyp7ImA9WhBWEEw.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-2558882669437380799</id><published>2013-04-03T14:25:00.004-04:00</published><updated>2013-04-03T14:30:01.013-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-03T14:30:01.013-04:00</app:edited><title>Computing task device choice</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-FHwLV2TFLOY/UVx1H3Mj7LI/AAAAAAAAKJg/mWwU88-oByY/s1600/Screen+Shot+2013-04-03+at+2.29.26+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="396" src="http://3.bp.blogspot.com/-FHwLV2TFLOY/UVx1H3Mj7LI/AAAAAAAAKJg/mWwU88-oByY/s640/Screen+Shot+2013-04-03+at+2.29.26+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/sNTmz8nOq9M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/2558882669437380799/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=2558882669437380799" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/2558882669437380799?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/2558882669437380799?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/04/computing-task-device-choice.html" title="Computing task device choice" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-FHwLV2TFLOY/UVx1H3Mj7LI/AAAAAAAAKJg/mWwU88-oByY/s72-c/Screen+Shot+2013-04-03+at+2.29.26+PM.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;Dk8BR344fip7ImA9WhBQE0g.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-6442996611721189396</id><published>2013-03-15T09:40:00.001-04:00</published><updated>2013-03-15T09:40:56.036-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-15T09:40:56.036-04:00</app:edited><title>New line of greeting cards</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile6.posterous.com/getfile/files.posterous.com/paulmadsen/oleMbI187rAJJopMVK2o3IatpcScutgnbu0mnlnEWHtoqZvgMw2chQy1dY8E/Screen_Shot_2013-03-15_at_9.38.png.scaled.1000.jpg"&gt;&lt;img alt="Screen_shot_2013-03-15_at_9" height="432" src="http://getfile4.posterous.com/getfile/files.posterous.com/paulmadsen/u3UHKrO4uWnZXJwdFamBpERpsq5TQzovk2zJMwf5zXMBq7EInpXyfZaxcPr0/Screen_Shot_2013-03-15_at_9.38.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://paulmadsen.posterous.com/new-line-of-greeting-cards-36574"&gt;Pre(posterous)&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/IK4aDR10wno" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/6442996611721189396/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=6442996611721189396" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/6442996611721189396?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/6442996611721189396?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/03/new-line-of-greeting-cards.html" title="New line of greeting cards" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C0AGQ34-eSp7ImA9WhBSGE0.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-1801012924137154982</id><published>2013-02-25T09:15:00.001-05:00</published><updated>2013-02-25T09:15:22.051-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-25T09:15:22.051-05:00</app:edited><title>New line of greeting cards</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile6.posterous.com/getfile/files.posterous.com/paulmadsen/rBr8tl0zzYOoa0TgceUDsXp3ZDKNySk6rpJoqumHaCmqjWtOUizRPrZtEcS8/Screen_Shot_2013-02-21_at_7.14.png.scaled.1000.jpg"&gt;&lt;img alt="Screen_shot_2013-02-21_at_7" height="386" src="http://getfile4.posterous.com/getfile/files.posterous.com/paulmadsen/m2jOHkPxzVRzGCcfn40TT9foAQnJ5VJpTuSqKDJUXB0JFl54VYCxnkYguqDY/Screen_Shot_2013-02-21_at_7.14.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://paulmadsen.posterous.com/new-line-of-greeting-cards-77253"&gt;Pre(posterous)&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/t8PYlViuKMU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/1801012924137154982/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=1801012924137154982" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/1801012924137154982?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/1801012924137154982?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/02/new-line-of-greeting-cards.html" title="New line of greeting cards" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CEUEQ307eCp7ImA9WhBSEkU.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-1568685799313166244</id><published>2013-02-19T08:56:00.001-05:00</published><updated>2013-02-19T08:56:42.300-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-19T08:56:42.300-05:00</app:edited><title>Device scale vs device mobility</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;p&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile0.posterous.com/getfile/files.posterous.com/temp-2013-02-19/pBpmvgyrjJrsndmoxnhbgtBcvzEpelvvmoJAckJgJxnuGJefGBJqDmwadxzo/Screen_Shot_2013-02-19_at_8.30.51_AM.png.scaled1000.png"&gt;&lt;img alt="Screen_shot_2013-02-19_at_8" height="402" src="http://getfile8.posterous.com/getfile/files.posterous.com/temp-2013-02-19/pBpmvgyrjJrsndmoxnhbgtBcvzEpelvvmoJAckJgJxnuGJefGBJqDmwadxzo/Screen_Shot_2013-02-19_at_8.30.51_AM.png.scaled500.png" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;/p&gt;      &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://paulmadsen.posterous.com/device-scale-vs-device-mobility"&gt;Pre(posterous)&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/wx59QG94usU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/1568685799313166244/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=1568685799313166244" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/1568685799313166244?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/1568685799313166244?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/02/device-scale-vs-device-mobility.html" title="Device scale vs device mobility" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;AkQFQ3o-cSp7ImA9WhBTEkg.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-4386176685024423706</id><published>2013-02-07T12:31:00.001-05:00</published><updated>2013-02-07T12:31:52.459-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-07T12:31:52.459-05:00</app:edited><title>Mobile Users taxonomy</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile2.posterous.com/getfile/files.posterous.com/paulmadsen/qzt6pLFdtptR30yBGwNSs7CNtcDi7b0pK3TiCShzrvtggCoGun91Ma6U6NLo/Screen_Shot_2013-02-07_at_10.5.png"&gt;&lt;img alt="Screen_shot_2013-02-07_at_10" height="381" src="http://getfile3.posterous.com/getfile/files.posterous.com/paulmadsen/mkc1XlAfuweAXKIQz63rF7EXuJWezn6LLDzIJhe3QloNC2WebhX6SZWvg2JA/Screen_Shot_2013-02-07_at_10.5.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://paulmadsen.posterous.com/mobile-users-taxonomy"&gt;Pre(posterous)&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/W6tOeHRYRJU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/4386176685024423706/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=4386176685024423706" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/4386176685024423706?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/4386176685024423706?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/02/mobile-users-taxonomy.html" title="Mobile Users taxonomy" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkcMRnk9fyp7ImA9WhNaFE0.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-4916865273378990802</id><published>2013-01-28T15:14:00.001-05:00</published><updated>2013-01-28T15:14:47.767-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-01-28T15:14:47.767-05:00</app:edited><title>New line of greeting cards</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile8.posterous.com/getfile/files.posterous.com/paulmadsen/Krwjszf5tJn0GOVv7QkIZe59VWfEhqBmJMBAfHwOj0giOOFKqY5coYZUf25e/Screen_Shot_2013-01-28_at_3.13.png"&gt;&lt;img alt="Screen_shot_2013-01-28_at_3" height="312" src="http://getfile9.posterous.com/getfile/files.posterous.com/paulmadsen/SjM2SyghY0ZkbMAlCwWbMG2ev23e8i13tfHLZ3zQWDrlP4XIc8m4bs7LJBa8/Screen_Shot_2013-01-28_at_3.13.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://paulmadsen.posterous.com/new-line-of-greeting-cards-9205"&gt;Pre(posterous)&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/YbDNh6F33OY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/4916865273378990802/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=4916865273378990802" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/4916865273378990802?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/4916865273378990802?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2013/01/new-line-of-greeting-cards.html" title="New line of greeting cards" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkQER3g9fyp7ImA9WhNVE0s.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-501353363013474427</id><published>2012-12-24T10:51:00.001-05:00</published><updated>2012-12-24T10:51:46.667-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-24T10:51:46.667-05:00</app:edited><title>New line of greeting cards</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile2.posterous.com/getfile/files.posterous.com/paulmadsen/ovDZEimI27BkJR0rL7hMbrhQ9l7pNb1p6G6p67EbbBvKoYhLo9tD9nMhww8X/Screen_Shot_2012-12-24_at_10.5.png"&gt;&lt;img alt="Screen_shot_2012-12-24_at_10" height="265" src="http://getfile3.posterous.com/getfile/files.posterous.com/paulmadsen/hjcc7CirW0hQADGm3rRAmXDNi68NqOJfG84Gtc5hDTcohpjgubvvQmOrPyU9/Screen_Shot_2012-12-24_at_10.5.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://paulmadsen.posterous.com/new-line-of-greeting-cards-36039"&gt;Pre(posterous)&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/wekOqM9rzZc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/501353363013474427/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=501353363013474427" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/501353363013474427?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/501353363013474427?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2012/12/new-line-of-greeting-cards_24.html" title="New line of greeting cards" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkEBRXc7eyp7ImA9WhNVEEQ.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-1705469250968083986</id><published>2012-12-21T07:57:00.001-05:00</published><updated>2012-12-21T07:57:34.903-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-21T07:57:34.903-05:00</app:edited><title>New line of greeting cards</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile2.posterous.com/getfile/files.posterous.com/paulmadsen/e0GPSMVgmwXWlGEYHbPAzqcfZvW6AJDluVsC5ESw02KvRUtd1co89FL3WcuI/Screen_Shot_2012-12-21_at_7.49.png"&gt;&lt;img alt="Screen_shot_2012-12-21_at_7" height="489" src="http://getfile3.posterous.com/getfile/files.posterous.com/paulmadsen/FI7my2nfUwbEdX20Hoic8Ae6Or41FQSsk5aPdUsvRoXzpPAQ2klqIp3ytZiF/Screen_Shot_2012-12-21_at_7.49.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://paulmadsen.posterous.com/new-line-of-greeting-cards-45755"&gt;Pre(posterous)&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/2pZfpcd3KK4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/1705469250968083986/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=1705469250968083986" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/1705469250968083986?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/1705469250968083986?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2012/12/new-line-of-greeting-cards_21.html" title="New line of greeting cards" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkAFQX07cSp7ImA9WhNVEEw.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-7380300288914324890</id><published>2012-12-20T08:38:00.001-05:00</published><updated>2012-12-20T08:38:30.309-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-20T08:38:30.309-05:00</app:edited><title>New line of greeting cards #instagram</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile3.posterous.com/getfile/files.posterous.com/paulmadsen/Y3HC1uDHsRKZncoAgzqbpABIhc6SEVCwnqx2imCwkLbkDNZPpGHUndUat0Nr/Screen_Shot_2012-12-20_at_8.36.png"&gt;&lt;img alt="Screen_shot_2012-12-20_at_8" height="311" src="http://getfile4.posterous.com/getfile/files.posterous.com/paulmadsen/3AWjJ5J25c4BAnrFaaO0fXFHKpFz7yiC2iZE3zVM3gWxV2cGLKuvMo9Obmy5/Screen_Shot_2012-12-20_at_8.36.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://paulmadsen.posterous.com/new-line-of-greeting-cards-instagram"&gt;Pre(posterous)&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/_sCdeFiG5Ms" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/7380300288914324890/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=7380300288914324890" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/7380300288914324890?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/7380300288914324890?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2012/12/new-line-of-greeting-cards-instagram.html" title="New line of greeting cards #instagram" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A08FRHY4eCp7ImA9WhNVEE0.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-9062559173039191730</id><published>2012-12-20T08:23:00.001-05:00</published><updated>2012-12-20T08:23:35.830-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-20T08:23:35.830-05:00</app:edited><title>New line of greeting cards</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile5.posterous.com/getfile/files.posterous.com/paulmadsen/KeKcQSLMY6FhUyE39degRZajGqeXx1mwQcHQAMe30seLpPlUbT9vNW32AXZB/Screen_Shot_2012-12-20_at_8.21.png"&gt;&lt;img alt="Screen_shot_2012-12-20_at_8" height="351" src="http://getfile6.posterous.com/getfile/files.posterous.com/paulmadsen/4CKtwvLYvVq7OM6ETe5BDzGE65RvmnEt77BrrvRTpbFHbrwjq9wV6NRGKKhP/Screen_Shot_2012-12-20_at_8.21.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://paulmadsen.posterous.com/new-line-of-greeting-cards-88055"&gt;Pre(posterous)&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/mVntiUvBv0Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/9062559173039191730/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=9062559173039191730" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/9062559173039191730?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/9062559173039191730?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2012/12/new-line-of-greeting-cards_20.html" title="New line of greeting cards" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A0cGQHw7eip7ImA9WhNWGUw.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-6280027628518010725</id><published>2012-12-19T07:10:00.001-05:00</published><updated>2012-12-19T07:10:21.202-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-19T07:10:21.202-05:00</app:edited><title>New line of greeting cards</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile8.posterous.com/getfile/files.posterous.com/paulmadsen/LijLDjQfvWYeydRfETPI7ROF7IH63oKOtVv3oAgPpJoD1Fa8WvUp2ymW5BCv/Screen_Shot_2012-12-19_at_7.04.png"&gt;&lt;img alt="Screen_shot_2012-12-19_at_7" height="250" src="http://getfile9.posterous.com/getfile/files.posterous.com/paulmadsen/nIQGXANupKJqbVdqo0JxbscEQT11FdeabEjk4hHMGRNRrmapKJPgwu55a026/Screen_Shot_2012-12-19_at_7.04.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://paulmadsen.posterous.com/new-line-of-greeting-cards-17104"&gt;Pre(posterous)&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/iX8u-XoHrwg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/6280027628518010725/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=6280027628518010725" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/6280027628518010725?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/6280027628518010725?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2012/12/new-line-of-greeting-cards_1168.html" title="New line of greeting cards" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUUARH08cCp7ImA9WhNWGUw.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-657192795661126623</id><published>2012-12-19T06:40:00.001-05:00</published><updated>2012-12-19T06:40:45.378-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-19T06:40:45.378-05:00</app:edited><title>New line of greeting cards</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile0.posterous.com/getfile/files.posterous.com/paulmadsen/lls1MUqVFgshVliaDpHHBEt0Nwq4A0rbBloQMZtPF0AANgs72wd6KjN32Ilt/Screen_Shot_2012-12-19_at_6.39.png"&gt;&lt;img alt="Screen_shot_2012-12-19_at_6" height="362" src="http://getfile1.posterous.com/getfile/files.posterous.com/paulmadsen/SUWNGX5yVhoifZKiRhqIDFQTrUyWVuEScyaDULKPeYtXJufvdGBuCzuOnKlf/Screen_Shot_2012-12-19_at_6.39.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://paulmadsen.posterous.com/new-line-of-greeting-cards-92301"&gt;Pre(posterous)&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/hhKWl6-klDs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/657192795661126623/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=657192795661126623" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/657192795661126623?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/657192795661126623?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2012/12/new-line-of-greeting-cards_19.html" title="New line of greeting cards" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A0YGQn0zfSp7ImA9WhNWGE4.&quot;"><id>tag:blogger.com,1999:blog-12447072.post-7877977443399866341</id><published>2012-12-18T08:58:00.001-05:00</published><updated>2012-12-18T08:58:43.385-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-18T08:58:43.385-05:00</app:edited><title>New line of greeting cards #BYOD</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://getfile7.posterous.com/getfile/files.posterous.com/paulmadsen/OlCOfyLkHyl2ebFs3QjXxRJ0wHm8ZjwYIIot5yO444l4rRyP1qDsYfiFFzBt/Screen_Shot_2012-12-18_at_8.56.png"&gt;&lt;img alt="Screen_shot_2012-12-18_at_8" height="337" src="http://getfile8.posterous.com/getfile/files.posterous.com/paulmadsen/1rWZUlIRnKhhTQ9bboymoWfpgKKIA8sEmol1ZcqYWloSGrDiysdNR3DmoCQS/Screen_Shot_2012-12-18_at_8.56.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;p style="font-size: 10px;"&gt;  &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;   from &lt;a href="http://paulmadsen.posterous.com/new-line-of-greeting-cards-byod-495"&gt;Pre(posterous)&lt;/a&gt;  &lt;/p&gt;  &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/gMwy/~4/P5S6csndtYc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://connectid.blogspot.com/feeds/7877977443399866341/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=12447072&amp;postID=7877977443399866341" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/7877977443399866341?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/12447072/posts/default/7877977443399866341?v=2" /><link rel="alternate" type="text/html" href="http://connectid.blogspot.com/2012/12/new-line-of-greeting-cards-byod.html" title="New line of greeting cards #BYOD" /><author><name>Paul Madsen</name><uri>http://www.blogger.com/profile/08489111023182783403</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_ClkXB6AwBIs/SGa-Hoo4O5I/AAAAAAAAAwA/s4FWV_2b5s0/S220/b63da1135a3eb361_o.jpg" /></author><thr:total>0</thr:total></entry></feed>
