<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Dented Reality &#187; authentication</title>
	<atom:link href="http://dentedreality.com.au/tags/authentication/feed/" rel="self" type="application/rss+xml" />
	<link>http://dentedreality.com.au</link>
	<description>Beau Lebens throws down his opinion on all sorts of things he doesn&#039;t know too much about.</description>
	<lastBuildDate>Tue, 15 May 2012 07:24:52 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-beta4-20800</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>WordPress Authentication Framework: Keyring</title>
		<link>http://dentedreality.com.au/2012/03/keyring-wordpress-authentication-framework/</link>
		<comments>http://dentedreality.com.au/2012/03/keyring-wordpress-authentication-framework/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 03:48:08 +0000</pubDate>
		<dc:creator>Beau Lebens</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Techn(ical|ology)]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[delicious]]></category>
		<category><![CDATA[digital hub]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[http basic]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[plugin development]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://dentedreality.com.au/?p=8067</guid>
		<description><![CDATA[Quite a while ago (like, in at least 2009), I started thinking about regaining control of all the content I was producing online. I was posting photos to Flickr, saving bookmarks to Delicious. I started Tweeting. I was checking in. All fun and games, and all of those services offer great tools for interacting with them [...]]]></description>
			<content:encoded><![CDATA[<p class="aligncenter"><img class="size-medium wp-image-8068 aligncenter" title="Keyring Header" src="http://dentedreality.com.au/wp-content/uploads/2012/03/Screen-Shot-2012-03-19-at-8.16.31-PM-500x164.png" alt="Keyring: An authentication framework for your plugins" width="500" height="164" /></p>
<p>Quite a while ago (like, in <a href="https://twitter.com/#!/beaulebens/status/6154564723">at least 2009</a>), I started thinking about regaining control of all the content I was producing online. I was posting photos to Flickr, saving bookmarks to Delicious. I started Tweeting. I was checking in. All fun and games, and all of those services offer great tools for interacting with them (let&#8217;s face it, tools that are much better than WordPress&#8217;, because they are <strong>focussed on one thing</strong>). So I figured, why not write importers for these services and pull my content back over to my WordPress. And keep doing it periodically, so that I could keep using those tools. I want WordPress to be my &#8220;home on the web&#8221;, my digital hub, but I want to use these neat tools with their fancy apps and what-have-you.</p>
<p>Very quickly, I realized that if I was going to do anything useful on most web services, I&#8217;d need to be able to authenticate with them. No biggie, right? I know my username and password&#8230; Oh. Right. OAuth. Turns out that most web services use OAuth (or something similar) to authenticate, and it turns out that that&#8217;s actually a bit of a bear to implement, when all you want to do is write a simple little Twitter importer. And then again for a Foursquare importer. And a Flickr importer.</p>
<p>What I needed was a shared, generic authentication framework that would do all the heavy lifting for me. I would tell it I wanted a connection to specific service, and if it didn&#8217;t have one, it&#8217;d walk the user through the process of getting one. It&#8217;d give me a standardized format of authentication credentials and abstract out all the complexity of making authenticated requests against those services. Then it would make me a coffee*. What I needed, was <a title="Web service authentication framework for WordPress" href="http://wordpress.org/extend/plugins/keyring/">Keyring</a>.<br />
<span id="more-8067"></span><br />
And so Keyring was born. Basically it&#8217;s a bunch of code that&#8217;ll handle external authentication with a web service so you don&#8217;t have to. It&#8217;ll store tokens/passwords/whatever, can talk to all kinds of different services, and is really, really extendable. It also has hooks. Lots of them. So if you want to do something custom, you probably can. It&#8217;s intended to be a foundation for writing other plugins, and really doesn&#8217;t do much interesting on its own.</p>
<p>I already have importers written for Twitter, Delicious and Foursquare which are based on Keyring and so far they&#8217;re working pretty nicely. There&#8217;s a lot of work to go on this project though. For Keyring to be a truly powerful framework, I need to:</p>
<ul>
<li>Drastically improve the UI, which is a hodge-podge of hideousness at the moment</li>
<li>Improve a few parts of the Core UX which are pretty clunky right now</li>
<li>Put in some more failsafes/helpers for making sure things are up and running before allowing plugins to use Keyring</li>
<li>Improve internal security</li>
<li>Tighten up Permissions/Roles restrictions all over the place</li>
<li>Handle multi-user blogs (especially around token storage)</li>
<li>Work on Multi-Site</li>
<li>Support more services (preferences? suggestions?)</li>
<li>Figure out a good way of allowing people to drop in their own Service extensions (and not overwrite them with updates)</li>
<li>Improve the handling of auth flows in other plugins, and preferably move as much of that logic as possible into Keyring Core</li>
</ul>
<p>I&#8217;m slowly working on this, but it&#8217;s all kind of a personal project at this point, so it&#8217;s just a few hours here and there. My main goal is to get it functioning so that I can get my content back. Once that&#8217;s done, then I&#8217;ll spend more time tightening it up for other/platform use. I also have a couple of other &#8220;companion plugins&#8221; that I&#8217;m working on &#8212; auto-linking text for Twitter @mentions and #hashtags, mining posts and downloading remote media (e.g. Instagram images) and some stuff around geo for mapping things like Tweets and Foursquare checkins (all the geo-data is imported in the importers I wrote).</p>
<p>Next on the list is abstracting and then releasing the importers that I have. That will give people something more tangible to use as an example. After that I&#8217;ll be working on a Flickr importer, but that&#8217;s a pretty big project in and of itself.</p>
<p>So, what do you think? Useful? Waste of time? Massive, gaping, horrendous holes? LMK (in the comments) and we&#8217;ll see what we can do.</p>
<p>And you know the drill &#8212; patches welcome <img src='http://dentedreality.com.au/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><small>* Sadly, Keyring will not make you coffee. Yet.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://dentedreality.com.au/2012/03/keyring-wordpress-authentication-framework/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:thumbnail url="http://dentedreality.com.au/wp-content/uploads/2012/03/Screen-Shot-2012-03-19-at-8.16.31-PM-80x80.png" />
		<media:content url="http://dentedreality.com.au/wp-content/uploads/2012/03/Screen-Shot-2012-03-19-at-8.16.31-PM.png" medium="image">
			<media:title type="html">Keyring Header</media:title>
			<media:thumbnail url="http://dentedreality.com.au/wp-content/uploads/2012/03/Screen-Shot-2012-03-19-at-8.16.31-PM-80x80.png" />
		</media:content>
	</item>
		<item>
		<title>Web Service Authentication APIs</title>
		<link>http://dentedreality.com.au/2010/01/web-service-authentication-apis/</link>
		<comments>http://dentedreality.com.au/2010/01/web-service-authentication-apis/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 01:34:55 +0000</pubDate>
		<dc:creator>Beau Lebens</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Techn(ical|ology)]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[authsub]]></category>
		<category><![CDATA[bebo]]></category>
		<category><![CDATA[blogger]]></category>
		<category><![CDATA[delicious]]></category>
		<category><![CDATA[digg]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[dopplr]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[friendfeed]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[last.fm]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[mixx]]></category>
		<category><![CDATA[myspace]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[openid]]></category>
		<category><![CDATA[picasa]]></category>
		<category><![CDATA[posterous]]></category>
		<category><![CDATA[reddit]]></category>
		<category><![CDATA[tumblr]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[verification]]></category>
		<category><![CDATA[vimeo]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://dentedreality.com.au/?p=4670</guid>
		<description><![CDATA[For a project I&#8217;m working on, I&#8217;ve been looking at a lot of web service authentication/verification APIs lately. I thought folks might be interested in the results. Here are the methods available for a variety of web services/applications online, with links to their appropriate docs: Web Application Authentication Method Bebo Custom token Blogger.com AuthSub Delicious [...]]]></description>
			<content:encoded><![CDATA[<p>For a project I&#8217;m working on, I&#8217;ve been looking at a lot of web service authentication/verification APIs lately. I thought folks might be interested in the results. Here are the methods available for a variety of web services/applications online, with links to their appropriate docs:</p>
<p><span id="more-4670"></span></p>
<table class="aligncenter" style="border: 0pt solid #cccccc;" border="0">
<thead>
<tr>
<th>Web Application</th>
<th>Authentication Method</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="http://bebo.com">Bebo</a></td>
<td><a href="http://www.bebo.com/docs/auth">Custom token</a></td>
</tr>
<tr>
<td><a href="http://blogger.com">Blogger.com</a></td>
<td><a href="http://code.google.com/apis/blogger/docs/2.0/developers_guide_protocol.html#Authenticating">AuthSub</a></td>
</tr>
<tr>
<td><a href="http://delicious.com">Delicious</a></td>
<td><a href="http://delicious.com/help/api">OAuth (and HTTP Basic)</a></td>
</tr>
<tr>
<td><a href="http://digg.com">Digg</a></td>
<td><a href="http://digg.com/api/docs/authentication">OAuth</a></td>
</tr>
<tr>
<td><a href="http://dopplr.com">Dopplr</a></td>
<td><a href="http://dopplr.pbworks.com/">AuthSub</a></td>
</tr>
<tr>
<td><a href="http://facebook.com">Facebook</a></td>
<td><a href="http://developers.facebook.com/connect.php">Custom token (Facebook Connect)</a></td>
</tr>
<tr>
<td><a href="http://flickr.com">Flickr</a></td>
<td><a href="http://www.flickr.com/services/api/auth.spec.html">Custom token</a></td>
</tr>
<tr>
<td><a href="http://friendfeed.com">FriendFeed</a></td>
<td><a href="http://friendfeed.com/api/documentation#authentication">OAuth</a></td>
</tr>
<tr>
<td><a href="http://www.google.com/profiles">Google Profiles</a></td>
<td><a href="http://code.google.com/apis/apps/profiles/developers_guide_protocol.html#Auth">AuthSub</a></td>
</tr>
<tr>
<td><a href="http://last.fm">Last.fm</a></td>
<td><a href="http://www.last.fm/api/webauth">Custom token</a></td>
</tr>
<tr>
<td><a href="http://linkedin.com">LinkedIn</a></td>
<td><a href="http://developer.linkedin.com/docs/DOC-1008">OAuth</a></td>
</tr>
<tr>
<td><a href="http://mixx.com">Mixx</a></td>
<td><a href="http://help.mixx.com/API:v1r1:user_auth">OAuth</a></td>
</tr>
<tr>
<td><a href="http://myspace.com">MySpace</a></td>
<td><a href="http://wiki.developer.myspace.com/index.php?title=What_is_MySpaceID%3F#MySpace_Application_Authorization_and_OAuth">OAuth</a></td>
</tr>
<tr>
<td><a href="http://picasa.com">Picasa</a></td>
<td><a href="http://code.google.com/apis/picasaweb/docs/1.0/developers_guide_php.html#AuthSub">AuthSub</a></td>
</tr>
<tr>
<td><a href="http://posterous.com">Posterous</a></td>
<td><a href="http://posterous.com/api/posting">HTTP Basic</a></td>
</tr>
<tr>
<td><a href="http://reddit.com">Reddit</a></td>
<td><a href="http://code.reddit.com/wiki/API">Custom token</a> (modhash)</td>
</tr>
<tr>
<td><a href="http://tumblr.com">Tumblr</a></td>
<td><a href="http://www.tumblr.com/docs/api#authenticate">HTTP POST</a> (plaintext password)</td>
</tr>
<tr>
<td><a href="http://twitter.com">Twitter</a></td>
<td><a href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-oauth-authorize">OAuth</a></td>
</tr>
<tr>
<td><a href="http://vimeo.com">Vimeo</a></td>
<td><a href="http://www.vimeo.com/api/docs/authentication">OAuth</a></td>
</tr>
<tr>
<td><a href="http://yahoo.com">Yahoo</a></td>
<td><a href="http://developer.yahoo.com/oauth/">OAuth</a></td>
</tr>
<tr>
<td><a href="http://youtube.com">YouTube</a></td>
<td><a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_authsub.html">AuthSub</a> and <a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_oauth.html">OAuth</a></td>
</tr>
</tbody>
</table>
<p>Interesting stats:</p>
<ul>
<li>21 web services analyzed</li>
<li>10 (48%) are using <a href="http://oauth.net">OAuth</a> (including YouTube)</li>
<li>5 (24%) are using <a href="http://code.google.com/apis/accounts/docs/AuthSub.html">AuthSub</a> (also including YouTube)</li>
<li>Dopplr is the only non-Google property using AuthSub</li>
<li>Tumblr is the only property using plaintext passwords, although Posterous is using HTTP Basic, which is basically plaintext</li>
</ul>
<p>Looks like OAuth is gaining some real traction, and in fact if Google switched over to using it, it&#8217;d have a real hold on the authentication space. That would probably be a good thing. Next up in my adventure will be seeing how truly conformant/compatible all these OAuth implementations are, and how portable my code be able to be in accessing them all.</p>
<p>If you&#8217;d like to add any others that you know about, please throw them in the comments and I&#8217;ll add them to the table above so everyone can find them.</p>
]]></content:encoded>
			<wfw:commentRss>http://dentedreality.com.au/2010/01/web-service-authentication-apis/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
	</item>
		<item>
		<title>No More HTTP Authentication</title>
		<link>http://dentedreality.com.au/2004/03/no-more-http-authentication/</link>
		<comments>http://dentedreality.com.au/2004/03/no-more-http-authentication/#comments</comments>
		<pubDate>Tue, 16 Mar 2004 00:19:00 +0000</pubDate>
		<dc:creator>Beau Lebens</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[http auth]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php cgi]]></category>
		<category><![CDATA[sessions]]></category>
		<category><![CDATA[webpad]]></category>
		<category><![CDATA[webpad 3.0]]></category>

		<guid isPermaLink="false">http://wiggin.local/dev/dentedreality.com.au/2004/03/no-more-http-authentication/</guid>
		<description><![CDATA[Well, it&#8217;s official. webpad 3.0 will now use integrated, session-based authentication for users, rather than HTTP Authentication. I&#8217;ve changed to this in large part to allow me to use it in CGI mode (which, incidentally, works wonderfully), so webpad is even more portable now. In fact, if you have PHP running in CGI mode, I [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it&#8217;s official. webpad 3.0 will now use integrated, session-based authentication for users, rather than HTTP Authentication. I&#8217;ve changed to this in large part to allow me to use it in CGI mode (which, incidentally, works wonderfully), so webpad is even more portable now. In fact, if you have PHP running in CGI mode, I will be reccommending that you run webpad under that mode.</p>
<p>With the new integrated authentication, when you hit webpad you are presented with a log in screen, where you enter a username/password as normal, then continue to the actual application.</p>
<p>I&#8217;m also currently looking at templating (thanks to a previous hack that <a href="http://www.bradchoate.com/" title="Go to bradchoate.com">Brad Choate</a> made to webpad 2.0 which allowed it to selectively edit the contents of a file, only within certain regions (denoted by webpad tags of some sort). I will have this functionality included in the official release of webpad 3.0 Personal Edition, and it will definitely be a part of the Professional release.</p>
<p>Things may have been quiet, but they&#8217;re not completely dead! <img src='http://dentedreality.com.au/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dentedreality.com.au/2004/03/no-more-http-authentication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>API Problem Fixed</title>
		<link>http://dentedreality.com.au/2004/02/api-problem-fixed/</link>
		<comments>http://dentedreality.com.au/2004/02/api-problem-fixed/#comments</comments>
		<pubDate>Thu, 12 Feb 2004 08:52:00 +0000</pubDate>
		<dc:creator>Beau Lebens</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[avantblog]]></category>
		<category><![CDATA[blogger]]></category>

		<guid isPermaLink="false">http://wiggin.local/dev/dentedreality.com.au/2004/02/api-problem-fixed/</guid>
		<description><![CDATA[Thanks to a suggestion from Bill, I found the problem that AvantBlog has been having when attempting to authenticate with the Blogger.com servers&#8230; basically they moved their servers!. As Robert discovered in this post, the server that responds to API requests moved from plant.blogger.com to www.blogger.com, so basically I was posting authentication requests to a [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to a suggestion from <a href="http://www.billsyaysthis.com/" title="Go to Bill's site, BillSaysThis">Bill</a>, I found the problem that AvantBlog has been having when attempting to authenticate with the Blogger.com servers&#8230; basically they moved their servers!.</p>
<p>As Robert discovered in <a href="http://groups.yahoo.com/group/bloggerDev/message/1928" title="Read message at bloggerDev discussion list (might require login)">this post</a>, the server that responds to API requests moved from plant.blogger.com to www.blogger.com, so basically I was posting authentication requests to a server that didn&#8217;t exist. This has been rectified now and it appears to be operating properly.</p>
<p>Enjoy your blogging folks <img src='http://dentedreality.com.au/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dentedreality.com.au/2004/02/api-problem-fixed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>AvantBlog Authentication Work-around</title>
		<link>http://dentedreality.com.au/2003/08/avantblog-authentication-work-around/</link>
		<comments>http://dentedreality.com.au/2003/08/avantblog-authentication-work-around/#comments</comments>
		<pubDate>Wed, 27 Aug 2003 12:07:00 +0000</pubDate>
		<dc:creator>Beau Lebens</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[avantblog]]></category>
		<category><![CDATA[avantgo]]></category>

		<guid isPermaLink="false">http://wiggin.local/dev/dentedreality.com.au/2003/08/avantblog-authentication-work-around/</guid>
		<description><![CDATA[I&#8217;ve posted details of an authentication problem work-around for AvantBlog. Basically the problem arises because AvantGo appears to expire sessions after about 24 hours whether you want them to or not (correct me if I&#8217;m wrong here anyone&#8230;) To get around this, you can easily configure your AvantBlog channel to pass your username and password [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve posted details of an authentication problem work-around for AvantBlog. Basically the problem arises because AvantGo appears to expire sessions after about 24 hours whether you want them to or not (correct me if I&#8217;m wrong here anyone&#8230;)</p>
<p>To get around this, you can easily configure your AvantBlog channel to pass your username and password along with each request for the channel, as per these instructions;</p>
<ol type="1">
<li>Go to <a href="https://my.avantgo.com/home/">https://my.avantgo.com/home/</a> and log in using your *AvantGo* details</li>
<li>Click the &#8220;My Device&#8221; tab on the left</li>
<li>Click your &#8220;AvantBlog&#8221; channel to modify its settings</li>
<li>In the &#8220;Location&#8221; box, add the following onto the end of the address &#8220;?username=USER&amp;password=PASS&#8221; (no quotes), where USER is replaced with your Blogger.com username, and PASS is replaced with your Blogger.com password.</li>
<li>Save the details (&#8220;Save Channel&#8221;) and exit AvantGo&#8217;s website</li>
<li>Synch your handheld again &#8211; you <strong>should</strong> find that you are now automatically logged into AvantBlog, and this should continue each time you synch, whether you post or not!</li>
</ol>
<p>I&#8217;ll also post my warning that went with the mailing list email I sent out here;</p>
<p class="warning">Obviously, this method means that your channel is defined using your actual Blogger.com username and password, in plain text. These details are passed &#8216;over-the-wire&#8217; in plain txt, so this is not particularly secure. The chances of someone exploiting this are minimal, however if your blog contains any sensitive information or is of a secure nature of any sort, I do not recommend that you configure AvantBlog using this method.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://dentedreality.com.au/2003/08/avantblog-authentication-work-around/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
	</channel>
</rss>

