<?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>Software and Opinions &#187; openid</title>
	<atom:link href="http://ianloic.com/tag/openid/feed/" rel="self" type="application/rss+xml" />
	<link>http://ianloic.com</link>
	<description>from Ian McKellar</description>
	<lastBuildDate>Thu, 19 Nov 2009 22:05:43 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>OpenID Usability Non-solutions</title>
		<link>http://ianloic.com/2008/07/01/openid-usability-non-solutions/</link>
		<comments>http://ianloic.com/2008/07/01/openid-usability-non-solutions/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 02:06:06 +0000</pubDate>
		<dc:creator>Ian McKellar</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[openid]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://ianloic.com/?p=58</guid>
		<description><![CDATA[At work we&#8217;re building our new centralized authentication solution. Allowing OpenID logins is not part of our first release, but it&#8217;ll follow at some point in the future, at least if Rob has any say in it. Even though I&#8217;ve had an OpenID identity for as long as anyone, use mine extensively and have even [...]]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://www.songbirdnest.com/">work</a> we&#8217;re building our new centralized authentication solution. Allowing <a href="http://www.openid.net/">OpenID</a> logins is not part of our first release, but it&#8217;ll follow at some point in the future, at least if <a href="http://www.roblord.org/">Rob</a> has any say in it. Even though I&#8217;ve had an <a href="http://ian.mckellar.org/">OpenID identity</a> for as long as anyone, use mine extensively and have even <a href="http://ianloic.com/2008/01/13/a-simpler-mobile-openid-workflow/">implemented my own provider</a>, I&#8217;m not convinced it&#8217;s a good idea to only support OpenID logins.</p>
<p>The approach taken by <a href="http://www.ma.gnolia.com/">Magnolia</a> (who only support OpenID logins these days) and <a href="http://www.idselector.com/">IDSelector</a> (which is supposed to make OpenID usable) is allow users to log in with any of their existing accounts that offer OpenID (Yahoo, Livejournal, AOL, etc). The thinking behind this is that users don&#8217;t have to remember a new username and password this way. This thinking is backwards. Users already remember their usernames and passwords. Web browsers remember passwords and people use consistent usernames and password patterns across sites. Both software and humans have adapted to this problem. People haven&#8217;t adapted to remembering which account they used to sign into a site.</p>
<p>If I sign up for Magnolia using one of the accounts I have (of the 7 external account types they offer, I have 5) what happens in 2 weeks when my cookie expires and I need to log in again? Even though I might use the same password across all of those accounts there isn&#8217;t an easy way for me to remember which account I chose to use to log in. Fundamentally, this approach to OpenID doesn&#8217;t give users less things to remember, but more.</p>
<p>I think a better approach is for site to allow either local logins or OpenID identities. When offering OpenID logins it&#8217;s important that sites help educate users about the value of OpenID rather than hiding it.</p>
]]></content:encoded>
			<wfw:commentRss>http://ianloic.com/2008/07/01/openid-usability-non-solutions/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A simpler mobile OpenID workflow?</title>
		<link>http://ianloic.com/2008/01/13/a-simpler-mobile-openid-workflow/</link>
		<comments>http://ianloic.com/2008/01/13/a-simpler-mobile-openid-workflow/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 04:56:09 +0000</pubDate>
		<dc:creator>Ian McKellar</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[openid]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://ianloic.com/2008/01/13/a-simpler-mobile-openid-workflow/</guid>
		<description><![CDATA[Chris Messina posted today about the problems with current OpenID work-flows for mobile users. In spite of a long list of chores I was intending to complete today I had a bit of an experiment with an approach to solving this.
The main problem I wanted to solve was to allow a user to prove their [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://factoryjoe.com/">Chris Messina</a> posted today about the <a href="http://factoryjoe.com/blog/2008/01/13/the-openid-mobile-experience/">problems with current OpenID work-flows</a> for mobile users. In spite of a long list of chores I was intending to complete today I had a bit of an experiment with an approach to solving this.</p>
<p>The main problem I wanted to solve was to allow a user to prove their identity without having to enter a password. Most mobile devices lack physical alphanumeric keyboards, and without that it&#8217;s very hard to fill out password fields.</p>
<p><span id="more-42"></span>My initial approach was to offer an OpenID URL for phone numbers and use an SMS message containing a one-time password to verify that the person attempting to log in had access to that mobile phone. Unfortunately there&#8217;s no free web service for sending SMSes, so did the next best thing and built it on top of <a href="http://www.twitter.com/">Twitter</a>.</p>
<p>I began with JanRain&#8217;s <a href="http://openidenabled.com/php-standalone-openid-server">PHP Standalone OpenID Server</a> and hacked it to pieces. I removed the requirement for registration &#8211; it transparently adds accounts as you use it. It doesn&#8217;t use password authentication, it sends a Twitter direct message with a one-time token to verify identity. I removed the OpenID Simple Registration support since the server has no idea about the user&#8217;s profile information &#8211; it might be possible in the future to put that back in, pulling the data over from the user&#8217;s twitter profile.</p>
<p>The server seems to work okay for the couple of services I tried it with. If there&#8217;s interest in this I might continue to develop it. Right now it&#8217;s up at <a href="http://twauth.ianloic.com/">http://twauth.ianloic.com/</a>. It might be broken, it might go away at any point, it likely has security holes. Have a play and let me know what you think.</p>
<p>What I <em>really</em> want is a variation on this. I want to be able to use this simple single-use-token authentication when I&#8217;m on a mobile device and use a more traditional system the rest of the time. <a href="http://ma.gnolia.com/">Magnolia</a> allows me to associate multiple OpenID identities with my account so it&#8217;s easy there, but most services have a one-to-one relationship between identities and accounts.</p>
]]></content:encoded>
			<wfw:commentRss>http://ianloic.com/2008/01/13/a-simpler-mobile-openid-workflow/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>OpenID for the mathematically challenged</title>
		<link>http://ianloic.com/2007/05/16/openid_for_the_mathematically_challenged/</link>
		<comments>http://ianloic.com/2007/05/16/openid_for_the_mathematically_challenged/#comments</comments>
		<pubDate>Wed, 30 Nov -0001 00:00:00 +0000</pubDate>
		<dc:creator>Ian McKellar</dc:creator>
				<category><![CDATA[Default]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[openid]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[The other day I got the <a href="http://openid.net/">OpenID</a> bee in my bonnet and grabbed <a href="http://walkah.net/">James Walker</a>'s <a href="http://drupal.org/project/openid">module</a> and installed it on my server. Actually I grabbed it from CVS, and then discovered that the CVS version is half-ported to some new Drupal 6 form API, so I ended up using the DRUPAL-5 tag.

Anyway, I use <a href="http://www.dreamhost.com/">Dreamhost</a> which I love for many many reasons (primarilly it's really cheap and seems to work really well). Unfortunately they don't build their PHP with <a href="http://php.net/bc">BCMath</a> or even <a href="http://www.php.net/manual/en/ref.gmp.php">GMP</a>, which means my PHP can't do the <a href="http://openid.net/specs/openid-authentication-2_0-11.html#sign_algos">hard math</a> that's required for crypto. Luckily there's a mode of OpenID that doesn't require any work on the relaying party side. So I made a small change that allows James' module to work in this "dumb" mode.
]]></description>
			<content:encoded><![CDATA[<p>The other day I got the <a href="http://openid.net/">OpenID</a> bee in my bonnet and grabbed <a href="http://walkah.net/">James Walker</a>&#8217;s <a href="http://drupal.org/project/openid">module</a> and installed it on my server. Actually I grabbed it from CVS, and then discovered that the CVS version is half-ported to some new Drupal 6 form API, so I ended up using the DRUPAL-5 tag.</p>
<p>Anyway, I use <a href="http://www.dreamhost.com/">Dreamhost</a> which I love for many many reasons (primarilly it&#8217;s really cheap and seems to work really well). Unfortunately they don&#8217;t build their PHP with <a href="http://php.net/bc">BCMath</a> or even <a href="http://www.php.net/manual/en/ref.gmp.php">GMP</a>, which means my PHP can&#8217;t do the <a href="http://openid.net/specs/openid-authentication-2_0-11.html#sign_algos">hard math</a> that&#8217;s required for crypto. Luckily there&#8217;s a mode of OpenID that doesn&#8217;t require any work on the relaying party side. So I made a small change that allows James&#8217; module to work in this &#8220;dumb&#8221; mode.</p>
<pre class="prettyprint">
Index: openid.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/openid/openid.install,v
retrieving revision 1.2
diff -u -p -r1.2 openid.install
--- openid.install      25 Mar 2007 06:38:00 -0000      1.2
+++ openid.install      16 May 2007 22:59:56 -0000
@@ -2,24 +2,6 @@</code>

/**
- * OpenID module requires bcmath
- */
-function openid_requirements($phase) {
-  if ($phase == 'runtime') {
-    $requirements['bcmath']['title'] = t('BCMath');
-    if (function_exists('bcadd')) {
-      $requirements['bcmath']['severity'] = REQUIREMENT_OK;
-      $requirements['bcmath']['value'] = t('Enabled');
-    }
-    else {
-      $requirements['bcmath']['severity'] = REQUIREMENT_ERROR;
-      $requirements['bcmath']['description'] = t('OpenID needs the bcmath extension for encryption.');
-    }
-  }
-  return $requirements;
-}
-
-/**
* Implementation of hook_install
*/
function openid_install() {
Index: openid.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/openid/openid.module,v
retrieving revision 1.2
diff -u -p -r1.2 openid.module
--- openid.module       25 Mar 2007 06:38:00 -0000      1.2
+++ openid.module       16 May 2007 22:59:56 -0000
@@ -133,10 +133,14 @@ function openid_login_form_submit($formi

$idp_endpoint = $services[0]['uri'];
$_SESSION['openid_idp_endpoint'] = $idp_endpoint;
-  $assoc_handle = openid_association($claimed_id, $idp_endpoint);
-  if (empty($assoc_handle)) {
-    drupal_set_message(t('OpenID Association failed'), 'error');
-    return;
+
+  // if we have BCMath, we should use OpenID smart mode
+  if (function_exists('bcadd')) {
+      $assoc_handle = openid_association($claimed_id, $idp_endpoint);
+      if (empty($assoc_handle)) {
+        drupal_set_message(t('OpenID Association failed'), 'error');
+        return;
+      }
}
</pre>
<p>Also, I put the patch <a href="http://drupal.org/node/144334">up on Drupal.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ianloic.com/2007/05/16/openid_for_the_mathematically_challenged/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
