OpenID and MediaWiki


Ross Mayfield generously donated a wiki for the Internet Identity Workshop and we used it to good effect for the event last October. This time there was some interest in using OpenID (and even Yadis, if possible) to do authentication and it just so happens that Jonathan Daugherty has created an OpenID patch for MediaWiki. With some help from the group at #openid on Freenode, especially Jonathan, I was able to get a patched copy of MediaWiki up and configured to use OpenID. It's now the official Internet Identity Workshop Wiki.

Here's what I did to make it all work:

  1. Install MediaWiki 1.5.8
  2. Configure MeidWiki (success)
  3. Apply patch

I got the following results from applying the patch:

[web@lynx mediawiki-1.5.8]$ patch -p1 <openid.patch
patching file docs/openid.txt
patching file includes/AuthPluginOpenID.php
patching file includes/AuthPlugin.php
patching file includes/DefaultSettings.php
patching file includes/Setup.php
patching file includes/SpecialUserlogin.php
patching file includes/templates/Userlogin.php
patching file includes/Title.php
patching file includes/User.php
patching file languages/Language.php   

So far, so good. Next, I followed the instructions in the $WIKI_HOME/docs/openid.txt file to enable OpenID authentication. After enabling bcmath and then fixing the directory where PEAR put the OpenID libraries (it stuck them in Auth inside Auth) I got an OpenID login, give it my openid and get redirected and asked if I'd like to trust that site, I say yes and that's where things went south. I got this error:

Fatal error: Call to a member function on a non-object in 
  /web/htdocs/iiw/mediawiki-1.5.8/i ncludes/User.php on line 700

After much wrangling and help from Jonathan, we decided I should try upgrading my version of PHP. I was running 4.3.3. I upgraded to 4.4.2 and it worked. Happy Happy Joy Joy.

If you'd like to try it, you need an OpenID. The easiest place to get one is MyOpenID. While you're at it register for the workshop.