<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>OAuth &#187; balfanz</title>
	<atom:link href="http://blog.oauth.net/author/balfanz/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.oauth.net</link>
	<description>An open protocol to allow secure API authorization in a simple and standard method from web, desktop, and mobile applications.</description>
	<lastBuildDate>Mon, 11 May 2009 23:15:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.oauth.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/1a4269caa96cb29bb5d69d95d75bf778?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>OAuth &#187; balfanz</title>
		<link>http://blog.oauth.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.oauth.net/osd.xml" title="OAuth" />
	<atom:link rel='hub' href='http://blog.oauth.net/?pushpress=hub'/>
		<item>
		<title>OAuth, meet Gadgets! Gadgets, meet OAuth!</title>
		<link>http://blog.oauth.net/2008/06/04/oauth-meet-gadgets-gadgets-meet-oauth/</link>
		<comments>http://blog.oauth.net/2008/06/04/oauth-meet-gadgets-gadgets-meet-oauth/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 18:21:41 +0000</pubDate>
		<dc:creator>balfanz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://oauth.wordpress.com/?p=17</guid>
		<description><![CDATA[The Apache Shindig Project has recently added support for OAuth to its &#8220;Shindig&#8221; gadget server, which is quickly becoming the workhorse behind such sites as Orkut, hi5, or the recently announced iGoogle sandbox. That is great news for OAuth: it means that you no longer have to run a full-fledged server, or write a desktop [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oauth.net&blog=1491687&post=17&subd=oauth&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>The <a id="eisz" title="Apache Shindig Project" href="http://incubator.apache.org/shindig">Apache Shindig Project</a> has <a id="re3f" title="recently added" href="http://groups.google.com/group/oauth/browse_thread/thread/5dea93b44dbbb628">recently added</a> support for <a id="es_j" title="[OAuth]" href="http://www.oauth.net/">OAuth</a> to its &#8220;Shindig&#8221; gadget server, which is quickly becoming the workhorse behind such sites as <a id="ano." title="[Orkut]," href="http://www.orkut.com/">Orkut,</a> <a id="xejf" title="[hi5]," href="http://www.hi5.com/">hi5,</a> or the recently announced <a id="gip2" title="[iGoogle sandbox]" href="http://google-code-updates.blogspot.com/2008/04/by-saurabh-mathur-igoogle-team-today.html">iGoogle sandbox</a>. That is great news for OAuth: it means that you no longer have to run a full-fledged server, or write a desktop app, to be an OAuth consumer &#8211; any gadget can access OAuth-protected resources.</p>
<p>(We posted <a href="https://sites.google.com/site/ericsachs/demoproxy">screenshots</a> that show how a sample OAuth gadget works for an end-user, as well as information on how to get one working on the Orkut/iGoogle sandbox if you are interested.)</p>
<p>When adding support for OAuth to Shindig we found it useful to add two simple extensions to OAuth, each adding just one additional parameter to OAuth requests, which I&#8217;ll describe below.</p>
<h3>Key Rotation</h3>
<p>One nice thing about gadget containers like Orkut or iGoogle supporting OAuth for the gadgets they host is that gadgets don&#8217;t need to bring their own consumer key and secret to the table. If they don&#8217;t have any, Shindig will just sign the OAuth request with <span><em>its </em></span>keys, and send the request on to the service provider that the gadget wants to talk to. Imagine a large gadget container like iGoogle adopting Shindig and its OAuth support. It wouldn&#8217;t scale for Google to negotiate consumer secrets with every OAuth service provider that iGoogle gadgets may want to talk to. It&#8217;s much more likely that iGoogle would just use the RSA_SHA1 signature method on outgoing OAuth requests, publish its public key, and hope that service providers would accept requests signed by that public key.</p>
<p>What if iGoogle wants to change its signing key every now and then (which it should &#8211; it&#8217;s called good cryptographic hygiene)? It should be easy for service providers that have chosen to accept iGoogle&#8217;s signing key to switch over to the new signing key. That is what the <a id="caag" title="[key rotation OAuth extension]" href="http://dirk.balfanz.googlepages.com/oauth_key_rotation.html">key rotation OAuth extension</a> is for.</p>
<h3>Gadgets Extension</h3>
<p>Remember how I said that gadgets don&#8217;t have to bring their own consumer key and secret to use OAuth? If they don&#8217;t, Shindig will just sign the OAuth requests with <em>its</em> private RSA key. But how will a service provider then know that the request came from a particular gadget? That&#8217;s what the <a id="m5ly" title="[second new OAuth extension]" href="http://dirk.balfanz.googlepages.com/oauth_gadget_extension.html">second new OAuth extension</a> is for &#8211; it simply says that in this case, the OAuth consumer should include the identifier of the gadget into the outgoing OAuth request. This identifier is the URL where the gadget is hosted. Service providers that support the gadgets extension can tell users at token-authorization time which gadget container is requesting access, and on behalf of which gadget access is requested. That improves transparency to the user and makes it clear that both the gadget container and the gadget itself should be deemed trustworthy before granting an access token to them.</p>
<p>These features are being implemented as we speak. It&#8217;s not too late to <a id="w_tv" title="join the discussion" href="http://groups.google.com/group/oauth">join the discussion</a>.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/oauth.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/oauth.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oauth.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oauth.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oauth.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oauth.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oauth.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oauth.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oauth.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oauth.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oauth.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oauth.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oauth.net&blog=1491687&post=17&subd=oauth&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.oauth.net/2008/06/04/oauth-meet-gadgets-gadgets-meet-oauth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5ce1ba9dce892a49a0cd7750796a1a37?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">balfanz</media:title>
		</media:content>
	</item>
	</channel>
</rss>