ikiwiki (3.20130711) unstable; urgency=low
[ikiwiki.git] / doc / bugs / OpenID_delegation_fails_on_my_server.mdwn
1 When I use my OpenID, http://thewordnerd.info, I am redirected to
2 http://thewordnerd.myopenid.com, the identity to which thewordnerd.info
3 delegates. That is, I'm redirected to the exact identity URL, not to an
4 authorization link.
5
6 I am successfully using thewordnerd.info as my identity on many sites, so I
7 know the delegation is pretty standard. It's stock WordPress with the
8 delegation plugin. I also just attempted registration on http://identi.ca
9 and successfully exchanged sreg data. So it seems like something is broken
10 when using a delegate specifically with ikiwiki, and while I can use
11 thewordnerd.myopenid.com, I'd rather use my delegate and free myself to
12 switch to other providers in the future.
13
14 > Hmm, I entered http://thewordnerd.info as the openid, and ended up at
15 > http://thewordnerd.myopenid.com/ , which seems right? --[[Joey]]
16
17 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.
18
19 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.
20
21 > Your openid delegation is wrong.
22
23 > Here is a working openid delegation (from http://joey.kitenet.net:)
24 >       <link href="http://www.myopenid.com/server" rel="openid.server" />
25 >       <link href="http://www.myopenid.com/server" rel="openid2.provider" />
26 >       <link href="https://joeyh.myopenid.com/" rel="openid.delegate" />
27 >       <link href="https://joeyh.myopenid.com/" rel="openid2.local_id" />
28
29 > The above is generated by ikiwiki, using the meta openid directive:
30
31 >       \[[meta openid="https://joeyh.myopenid.com/" server="http://www.myopenid.com/server"]]
32
33 > Here is your delegation:
34
35 >       <meta http-equiv="X-XRDS-Location" content="http://thewordnerd.myopenid.com/xrds" />
36 >       <link rel="openid.server" href="http://thewordnerd.myopenid.com" />
37 >       <link rel="openid.delegate" href="http://thewordnerd.myopenid.com" />
38
39 > So, your openid.server is set wrong; when loging in ikiwiki redirects to
40 > the specified url, which is not behaving as an openid server at all. If it's changed
41 > to use http://www.myopenid.com/server, it would work the same as mine.  
42
43 > I suspect that it was working for you on other sites that support openid
44 > 2.0 and XRDS, since the xrds file on your site seems to have the correct
45 > http://www.myopenid.com/server url in it. Ikiwiki, however, uses perl
46 > modules that do not support openid 2.0 or XRDS, and so the incorrect
47 > openid 1.0 delegation is used. --[[Joey]]
48
49 [[done]]
50
51 Seems so, thanks.
52
53 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.