So I whipped up a delegated claimed identifier for Google. And guess what?! Google's OP is buggy.<br><br>This is my delegated OpenID page that delegates to Google's OP:<br><a href="http://nerdbank.org/RP/rpgoogle.html">http://nerdbank.org/RP/rpgoogle.html</a><br>
<br>It's magic contents are:<br><link rel="openid2.provider" href="<a href="https://www.google.com/accounts/o8/ud">https://www.google.com/accounts/o8/ud</a>"/><br><link rel="openid2.local_id" href="<a href="https://www.google.com/accounts/o8/id?id=AItOawkBReSGLLy2neuRSMQEz7G8mWH311s8_FU">https://www.google.com/accounts/o8/id?id=AItOawkBReSGLLy2neuRSMQEz7G8mWH311s8_FU</a>"/><br>
<br>This works just like any other delegated thing. Since Google provides pair-wise unique identifiers, I had to first log in to <a href="http://nerdbank.org/RP">nerdbank.org/RP</a> using google directly, find out what identifier Google assigned for me at that RP, and then stick that into the above local_id field. Then this delegated page will <i>only</i> work against that RP.<br>
<br>Or at least that's what should happen. In actuality Google changes the claimed_id though it shouldn't. This is what it asserts:<br><br>ClaimedIdentifier: <a href="https://www.google.com/accounts/o8/id?id=AItOawkBReSGLLy2neuRSMQEz7G8mWH311s8_FU">https://www.google.com/accounts/o8/id?id=AItOawkBReSGLLy2neuRSMQEz7G8mWH311s8_FU</a><br>
ProviderLocalIdentifier: <a href="https://www.google.com/accounts/o8/id?id=AItOawkBReSGLLy2neuRSMQEz7G8mWH311s8_FU">https://www.google.com/accounts/o8/id?id=AItOawkBReSGLLy2neuRSMQEz7G8mWH311s8_FU</a><br>ProviderEndpoint: <a href="https://www.google.com/accounts/o8/ud">https://www.google.com/accounts/o8/ud</a><br>
OpenID version: 2.0<br><br>And this is what was discovered at the delegated identity page:<br><br>ClaimedIdentifier: <a href="http://nerdbank.org/RP/rpgoogle.html">http://nerdbank.org/RP/rpgoogle.html</a><br>ProviderLocalIdentifier: <a href="https://www.google.com/accounts/o8/id?id=AItOawkBReSGLLy2neuRSMQEz7G8mWH311s8_FU">https://www.google.com/accounts/o8/id?id=AItOawkBReSGLLy2neuRSMQEz7G8mWH311s8_FU</a><br>
ProviderEndpoint: <a href="https://www.google.com/accounts/o8/ud">https://www.google.com/accounts/o8/ud</a><br>OpenID version: 2.0<br><br>The ClaimedIdentifier has been tampered with. This Google's OP should note that the auth request was with its local_id but a 3rd party claimed_id and preserve the claimed_id so that delegation works. They don't, and delegation breaks.<br>
<br>So you see, it's not that they use directed identity that breaks delegation. It's that their OP doesn't preserve the openid.claimed_id parameter. I'm not sure if this is a strict contradiction to the spec, but it breaks scenarios, which stinks. <br>
<br>I'll send this over to the Google folks and see what they have to say.<br><br><div class="gmail_quote">On Fri, Nov 7, 2008 at 7:17 PM, Andrew Arnott <span dir="ltr"><<a href="mailto:andrewarnott@gmail.com">andrewarnott@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><p>From the spec:<br></p><p>
Value: (optional) The Claimed Identifier.
</p>
<p>
"openid.claimed_id" and "openid.identity" SHALL
be either both present or both absent. If neither
value is present, the assertion is not about an
identifier, and will contain other information in
its payload, using
<a>extensions<span> (</span><span>Extensions</span><span>)</span></a>.
</p>So you can't include one without the other. And having neither doesn't provide any authentication at all. Delegation <i>should</i> work, if you had an openid identity page with a openid2.local_id tag that was exactly the opaque RP-specific identifier that Google would assign the RP that you are trying to log into. That would mean you'd need a separate delegate page for every single RP you log into... but it's theoretically possible. It would just be a maintenance nightmare. It would be interesting to test just to see if Google actually implemented the spec correctly to handle <i>non</i>-directed identity scenarios.<div>
<div></div><div class="Wj3C7c"><br>
<br><div class="gmail_quote">On Fri, Nov 7, 2008 at 5:40 PM, Breno de Medeiros <span dir="ltr"><<a href="mailto:breno@google.com" target="_blank">breno@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>On Fri, Nov 7, 2008 at 4:48 PM, Allen Tom <<a href="mailto:atom@yahoo-inc.com" target="_blank">atom@yahoo-inc.com</a>> wrote:<br>
> Deron Meranda wrote:<br>
>> Of course, from an OP usability perspective, it's not exactly straight<br>
>> forward for somebody to determine their actual Yahoo identity(-ies),<br>
>> although it is possible.<br>
>><br>
> We definitely can improve the usability, but you can list your Yahoo<br>
> OpenID identifiers by going to <a href="http://openid.yahoo.com" target="_blank">http://openid.yahoo.com</a> and clicking on<br>
> the "OpenID Home link" at the top of the page.<br>
><br>
>> And, just from curiosity, why are the randomly generated URIs<br>
>> (both Google and Yahoo!) so long?<br>
> :)<br>
><br>
>> So, the current Google situation makes it almost impossible to use delegation!<br>
>><br>
>><br>
> Hmm, it does appear that it's impossible for someone to delegate their<br>
> OpenID to Google.<br>
<br>
</div>The OpenID spec says that the op_local is an optional field. I think<br>
in practice libraries set identity=claimed_id in this case. I assume<br>
it is then unspecified how the OP validates that the user is<br>
authorized over that URL. That changes nothing from the RP<br>
perspective, because it always has to depend on the OP to make that<br>
judgment.<br>
<br>
Bottom line: The fact that the op_local technique is not available for<br>
usage with the Google OP does not mean that it cannot support<br>
delegation.<br>
<div><br>
><br>
> Allen<br>
><br>
><br>
> _______________________________________________<br>
> general mailing list<br>
> <a href="mailto:general@openid.net" target="_blank">general@openid.net</a><br>
> <a href="http://openid.net/mailman/listinfo/general" target="_blank">http://openid.net/mailman/listinfo/general</a><br>
><br>
<br>
<br>
<br>
</div><div>--<br>
--Breno<br>
<br>
+1 (650) 214-1007 desk<br>
+1 (408) 212-0135 (Grand Central)<br>
MTV-41-3 : 383-A<br>
PST (GMT-8) / PDT(GMT-7)<br>
_______________________________________________<br>
</div><div><div></div><div>general mailing list<br>
<a href="mailto:general@openid.net" target="_blank">general@openid.net</a><br>
<a href="http://openid.net/mailman/listinfo/general" target="_blank">http://openid.net/mailman/listinfo/general</a><br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br>