aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/OpenID_delegation_fails_on_my_server.mdwn
blob: 25cc47b1870aeb5cabbd6de2e849438336ae5c53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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:)
>	<link href="http://www.myopenid.com/server" rel="openid.server" />
>	<link href="http://www.myopenid.com/server" rel="openid2.provider" />
>	<link href="https://joeyh.myopenid.com/" rel="openid.delegate" />
> 	<link href="https://joeyh.myopenid.com/" rel="openid2.local_id" />
> 
> 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:
> 
>	<meta http-equiv="X-XRDS-Location" content="http://thewordnerd.myopenid.com/xrds" />
>	<link rel="openid.server" href="http://thewordnerd.myopenid.com" />
>	<link rel="openid.delegate" href="http://thewordnerd.myopenid.com" />
> 
> 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.