After enabling OpenID authentication at this site, I was wondering if I could become my own OpenID identity provider. Googling for references, I have found a detailed guide at Sam Ruby post OpenID for non-SuperUsers.

I followed Sam’s instructions, but I found a problem when I tried to delegate my identity. Sam’s post talks about decrufting the openid.delegate, setting _$idpurl to the value you want it to be, in this case, my blog address. The problem is that I must use phpMyID version 0.5 instead of version 0.3 (I’m running PHP in CGI mode), and this hack doesn’t work with version 0.5.

After reviewing the phpMyID code, it seems that the MyID.php script checks that the end user identity matches the IdP URL, and this is the main reason which caused the problem. So why don’t define a “delegate” var and use it as the identity match? In this way, you can authenticate a controlled end user identity URL that it’s different to the IdP URL. I modified the code and tested the new setup. Now it works!

So, if you have the same problem, download this patch version of phpMyID, change the $profile[‘delegate’] at MyID.config.php file, and run it again.

PD: I have emailed Christopher J. Niemira, but unfortunately I didn’t have any response from him.