<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.5pt;
        font-family:Consolas;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:Consolas;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:1916741653;
        mso-list-type:hybrid;
        mso-list-template-ids:-1793424506 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='color:#1F497D'>The case of handling unsolicited
assertions at an RP holding state about a localid request hardly an &#8220;abnormal&#8221;
or highly unusual embodiment of websso &#8211; since its precisely the way that
Shibboleth2 works. &nbsp;(inSAML2, send in a SAMl2.stateful request {post-discovery},
but get back an unsolicited response). <o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>However, unlike OpenID, Shibboleth
applies its infamous authority model in which IDPs are in charge of the validity
of subject fields, not users: relying parties blindly trust IDPs concerning validity
in Shib/SAML2&#8217;s concept. OpenID is supposed to be a UCI design, in
contrast - in which the validity of an unsolicited assertion MUST (surely) be
tested against user-defined controls during post-assertion discovery?<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>If we analyze the text of
OpenId2:-<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>What should the RP do when an OP
returns an _<i>unsolicited</i>_ assertion, for a request the RP knows to be about
a localid? (that is, the response2 subject &#8216;s names value != (request1.identity
= discovered0 .localid)<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>Presumably, another round of discovery
should happen, where request3.identity = response2.cliamedid?<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>Recalling that the 2<sup>nd</sup>
discovery agent may be entirely unrelated &nbsp;to the 1<sup>st</sup>, to
properly handle the discoverd4 XRDS and rely on the assertion result2, is it (i)
enough that &nbsp;the XRDS merely has a match for the value (iii) if the discovery
is about an xri, must the RP specifically use invoke trusted XRI resolution and
ensure that the value falls within the delegated namespace of the i-broker, (iii)
should the discovery4 &#8220;fail&#8221; if discovery tried to fallback to HTML
, (iv) should the HTML be test to verify that some delegated tag exist or that
some openid tag exist?<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;
padding:0in 0in 1.0pt 0in'>

<p class=MsoNormal style='border:none;padding:0in'><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

</div>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>This whole process of handling
unsolicited assertions seems unfinalized &#8211; since I cannot point to obvious
normative material in the spec for the handling rules. There is good circumstantial
evidence that the issue has been well thought through, tho.<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
general-bounces@openid.net [mailto:general-bounces@openid.net] <b>On Behalf Of </b>Peter
Williams<br>
<b>Sent:</b> Monday, November 10, 2008 8:16 PM<br>
<b>Cc:</b> OpenID List<br>
<b>Subject:</b> [LIKELY_SPAM]Re: [OpenID] [LIKELY_SPAM]Re: Problems with
delegation and directed identity OPs<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>4.2.1.&nbsp; Relying Parties<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>...<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>openid.claimed_id&quot; is not
defined by OpenID Authentication 1.1. Relying Parties MAY send the value when
making requests, but MUST NOT depend on the value being present in
authentication responses. When the OP-Local Identifier (&quot;openid.identity&quot;)
is different from the Claimed Identifier, the Relying Party MUST keep track of
what Claimed Identifier was used to discover the OP-Local Identifier, for
example by keeping it in session state. Although the Claimed Identifier will
not be present in the response, it MUST be used as the identifier for the user.
<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in'>&quot;openid.identity&quot; MUST
be sent in a authentication request (Responding to Authentication Requests).<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2'><![if !supportLists]><span
style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span><![endif]>Note
in the last sentence,&nbsp; a should be &#8220;an&#8221; &#8211; since folk are
back in editing mode.<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2'><![if !supportLists]><span
style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span><![endif]>More
importantly, I cannot see how OpenID2 delegation is really that different from
OpenID2 delegation - despite all that&#8217;s been said. In OpenID1, keep the
normalized URL, but ask for an assertion about the delegation value. In
OpenID2: RP shall keep the claimed id, but ask for an assertion about the
localid value.<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2'><![if !supportLists]><span
style='mso-list:Ignore'>3.<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span><![endif]>The
only interesting case seems to be when &gt;1 rounds of discovery occur, in
response to processing one or more unsolicited assertions. If an unsolicited
assertion is indicated, given the RP is retaining the required state for a
request that cited a localid != original cliamedid, presumably the handling
rule above now refers to the claimed id in the unsolicited assertion &#8230;
not that in the stored away during initiation of the current round of
discovery/auth. Presumably if a followup round discovery produces (performed as
oneMUST) and another localid != claimed id is determined, the first localid
storage/state is discarded&#8230;and a 2<sup>nd</sup>/nth round of auth is
required? Ad infinitum?<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText style='margin-left:.5in'><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>-----Original Message-----<br>
From: general-bounces@openid.net [mailto:general-bounces@openid.net] On Behalf
Of Peter Williams<br>
Sent: Sunday, November 09, 2008 10:55 AM<br>
To: Andrew Arnott; Martin Atkins<br>
Cc: OpenID List<br>
Subject: Re: [OpenID] [LIKELY_SPAM]Re: Problems with delegation and directed
identity OPs<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>Id recommend an openid.net 1000 word tutorial be written
on the openid2 delgation model, adressing clearely how its security model is
different to openid1.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>I've read and reviewed the openid2 spec several times,
and had not realized that fundamental delegation processes had changed (from
what I saw in the janrain openid1.1 .net code).<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>Id realized that names and metadata fields had
changed...but not that the security model had changed.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>I had no idea that an op maintained identity page (with
rdf tags, such as that of myopenid) was anything other than a nicety (that
could be entirely eliminated).<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>________________________________<o:p></o:p></p>

<p class=MsoPlainText>From: Andrew Arnott &lt;andrewarnott@gmail.com&gt;<o:p></o:p></p>

<p class=MsoPlainText>Sent: Saturday, November 08, 2008 5:19 PM<o:p></o:p></p>

<p class=MsoPlainText>To: Martin Atkins &lt;mart@degeneration.co.uk&gt;<o:p></o:p></p>

<p class=MsoPlainText>Cc: OpenID List &lt;general@openid.net&gt;<o:p></o:p></p>

<p class=MsoPlainText>Subject: [LIKELY_SPAM]Re: [OpenID] Problems with
delegation and directed identity OPs<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>Reverting back to OpenID 1.1 style of delegation would break
unsolicited assertions when the OP is asserting a delegated Identifier.&nbsp; I
thought of another scenario or two that would break as well but I can't think
of them at the moment...<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>On Sat, Nov 8, 2008 at 12:05 AM, Martin Atkins
&lt;mart@degeneration.co.uk&lt;mailto:mart@degeneration.co.uk&gt;&gt; wrote:<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>This seems similar to what happened with
clavid.com&lt;http://clavid.com&gt;. When I tested their OP, they would accept
OpenID 2.0 requests but always respond with 1.1 responses. (They may have since
fixed this.)<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>The upshot of this was that the OpenID 1.1 responses
didn't include openid.claimed_id because that argument didn't exist in OpenID
1.1, so things broke.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>There is scope for a careless OP to break delegation by
failing to pass through openid.claimed_id as given. This was a concern I had
when we added that argument in OpenID 2.0; in 1.1, it was the RP's
responsibility to figure out how to maintain that state, and so some RPs did it
by adding stuff to openid.return_to in the request and others maintained state
at the RP server, but either way it was opaque to the OP and passed through
correctly unless the OP did something really bizarre.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>I wonder if it would be a good idea to revert to the
previous approaches for maintaining the delegation state at the RP, since clearly
a faulty OP can break delegation with 2.0 as currently specified. I'm concerned
that as we currently stand some 2.0-compatible libraries will be preserving
this state in a 1.1-compatible way and thus will work correctly with Google's
OP, while others will be relying on openid.claimed_id and break. I know that
Net;:OpenID::Consumer for Perl relies on openid.claimed_id in 2.0 mode, but if
that differs from everyone else's implementations I would consider making it do
it the 1.1 way in all cases in order to be resiliant to broken OPs.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>Andrew Arnott wrote:<o:p></o:p></p>

<p class=MsoPlainText>So I whipped up a delegated claimed identifier for
Google.&nbsp; And guess what?! Google's OP is buggy.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>This is my delegated OpenID page that delegates to
Google's OP:<o:p></o:p></p>

<p class=MsoPlainText>http://nerdbank.org/RP/rpgoogle.html<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>It's magic contents are:<o:p></o:p></p>

<p class=MsoPlainText>&lt;link rel=&quot;openid2.provider&quot;
href=&quot;https://www.google.com/accounts/o8/ud&quot;/&gt;<o:p></o:p></p>

<p class=MsoPlainText>&lt;link rel=&quot;openid2.local_id&quot;
href=&quot;https://www.google.com/accounts/o8/id?id=AItOawkBReSGLLy2neuRSMQEz7G8mWH311s8_FU&quot;/&gt;<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>This works just like any other delegated thing.&nbsp;
Since Google provides pair-wise unique identifiers, I had to first log in to
nerdbank.org/RP&lt;http://nerdbank.org/RP&gt; &lt;http://nerdbank.org/RP&gt;
using google directly, find out what identifier Google assigned for me at that
RP, and then stick that into the above local_id field.&nbsp; Then this
delegated page will /only/ work against that RP.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>Or at least that's what should happen.&nbsp; In actuality
Google changes the claimed_id though it shouldn't.&nbsp; This is what it
asserts:<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>ClaimedIdentifier: https://www.google.com/accounts/o8/id?id=AItOawkBReSGLLy2neuRSMQEz7G8mWH311s8_FU<o:p></o:p></p>

<p class=MsoPlainText>ProviderLocalIdentifier:
https://www.google.com/accounts/o8/id?id=AItOawkBReSGLLy2neuRSMQEz7G8mWH311s8_FU<o:p></o:p></p>

<p class=MsoPlainText>ProviderEndpoint: https://www.google.com/accounts/o8/ud<o:p></o:p></p>

<p class=MsoPlainText>OpenID version: 2.0<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>And this is what was discovered at the delegated identity
page:<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>ClaimedIdentifier: http://nerdbank.org/RP/rpgoogle.html<o:p></o:p></p>

<p class=MsoPlainText>ProviderLocalIdentifier:
https://www.google.com/accounts/o8/id?id=AItOawkBReSGLLy2neuRSMQEz7G8mWH311s8_FU<o:p></o:p></p>

<p class=MsoPlainText>ProviderEndpoint: https://www.google.com/accounts/o8/ud<o:p></o:p></p>

<p class=MsoPlainText>OpenID version: 2.0<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>The ClaimedIdentifier has been tampered with.&nbsp; 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.&nbsp;
They don't, and delegation breaks.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>So you see, it's not that they use directed identity that
breaks delegation.&nbsp; It's that their OP doesn't preserve the
openid.claimed_id parameter.&nbsp; I'm not sure if this is a strict
contradiction to the spec, but it breaks scenarios, which stinks.<o:p></o:p></p>

<p class=MsoPlainText>I'll send this over to the Google folks and see what they
have to say.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>On Fri, Nov 7, 2008 at 7:17 PM, Andrew Arnott
&lt;andrewarnott@gmail.com&lt;mailto:andrewarnott@gmail.com&gt;
&lt;mailto:andrewarnott@gmail.com&lt;mailto:andrewarnott@gmail.com&gt;&gt;&gt;
wrote:<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp; From the spec:<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; Value: (optional) The Claimed Identifier.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; &quot;openid.claimed_id&quot; and
&quot;openid.identity&quot; SHALL be either both<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; present or both absent. If neither value is
present, the assertion<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; is not about an identifier, and will contain
other information in<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; its payload, using extensions (Extensions).<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; So you can't include one without the
other.&nbsp; And having neither<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; doesn't provide any authentication at
all.&nbsp; Delegation /should/<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; work, if you had an openid identity page
with a openid2.local_id tag<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; that was exactly the opaque RP-specific
identifier that Google would<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; assign the RP that you are trying to log
into.&nbsp; That would mean<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; you'd need a separate delegate page for
every single RP you log<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; into... but it's theoretically
possible.&nbsp; It would just be a<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; maintenance nightmare. It would be
interesting to test just to see<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; if Google actually implemented the spec
correctly to handle<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; /non/-directed identity scenarios.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp; On Fri, Nov 7, 2008 at 5:40 PM, Breno de
Medeiros &lt;breno@google.com&lt;mailto:breno@google.com&gt;<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;
&lt;mailto:breno@google.com&lt;mailto:breno@google.com&gt;&gt;&gt; wrote:<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; On Fri, Nov 7, 2008
at 4:48 PM, Allen Tom &lt;atom@yahoo-inc.com&lt;mailto:atom@yahoo-inc.com&gt;<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;mailto:atom@yahoo-inc.com&lt;mailto:atom@yahoo-inc.com&gt;&gt;&gt; wrote:<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Deron
Meranda wrote:<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt; Of
course, from an OP usability perspective, it's not<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exactly straight<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;
forward for somebody to determine their actual Yahoo<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; identity(-ies),<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;
although it is possible.<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&gt; We
definitely can improve the usability, but you can list<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; your Yahoo<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; OpenID
identifiers by going to http://openid.yahoo.com and<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clicking on<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; the
&quot;OpenID Home link&quot; at the top of the page.<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt; And,
just from curiosity, why are the randomly generated URIs<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt; (both
Google and Yahoo!) so long?<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; :)<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt; So,
the current Google situation makes it almost impossible<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to use delegation!<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Hmm, it
does appear that it's impossible for someone to<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delegate their<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; OpenID to
Google.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The OpenID spec says
that the op_local is an optional field. I think<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in practice
libraries set identity=claimed_id in this case. I assume<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; it is then
unspecified how the OP validates that the user is<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; authorized over that
URL. That changes nothing from the RP<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; perspective, because
it always has to depend on the OP to make that<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; judgment.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bottom line: The
fact that the op_local technique is not<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; available for<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; usage with the
Google OP does not mean that it cannot support<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delegation.<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Allen<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
_______________________________________________<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&gt; general
mailing list<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
general@openid.net&lt;mailto:general@openid.net&gt;
&lt;mailto:general@openid.net&lt;mailto:general@openid.net&gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
http://openid.net/mailman/listinfo/general<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --Breno<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +1 (650) 214-1007
desk<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +1 (408) 212-0135
(Grand Central)<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MTV-41-3 : 383-A<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PST (GMT-8) /
PDT(GMT-7)<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
_______________________________________________<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; general mailing list<o:p></o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
general@openid.net&lt;mailto:general@openid.net&gt;
&lt;mailto:general@openid.net&lt;mailto:general@openid.net&gt;&gt;<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
http://openid.net/mailman/listinfo/general<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>------------------------------------------------------------------------<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>_______________________________________________<o:p></o:p></p>

<p class=MsoPlainText>general mailing list<o:p></o:p></p>

<p class=MsoPlainText>general@openid.net&lt;mailto:general@openid.net&gt;<o:p></o:p></p>

<p class=MsoPlainText>http://openid.net/mailman/listinfo/general<o:p></o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText><o:p>&nbsp;</o:p></p>

<p class=MsoPlainText>_______________________________________________<o:p></o:p></p>

<p class=MsoPlainText>general mailing list<o:p></o:p></p>

<p class=MsoPlainText>general@openid.net<o:p></o:p></p>

<p class=MsoPlainText>http://openid.net/mailman/listinfo/general<o:p></o:p></p>

</div>

</body>

</html>