Peter,<br><br>Thanks for your input...see my replies inline.&nbsp; <br><br>david<br><br>On Mon, Dec 29, 2008 at 4:36 PM, Peter Williams <span dir="ltr">&lt;<a href="mailto:pwilliams@rapattoni.com">pwilliams@rapattoni.com</a>&gt;</span> wrote:<br>
<div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">








<div link="blue" vlink="purple" lang="EN-US">

<div>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">The main problem I have is …you are changing the character
of XRDS (and XRI 2.0 resolution).</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);"></span></p></div></div></blockquote><div>Yes, but I&#39;d be open to accomplishing these ideas without doing so.<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div link="blue" vlink="purple" lang="EN-US"><div><p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;In 1, you are turning metadata discovery into a authorization/control
framework. Won't be long before you will want a "#include QXRI"
line in the XRDS, that imports XRDs from a superior policy authority, and
require the XRI client resolver to now to "augment" the XRDs with
those from the control authority. If OpenID needs an policy-based authorization
framework, let's consider that in its own right (and there is LOTS AND
LOTS of previous work to draw on). Let's not break the (nicely working) metadata
model, tho.</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span></p></div></div></blockquote><div>Well, it already is an authorization/control framework.&nbsp; The value of the OP endpoint in your XRDS document is what controls what your OP is.&nbsp; Proposal #1 merely extends this to say that you need 2 OP&#39;s instead of one, and possibly only for certain sites.<br>
&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div link="blue" vlink="purple" lang="EN-US"><div><p><span style="font-size: 11pt; color: rgb(31, 73, 125);"></span></p>


<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">In 2, why doesn't XRI already do exactly what you want?
Surely, the intelligence you want is in the query syntax, and that is precisely
what XRI resolution gives you? The notion that one discovery agent would proxy
to n other discovery agents based on criteria from the resolution request seems
important (and, again, what other sso discovery protocols already do).</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);"></span></p></div></div></blockquote><div>Most likely I&#39;m just too ignorant of XRI to actually know how it works in full.&nbsp; Can you provide an example of how I could do #2 with existing mechanism?&nbsp; <br>
<br>In my #2 &quot;spec&quot; (it&#39;s not nearly fleshed out enough to be called such a thing) I have three methods to do OP Delegation.&nbsp; &quot;Service&quot; delegation already is possible with current XRI mechansims, I agree (I note that scenario just to clarify how I think OpenID Discovery should work with regard to OP&#39;s).&nbsp; But it is less apparent to me how to do method&#39;s two and three of my &quot;spec&quot; (i.e., pick an OP based on the RP&#39;s domain, or based upon some feature of the OpenID transaction).<br>
&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div link="blue" vlink="purple" lang="EN-US"><div><p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span></p>


<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">In 3, what is wrong with the XRI extension model? It seems to do
exactly what you want.</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span></p></div></div></blockquote><div>Hmmm...this is a possibility, but my thinking was that these discovery extensions would be OpenID specific.&nbsp; In other words, the notion of overriding the definition of XRDS/XRD &quot;priority&quot; attribute is pretty specific to OpenID discovery, and specific to the &quot;2-headed auth&quot; example in particular.&nbsp; I&#39;m not opposed to making these ideas into a more generic XRI extension, but I&#39;m not sure they&#39;re really that generic.&nbsp; Plus, it would be nice to have something that is &quot;OpenID Endorsed&quot; (or condemned) in order to ensure it makes it into OpenID best practices (e.g., always do this....or NEVER do this).<br>
&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div link="blue" vlink="purple" lang="EN-US"><div><p><span style="font-size: 11pt; color: rgb(31, 73, 125);"></span></p>


<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">Now I can see an argument that just as folk could not typically adopt/implement
the X.500 DAP query model, but could adopt simpler queries expressed&nbsp; in simplified
ldap urls, so we might need to make a simplified XRI resolver based on lxri://
urls… building on the momentum that wants to simply parse an XRDS stored
in a static file (rather than a full-power XRDS stream generated&nbsp; as a
result of resolving an XRI query seeking metadata from the i-broker network)</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span></p></div></div></blockquote><div>Yes. <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div link="blue" vlink="purple" lang="EN-US"><div><p><span style="font-size: 11pt; color: rgb(31, 73, 125);"></span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">If 2 and 3 above were expressed in terms of: here is the
lightweight profile of XRI tuned to those 3 purposes, and its carefully tuned
to be easy to program…that might fly as a work item. Its taking the&nbsp;
current design and simply making it easier to adopt, focusing on</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span>&nbsp;<span style="font-size: 11pt; color: rgb(31, 73, 125);"> <br></span></p></div></div></blockquote><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div link="blue" vlink="purple" lang="EN-US"><div><p><span style="font-size: 11pt; color: rgb(31, 73, 125);"></span></p>



<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span></p>

<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">&nbsp;</span></p>

<div style="border-style: none none none solid; border-color: -moz-use-text-color -moz-use-text-color -moz-use-text-color blue; border-width: medium medium medium 1.5pt; padding: 0in 0in 0in 4pt;">

<div>

<div style="border-style: solid none none; border-color: rgb(181, 196, 223) -moz-use-text-color -moz-use-text-color; border-width: 1pt medium medium; padding: 3pt 0in 0in;">

<p><b><span style="font-size: 10pt;">From:</span></b><span style="font-size: 10pt;">
<a href="mailto:general-bounces@openid.net" target="_blank">general-bounces@openid.net</a> [mailto:<a href="mailto:general-bounces@openid.net" target="_blank">general-bounces@openid.net</a>] <b>On Behalf Of </b>David
Fuelling<br>
<b>Sent:</b> Monday, December 29, 2008 6:25 AM<br>
<b>To:</b> <a href="mailto:specs@openid.net" target="_blank">specs@openid.net</a>; <a href="mailto:general@openid.net" target="_blank">general@openid.net</a> List<br>
<b>Subject:</b> [OpenID] DISCUSSION relating to OpenID Discovery 2.1</span></p>

</div>

</div><div><div></div><div class="Wj3C7c">

<p>&nbsp;</p>

<p style="margin-bottom: 12pt;">Not sure if this made it
through to everyone due to the mail list malfunction, so resending just in
case.<br>
<br>
david</p>

<div>

<p style="margin-bottom: 12pt;">---------- Forwarded message
----------<br>
From: <b>David Fuelling</b> &lt;<a href="mailto:sappenin@gmail.com" target="_blank">sappenin@gmail.com</a>&gt;<br>
Date: Fri, Dec 26, 2008 at 6:58 PM<br>
Subject: DISCUSSION relating to OpenID Discovery 2.1<br>
To: &quot;<a href="mailto:specs@openid.net" target="_blank">specs@openid.net</a>&quot; &lt;<a href="mailto:specs@openid.net" target="_blank">specs@openid.net</a>&gt;, &quot;<a href="mailto:general@openid.net" target="_blank">general@openid.net</a> List&quot; &lt;<a href="mailto:general@openid.net" target="_blank">general@openid.net</a>&gt;<br>

<br>
<br>
All,<br>
<br>
I&#39;d like to propose that the following ideas be considered as discussion points
in the OpenID 2.1 Discovery WG.&nbsp; I&#39;ve updated the <a href="http://wiki.openid.net/Working_Groups%3AOpenID_Discovery" target="_blank">OpenID
2.1 Discovery WG wiki page</a> to reflect these ideas, and have provided two
very rough-draft proposals (currently formulated as extensions) to juice up the
dialog.&nbsp; The ideas are summarized below -- I&#39;d be curious to hear any and
all feedback.<br>
<br>
Thanks!<br>
<br>
David</p>

<ol start="1" type="1">
 <li style="margin-bottom: 12pt;"><b><i>Enabling two (or more) headed
     OP&nbsp;authentication</i></b><br>
     The idea here is to allow an end-user to specify two (or more) OP&#39;s in the
     &lt;Service&gt; portion of their XRD so that an RP&nbsp;MUST&nbsp;receive
     auth assertions from both OP&#39;s before granting access to protected
     resources.&nbsp; See a rough-draft idea proposal here: <a href="http://wiki.openid.net/OP-MultiAuth" target="_blank">OP MultiAuth</a>.&nbsp;
     XRI Resolution 2.0 seems to currently prohibit this by default per section
     4.3.3:&nbsp;&quot;<i>If two or more instances of the same element type
     have identical priority attribute values (including the null value), the
     consuming application SHOULD select one of the instances at random. This
     consuming application SHOULD NOT simply choose the first instance that
     appears in XML document order.</i>&quot;&nbsp; Thus, in order to indicate
     to the RP&nbsp;that both OP&nbsp;URI&#39;s should be used at the same time, an
     aditional &lt;Type&gt; element is used to signify that identical priority
     URI&#39;s should be used together for the purposes of OpenID&nbsp;Auth.</li>
 <li style="margin-bottom: 12pt;"><b><i>OP&nbsp;Delegation based upon various
     characteristics of an OpenID transaction</i></b><br>
     The idea here is to allow an end-user to delegate authority over a
     particular OpenID Identifier to divergent OpenID Providers (OP&#39;s),
     depending on certain characteristics of a Relying Party and/or certain
     characteristics of an OpenID transaction.&nbsp; For example, an Identifier
     might specify a different authoritative OP depending on the OpenID-related
     Service being employed (e.g., OpenID 2.0, OAuth, or others); the RP Domain
     (*.<a href="http://example.com" target="_blank">example.com</a>); or a
     pre-defined service Class (e.g., one OP for single-factor auth, and
     another OP when two-factor Auth is required).&nbsp;&nbsp; By providing
     OpenID Identifiers with the ability to specify multiple OP&#39;s based on
     particular characteristics of each OpenID transaction, end-users will be
     able to utilize the best OP for any particular OpenID transaction as they
     see fit (i.e., more control in the hands of the user).&nbsp; See a
     rough-draft here:&nbsp;<a href="http://wiki.openid.net/OP-Delegation" target="_blank">OP Delegation</a>.</li>
 <li><b><i>Discovery Extensions</i></b><br>
     The OpenID&nbsp;Discovery specification should define ways for discovery
     to be extended by other services.&nbsp; For example, the
     OAuth+OpenID&nbsp;specification may want to peform discovery in slighly
     different ways than regular OpenID&nbsp;Auth 2.1 does.&nbsp; Likewise,
     ideas numbers 1 and 2 above could be implemented as extensions to
     Discovery instead of being included in the main 2.1 Discovery
     specification.</li>
</ol>

</div>

<p>&nbsp;</p>

</div></div></div>

</div>

</div>


</blockquote></div><br>