summaryrefslogtreecommitdiff
path: root/doc/bugs/OpenID_delegation_fails_on_my_server.mdwn
blob: 25cc47b1870aeb5cabbd6de2e849438336ae5c53 (plain)

When I use my OpenID, http://thewordnerd.info, I am redirected to http://thewordnerd.myopenid.com, the identity to which thewordnerd.info delegates. That is, I'm redirected to the exact identity URL, not to an authorization link.

I am successfully using thewordnerd.info as my identity on many sites, so I know the delegation is pretty standard. It's stock WordPress with the delegation plugin. I also just attempted registration on http://identi.ca and successfully exchanged sreg data. So it seems like something is broken when using a delegate specifically with ikiwiki, and while I can use thewordnerd.myopenid.com, I'd rather use my delegate and free myself to switch to other providers in the future.

Hmm, I entered http://thewordnerd.info as the openid, and ended up at http://thewordnerd.myopenid.com/ , which seems right? --[[Joey]]

Sorry, didn't notice this edit. But, no, that is incorrect. Entering http://thewordnerd.info or thewordnerd.info should do the exact same thing that entering http://thewordnerd.myopenid.com does--in your case, prompt you to log in, in mine, ask if I want to verify the request. It's redirecting to the page itself, not using it as an OpenID provider.

Unfortunately I don't speak or understand enough Perl to fix this, nor do I understand how to use its debugger, but it looks as if the consumer should support delegation. Not sure why it's behaving incorrectly here.

Your openid delegation is wrong.

Here is a working openid delegation (from http://joey.kitenet.net:)

The above is generated by ikiwiki, using the meta openid directive:

[[meta openid="https://joeyh.myopenid.com/" server="http://www.myopenid.com/server"]]

Here is your delegation:

So, your openid.server is set wrong; when loging in ikiwiki redirects to the specified url, which is not behaving as an openid server at all. If it's changed to use http://www.myopenid.com/server, it would work the same as mine.

I suspect that it was working for you on other sites that support openid 2.0 and XRDS, since the xrds file on your site seems to have the correct http://www.myopenid.com/server url in it. Ikiwiki, however, uses perl modules that do not support openid 2.0 or XRDS, and so the incorrect openid 1.0 delegation is used. --[[Joey]]

[[done]]

Seems so, thanks.

For future reference, and in case anyone has a similar problem and searches here first as I did, I set my OpenID settings using the examples shown for the WordPress OpenID delegation plugin, which seem to work fine on a whole bunch of other sites but a) not here and b) are inaccurate according to the MyOpenID FAQ. I'll file a bug against that plugin to either update its example or remove it entirely. So not an ikiwiki bug, but someone's bug nonetheless.