<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>RE: Delegation discussion summary</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>I'd have to agree with Gabe about this, let's get it done! :)<BR>
<BR>
<BR>
&nbsp;-----Original Message-----<BR>
From: &nbsp; Gabe Wachob [<A HREF="mailto:gabe.wachob@amsoft.net">mailto:gabe.wachob@amsoft.net</A>]<BR>
Sent:&nbsp;&nbsp; Thursday, October 12, 2006 05:43 PM Pacific Standard Time<BR>
To:&nbsp;&nbsp;&nbsp;&nbsp; Graves, Michael; specs@openid.net<BR>
Subject:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RE: Delegation discussion summary<BR>
<BR>
*If* we are going to open up the terminology discussion, for me the terms<BR>
&quot;authenticating party&quot; (formerly the &quot;IDP&quot;) and &quot;accepting party&quot; (formerly<BR>
the &quot;relying party&quot;) seem more descriptive.&nbsp; The authenticating party issues<BR>
authentication assertions in the form of special HTTP request/responses with<BR>
the other party, who then accepts these assertions and decides whether or<BR>
not they are good enough to let a user do something.<BR>
<BR>
As far as Dick's terminology, I'm not sure how &quot;membersite&quot; makes sense<BR>
here. Perhaps it's a matter of history or perspective that I haven't been<BR>
enlightened on.<BR>
<BR>
In any case, I'd rather get openid 2.0 out sooner than have a long<BR>
discussion on terminology, so I won't push this any further unless someone<BR>
else really thinks its valuable.<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Gabe<BR>
<BR>
&gt; -----Original Message-----<BR>
&gt; From: specs-bounces@openid.net [<A HREF="mailto:specs-bounces@openid.net">mailto:specs-bounces@openid.net</A>] On Behalf<BR>
&gt; Of Graves, Michael<BR>
&gt; Sent: Thursday, October 12, 2006 5:00 PM<BR>
&gt; To: specs@openid.net<BR>
&gt; Subject: RE: Delegation discussion summary<BR>
&gt;<BR>
&gt; Josh, et al,<BR>
&gt;<BR>
&gt; I believe the first of your options --&nbsp; &quot;Both portable and IdP-specific<BR>
&gt; identifiers&quot; -- is the superior choice here. It preserves OpenID 1<BR>
&gt; semantics, and unambiguously makes room for portable identifiers. I<BR>
&gt; don't see the added burden carried by relying party code for this option<BR>
&gt; viz. portable identifiers only as being significant. Recommend we<BR>
&gt; proceed with the &quot;both&quot; strategy.<BR>
&gt;<BR>
&gt; Also, this may be throwing a wrench in the gears here, but I'd like to<BR>
&gt; toss in the idea of using this point in time to pivot on our terminology<BR>
&gt; and look at adopting Dick Hardt's terminology here. Portable identifiers<BR>
&gt; are a powerful upgrade in and of themselves, and get us off the &quot;IDP<BR>
&gt; lock-in&quot; hook that I've been hung up with customers on now a couple<BR>
&gt; times. But as we move away from explicit IdP-specific URLs as the only<BR>
&gt; identifier, I think that the Sxip &quot;homesite&quot; model becomes more<BR>
&gt; important to consider as well. I very much like the idea of entiring in<BR>
&gt; my &quot;homesite&quot; URL at a participating &quot;membersite&quot; (OpenID relying<BR>
&gt; party), say &quot;<A HREF="http://myidmanager.com">http://myidmanager.com</A>&quot; and during the authentication<BR>
&gt; process, being able to choose from one of n available personae managed<BR>
&gt; for me by myidmanager.com. So my &quot;final&quot; identifier may be<BR>
&gt; &quot;<A HREF="http://myidmanager.com/73648729">http://myidmanager.com/73648729</A>&quot; or even &quot;<A HREF="http://graves.isnuts.com">http://graves.isnuts.com</A>&quot;.<BR>
&gt;<BR>
&gt; I won't delve into where we are with respect to that capability here,<BR>
&gt; but want to suggest that maybe as we move to OpenID 2.0, and now offer<BR>
&gt; portable IDs (as well as run-time chosen IDs selected at auth-time?), we<BR>
&gt; may be wise to just make the jump to using &quot;homesite&quot; and &quot;membersite&quot;<BR>
&gt; across the board, rather than &quot;IdP&quot; and &quot;relying party&quot;, both of which<BR>
&gt; are technically problematic for our framework.<BR>
&gt;<BR>
&gt; Anyway, that's a bit off topic, but something to consider.<BR>
&gt;<BR>
&gt; In any case, the &quot;both&quot; option below gets my vote.<BR>
&gt;<BR>
&gt; Good work Josh!<BR>
&gt;<BR>
&gt; -Mike<BR>
&gt;<BR>
&gt;<BR>
&gt; -----Original Message-----<BR>
&gt; From: specs-bounces@openid.net [<A HREF="mailto:specs-bounces@openid.net">mailto:specs-bounces@openid.net</A>] On<BR>
&gt; Behalf Of Josh Hoyt<BR>
&gt; Sent: Thursday, October 12, 2006 12:29 PM<BR>
&gt; To: specs@openid.net<BR>
&gt; Subject: Delegation discussion summary<BR>
&gt;<BR>
&gt; Hello, list,<BR>
&gt;<BR>
&gt; I'm sure that another message in your inbox with &quot;delegation&quot; in the<BR>
&gt; title makes most of you cringe, so I'm sorry for that.I hope that this<BR>
&gt; one gets us closer to resolving this issue.<BR>
&gt;<BR>
&gt; I have attempted to summarize the proposed delegation mechanisms, as<BR>
&gt; well as the currently-specified delegation mechanism in a single<BR>
&gt; document. I have glossed over some issues and left out some of the<BR>
&gt; discussion, but I hope that I captured most of the important stuff.<BR>
&gt; After reviewing the discussion, I think that we are actually pretty<BR>
&gt; close to consensus on a course of action.<BR>
&gt;<BR>
&gt; I have added one new thing in this write-up, which is that I have<BR>
&gt; started calling &quot;delegation&quot; &quot;portable identifier support&quot;, which gives<BR>
&gt; rise to the term &quot;portable identifier&quot; for what is currently called a<BR>
&gt; &quot;delegated identifier.&quot; I think that this terminology is a little easier<BR>
&gt; to understand and less loaded than calling it &quot;delegation.&quot;<BR>
&gt;<BR>
&gt; My write-up follows.<BR>
&gt;<BR>
&gt; Josh<BR>
&gt;<BR>
&gt; OpenID portable identifier support<BR>
&gt; ##################################<BR>
&gt;<BR>
&gt; Portable identifier support allows an IdP to do authentication for an<BR>
&gt; identifier that was not issued by that IdP. It has two motivating use<BR>
&gt; cases [1]_:<BR>
&gt;<BR>
&gt;&nbsp;&nbsp; * allow users to use any identifier with any IdP<BR>
&gt;<BR>
&gt;&nbsp;&nbsp; * allow users to move an identifier between IdPs (prevent IdP lock-in)<BR>
&gt;<BR>
&gt; Each portable identifiers has an IdP-specific identifier tied to it.<BR>
&gt; This identifier allows the IdP to know what credentials to require<BR>
&gt; before issuing an authentication response even though the IdP does not<BR>
&gt; control the portable identifier.<BR>
&gt;<BR>
&gt; Throughout this discussion, I will assume that there is a portable<BR>
&gt; identifier called &quot;<A HREF="http://my.portable.url/">http://my.portable.url/</A>&quot; that uses an IdP-specific<BR>
&gt; identifier called &quot;<A HREF="http://my.idp.specific.url/">http://my.idp.specific.url/</A>&quot;.<BR>
&gt;<BR>
&gt;<BR>
&gt; Current implementation<BR>
&gt; ======================<BR>
&gt;<BR>
&gt; OpenID 1 [2]_ calls portable identifier support &quot;delegation.&quot; In this<BR>
&gt; implementation, the IdP-specific identifier is the only identifier that<BR>
&gt; is communicated between the relying party and the IdP. When a relying<BR>
&gt; party discovers that it is requesting authentication for a portable<BR>
&gt; identifier, it must keep that state available for processing the<BR>
&gt; response, since the response message does not contain the portable<BR>
&gt; identifier at all.<BR>
&gt;<BR>
&gt; Request and response messages for this mechanism both use the following<BR>
&gt; field::<BR>
&gt;<BR>
&gt;&nbsp;&nbsp; openid.identity = <A HREF="http://my.idp.specific.url/">http://my.idp.specific.url/</A><BR>
&gt;<BR>
&gt; This mechanism has a few drawbacks:<BR>
&gt;<BR>
&gt;&nbsp; * The relying party must manage state information for the duration of<BR>
&gt;&nbsp;&nbsp;&nbsp; the transaction.<BR>
&gt;<BR>
&gt;&nbsp; * The authentication messages are potentially confusing, since the<BR>
&gt;&nbsp;&nbsp;&nbsp; authentication response is not meaningful without the context of<BR>
&gt;&nbsp;&nbsp;&nbsp; the initiation, and the IdP-specific identifier does not even have<BR>
&gt;&nbsp;&nbsp;&nbsp; to be a valid OpenID identifier.<BR>
&gt;<BR>
&gt;&nbsp;&nbsp; * The IdP *cannot* be aware that it is using a portable identifier,<BR>
&gt;&nbsp;&nbsp;&nbsp; so the IdP cannot assist the user in making decisions for different<BR>
&gt;&nbsp;&nbsp;&nbsp; identifiers. For example, a user might wish to be prompted for<BR>
&gt;&nbsp;&nbsp;&nbsp; confirmation each time he used one identifier, but allow automatic<BR>
&gt;&nbsp;&nbsp;&nbsp; approval for another.<BR>
&gt;<BR>
&gt;&nbsp;&nbsp; * IdP-driven identifier selection in the OpenID 2.0 specification (up<BR>
&gt;&nbsp;&nbsp;&nbsp; to draft 9) cannot return assertions for portable identifiers,<BR>
&gt;&nbsp;&nbsp;&nbsp; because the verification algorithm will fail.<BR>
&gt;<BR>
&gt;&nbsp;&nbsp; * Portable identifiers must be treated differently from IdP-issued<BR>
&gt;&nbsp;&nbsp;&nbsp; identifiers by the code running on the relying party<BR>
&gt;<BR>
&gt;<BR>
&gt; Proposed changes<BR>
&gt; ================<BR>
&gt;<BR>
&gt; All of the changes to delegation that have been proposed retain the<BR>
&gt; important features of portable identifier support. Additionally, they<BR>
&gt; all retain the same basic structure, where the IdP-specific identifier<BR>
&gt; is available from the standard discovery process. Primarily, the<BR>
&gt; proposals change what data is available in the protocol messages, the<BR>
&gt; relationship of the request to the response, and/or the party who is<BR>
&gt; responsible for discovering the IdP-specific identifier for the portable<BR>
&gt; identifier.<BR>
&gt;<BR>
&gt; Both of the proposed changes to the response messages include the<BR>
&gt; portable identifier in the authentication response. Changing the<BR>
&gt; response to contain the portable identifier removes the burden of<BR>
&gt; maintaining that state from the relying party. Removing this dependency<BR>
&gt; on transaction state enables portable identifiers to be used in both<BR>
&gt; IdP-driven identifier selection and IdP-initiated authentication (&quot;bare<BR>
&gt; response&quot;) [3]_.<BR>
&gt;<BR>
&gt; Neither proposal outlined here changes the protocol unless a portable<BR>
&gt; identifier is used.<BR>
&gt;<BR>
&gt;<BR>
&gt; Both portable and IdP-specific identifiers<BR>
&gt; ------------------------------------------<BR>
&gt;<BR>
&gt; Include both the portable identifier and the IdP-specific identifier in<BR>
&gt; the request and response ([4]_ and<BR>
&gt; [5]_)::<BR>
&gt;<BR>
&gt;&nbsp;&nbsp; openid.identity = <A HREF="http://my.idp.specific.url/">http://my.idp.specific.url/</A><BR>
&gt;&nbsp;&nbsp; openid.portable = <A HREF="http://my.portable.url/">http://my.portable.url/</A><BR>
&gt;<BR>
&gt; The relying party is still responsible for checking to make sure that<BR>
&gt; the IdP-specific identifier that is returned matches what is discovered<BR>
&gt; from the portable identifier, but since it is included in the<BR>
&gt; authentication response, it is not necessary for the relying party to<BR>
&gt; maintain this state, and an authentication response is meaningful<BR>
&gt; without the context of the request.<BR>
&gt;<BR>
&gt; The messages in this proposal are very explicit about what is going on.<BR>
&gt; The only way in which this differs from OpenID 1 is that the portable<BR>
&gt; identifier is also included in the response. The meaning of the<BR>
&gt; &quot;openid.identity&quot; parameter is identical to its meaning in the OpenID 1<BR>
&gt; protocol (the IdP-specific identifier).<BR>
&gt;<BR>
&gt;<BR>
&gt; Portable identifier only<BR>
&gt; ------------------------<BR>
&gt;<BR>
&gt; Include only the portable identifier in the request and response ([6]_<BR>
&gt; and [7]_)::<BR>
&gt;<BR>
&gt;&nbsp;&nbsp; openid.identity = <A HREF="http://my.portable.url/">http://my.portable.url/</A><BR>
&gt;<BR>
&gt; In this proposal, the relying party does not use the IdP-specific fields<BR>
&gt; that are available during discovery. The IdP must do discovery on the<BR>
&gt; supplied identifier to determine what IdP-specific identifier has been<BR>
&gt; specified.<BR>
&gt;<BR>
&gt; This proposal simplifies relying party behavior. The messages that are<BR>
&gt; passed have an obvious meaning and are easy to verify. The meaning of<BR>
&gt; the &quot;openid.identity&quot; parameter is different from its meaning in the<BR>
&gt; OpenID 1 protocol.<BR>
&gt;<BR>
&gt;<BR>
&gt; References<BR>
&gt; ==========<BR>
&gt;<BR>
&gt; .. [1] &quot;openid.delegate explained.&quot;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Brad Fitzpatrick, 3 October 2006<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A HREF="http://openid.net/pipermail/specs/2006-October/000182.html">http://openid.net/pipermail/specs/2006-October/000182.html</A><BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt; .. [2] &quot;OpenID Authentication 1.1&quot;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; David Recordon, Brad Fitzpatrick, May 2006<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A HREF="http://openid.net/specs/openid-authentication-1_1.html">http://openid.net/specs/openid-authentication-1_1.html</A><BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt; .. [3] &quot;[PROPOSAL] bare response / bare request&quot;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dick Hardt, 30 September 2006<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A HREF="http://openid.net/pipermail/specs/2006-September/000142.html">http://openid.net/pipermail/specs/2006-September/000142.html</A><BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt; .. [4] &quot;cachability of delegated identity URLs&quot;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Brad Fitzpatrick, 8 June 2006<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A HREF="http://lists.danga.com/pipermail/yadis/2005-June/000676.html">http://lists.danga.com/pipermail/yadis/2005-June/000676.html</A><BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt; .. [5] &quot;Delegation Proposal Amendment&quot;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Josh Hoyt, 6 October 2006<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A HREF="http://openid.net/pipermail/specs/2006-October/000269.html">http://openid.net/pipermail/specs/2006-October/000269.html</A><BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt; .. [6] &quot;Proposal: IdP-supported delegation&quot;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Josh Hoyt, 4 September 2006<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A HREF="http://openid.net/pipermail/specs/2006-September/000002.html">http://openid.net/pipermail/specs/2006-September/000002.html</A><BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt; .. [7] &quot;PROPOSAL: OpenID Authentication Flow and how delegate fits in&quot;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dick Hardt, 9 October 2006<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A HREF="http://openid.net/pipermail/specs/2006-October/000310.html">http://openid.net/pipermail/specs/2006-October/000310.html</A><BR>
&gt; _______________________________________________<BR>
&gt; specs mailing list<BR>
&gt; specs@openid.net<BR>
&gt; <A HREF="http://openid.net/mailman/listinfo/specs">http://openid.net/mailman/listinfo/specs</A><BR>
&gt;<BR>
&gt; _______________________________________________<BR>
&gt; specs mailing list<BR>
&gt; specs@openid.net<BR>
&gt; <A HREF="http://openid.net/mailman/listinfo/specs">http://openid.net/mailman/listinfo/specs</A><BR>
<BR>
_______________________________________________<BR>
specs mailing list<BR>
specs@openid.net<BR>
<A HREF="http://openid.net/mailman/listinfo/specs">http://openid.net/mailman/listinfo/specs</A><BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>