<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Marcus Povey &#187; oauth</title>
	<atom:link href="http://www.marcus-povey.co.uk/tag/oauth/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marcus-povey.co.uk</link>
	<description>Making the world a better place, one byte at a time...</description>
	<lastBuildDate>Fri, 16 Jul 2010 09:00:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<atom:link rel='hub' href='http://www.marcus-povey.co.uk/?pushpress=hub'/>
		<item>
		<title>The case for OpenID lite</title>
		<link>http://www.marcus-povey.co.uk/2009/04/08/the-case-for-openid-lite/</link>
		<comments>http://www.marcus-povey.co.uk/2009/04/08/the-case-for-openid-lite/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 14:59:54 +0000</pubDate>
		<dc:creator>Marcus Povey</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[barcamptransparency]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[openid]]></category>
		<category><![CDATA[rest]]></category>

		<guid isPermaLink="false">http://www.marcus-povey.co.uk/?p=170</guid>
		<description><![CDATA[Recently &#8211; both in my roll as a developer on the Elgg project, and as one of the organisers of Barcamp Transparency &#8211; I have found myself having to sign up for a whole bunch of accounts for various sites. Each one asks me to fill in a profile, and each time I end up [...]]]></description>
			<content:encoded><![CDATA[<p>Recently &#8211; both in my roll as a developer on the <a href="http://www.elgg.org">Elgg project</a>, and as one of the organisers of <a href="http://barcamptransparency.pbwiki.com/FrontPage">Barcamp Transparency</a> &#8211; I have found myself having to sign up for a whole bunch of accounts for various sites.</p>
<p>Each one asks me to fill in a profile, and each time I end up repeating myself. I am sick of it. This is the kind of thing <a href="http://en.wikipedia.org/wiki/OpenID">OpenID</a> was developed to partially solve, however I think this is overkill.</p>
<p>OpenID (<a href="http://benwerd.com/2009/04/notes-from-barcamp-oxford/">as mentioned elsewhere</a>) has problems and its uptake is declining. I rather think this is because it is trying to do far too much.</p>
<p><a href="http://www.gravatar.com">Gravatar</a> on the other-hand is simple and to the point, requires the end user to do very little and is pretty damn simple to implement from a server point of view.</p>
<p>Could the same approach be used for profile fields? I think yes, and here&#8217;s how it might work&#8230;</p>
<ul>
<li>First of all, we have a site somewhere which lets a user create an account and fill in their profile fields.</li>
<li>The profile comes pre-populated with common labels (name, description, location, interests etc), but lets users add extra fields if they like.</li>
<li>The service has a REST like API at the back end which accepts queries like: <strong>http://fooprofile.com/api/<em>[field]</em>/<em>[md5 hash of email address]</em>/</strong> to which it returns a blob of text.</li>
<li>When a user creates a new account on bar.com, that site should attempt to pre-populate any profile fields with data from the service based on an md5 hash of their email address. These can of course be overridden locally.</li>
<li>Periodically bar.com should update its fields via the API, unless the user has overridden the profile field (or has otherwise selected not to do so).</li>
</ul>
<p>Crucially with this light method, the user experience of the site remains pretty much unchanged and all the hard work is done magically in the background.</p>
<p>I also think that there is no need to specify what fields constitute a profile. The semantics of this will likely evolve naturally over time and there is no way to predict what extra fields will be needed. You wouldn&#8217;t dictate what tags someone would use, so why dictate profile fields?</p>
<p>In phase two of this you could easily imagine using <a href="http://en.wikipedia.org/wiki/OAuth">OAuth</a> to decide which fields a site has access to.</p>
<p>You could also imagine multiple providers being possible (providing the api was consistent). So when a user signs in to bar.com they are asked who there provider is &#8211; so they could select fooprofile.com or wibbleprofile.co.uk or any other provider. This would keep OpenID&#8217;s distributed nature, but without confusing the user too much &#8211; a url is always a url in this model.</p>
<p>So all that leaves is the single point authentication aspect as a distinct and separate problem, and one which must be solved in a way that is transparent to the user &#8211; perhaps an encrypted and <a href="http://en.wikipedia.org/wiki/Public_key">public key</a> authenticated token exchange using a similar technology as the above?</p>
<p>Just pondering&#8230;.</p>
<p><strong>Update:</strong> I have bashed together an example of the sort of thing I was talking about over here: <a href="http://skunk.marcus-povey.co.uk/aer/">http://skunk.marcus-povey.co.uk/aer/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcus-povey.co.uk/2009/04/08/the-case-for-openid-lite/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
