<div>James,</div>
<div>&nbsp;</div>
<div>Sorry, but I&#39;m having problems following the flow.&nbsp; It seems like an interesting idea, though.&nbsp; Can you provide with a little more information on how these components would interact?</div>
<div>&nbsp;</div>
<div>I was really trying to keep everything dumb and simple.&nbsp; The concept I was going for was &quot;piggy-back on OpenID, but include a way to&nbsp;programmatically log on to the OpenID Provider&quot;.&nbsp; The problem I saw with OpenID was that there are about a million different ways to authenticate with an OpenID Provider, from HTML forms to digital certificates.&nbsp; Most require the User Agent to be a web browser.&nbsp; However, there is no standard way to just pass a credential that can prove that you are who you say you are. 
</div>
<div>&nbsp;</div>
<div>Trusted Connection Request:</div>
<div>User Agent gives OpenID to Client Consumer</div>
<div>Client Consumer -&gt; User Agent -&gt; OpenID Provider&nbsp;</div>
<div>&nbsp;</div>
<div>Trusted Connection Response (with key):</div>
<div>Client Consumer&nbsp;&lt;- User Agent&nbsp;&lt;- OpenID Provider</div>
<div>&nbsp;</div>
<div>Trusted Logon:</div>
<div>Client Consumer&nbsp;gives OpenID Identity to&nbsp;Destination Consumer</div>
<div>Destination Consumer -&gt; Client Consumer -&gt; OpenID Provider</div>
<div>Destination Consumer &lt;- Client Consumer &lt;- OpenID Provider</div>
<div>&nbsp;</div>
<div>I was trying to solve the problem by coming up with an automatable (if that&#39;s a word) way to&nbsp;authenticate with&nbsp;an OpenID Provider.&nbsp; If we have that, there&#39;s no need to pass around a special token, because we can just&nbsp;use standard OpenID&nbsp;authentication if we&nbsp;want to log on to another system.&nbsp; So,&nbsp;I proposed just&nbsp;having the&nbsp;Consumer get a&nbsp;key from the OpenID Provider that it can use to automatically authenticate with the Provider in the future.&nbsp; The&nbsp;key is passed through the user when it&#39;s&nbsp;granted,&nbsp;because you need the user to approve the whole thing anyway.
</div>
<div>&nbsp;</div>
<div>I don&#39;t expect this extension to fix all problems.&nbsp; It&#39;s only intended to solve a specific use case (website to website info sharing).&nbsp; I am working on two additional extensions which will solve the&nbsp;other problems I see:
</div>
<div>&nbsp;</div>
<div>* Inline Authentication - Provide support for legacy and real-time interactive systems that can&#39;t launch a web browser, and are protecting their own data&nbsp;(Telnet, etc).&nbsp; This will involve manually-typed verification keys.
</div>
<div>* Desktop&nbsp;Authentication -&nbsp;Provide for desktop applications authenticating&nbsp;with and accessing data behind third-party&nbsp;systems (RSS readers, chat, etc).</div>
<div>&nbsp;</div>
<div>I appreciate any feedback you can give me.</div>
<div>&nbsp;</div>
<div>Thank you!</div>
<div>&nbsp;</div>
<div>John Ehn</div>
<div>&nbsp;</div>
<div><span class="gmail_quote">On 8/30/07, <b class="gmail_sendername">James Henstridge</b> &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:james@jamesh.id.au" target="_blank">james@jamesh.id.au
</a>&gt; wrote:</span> 
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">On 26/08/07, John Ehn &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:john@extremeswank.com" target="_blank">
john@extremeswank.com</a>&gt; wrote:<br>&gt; I have created a draft of a new specification that I think will help to fill <br>&gt; a gap in OpenID functionality.<br>&gt;<br>&gt; What appears to be a newer productivity feature of many websites is the
<br>&gt; ability to import and utilize information from other sites.&nbsp;&nbsp;For instance,<br>&gt; Basecamp provides an API that allows other systems to access user data. <br>&gt; This is a great feature, but it currently cannot be done with OpenID, due to
<br>&gt; the dependence on end-user interaction during the authentication process.<br>&gt;<br>&gt; The Trusted Authentication Extension provides for the ability for an OpenID <br>&gt; Consumer to log in to another OpenID Consumer without user interaction.&nbsp;&nbsp;The
<br>&gt; end user will be able to create a trusted connection between two OpenID<br>&gt; enabled sites, which will allow a client site to access a destination site <br>&gt; using the end user&#39;s Identity.<br>&gt;<br>&gt; Please provide your comments and feedback, as they are most appreciated.
<br>&gt;<br>&gt; <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://extremeswank.com/openid_trusted_auth.html" target="_blank">http://extremeswank.com/openid_trusted_auth.html </a><br><br>I think things would be a bit clearer if you made the data provider
<br>into a form of OpenID Provider.<br><br>I think it helps to first consider the case where the data provider is<br>not an OpenID Relying party but instead has its own user account <br>database.<br><br>If the site acted as an OpenID provider, it would be pretty simple to
<br>use an extension to negotiate an auth token to acess data for the<br>user.&nbsp;&nbsp;Simply start an OpenID authentication request, including some <br>field stating that you want access to data.&nbsp;&nbsp;The provider would then<br>include an authentication token in the response that could be used to
<br>access the web services.<br><br><br>Now lets consider the case where the data provider identifies users by <br>an OpenID.&nbsp;&nbsp;What would happen if the data provider continued to<br>implement an OP, and the data consumer started an OpenID
<br>authentication request with it using the user&#39;s data provider.<br><br>This would let us use the same sort of OpenID extension to negotiate <br>the auth token.&nbsp;&nbsp;The data provider could even turn around and perform<br>
its own authentication request to verify that the user is who they say<br>they are, since it received the identity URL from the data consumer.<br><br>So the full workflow might go like this:<br><br>DC: Data Consumer<br>DP: Data Provider
<br>OP: User&#39;s OpenID Provider<br><br>1. DC sends checkid_setup request to DP for user&#39;s identity URL, with<br>an extension asking to negotiate an auth token. <br>2. DP initiates OpenID authentication for user&#39;s identity URL
<br>3. OP verifies user&#39;s identity and sends idres reply to DP.<br>4. DP sends idres reply to DC, including the auth token as an<br>extension in the response. <br><br>This seems to give similar results to your protocol while introducing
<br>fewer new concepts.&nbsp;&nbsp;What do you think?<br><br>James.<br></blockquote></div><br>