[jumping in]<div><br></div><div>Hi Chris, I&#39;m the LinkedIn guy who presented at the OpenID Summit on Monday.</div><div><br></div><div>Indeed, we have many partners rolling their own Login with LinkedIn using our existing OAuth flow. <a href="http://coworkers.com">coworkers.com</a> is another good example, albeit a registration case instead of login. And we have developers in the forum requesting improvements for this use case - the most common request is for an endpoint that immediately redirects if an existing grant is available (the user never sees the Providers&#39;s page if they&#39;ve already given permission), as is the case with Sign-in-with-Twitter.</div>

<div><br></div><div>At the risk of conflating protocols, I do think there is raw potential for an &quot;identity and profile&quot; extension to OAuth. IDPs which carry a lot of sensitive profile information (like LinkedIn) can probably never hand it out to arbitrary, unknown RPs ... but we already have an OAuth solution for managing our relationship with third parties (registration, terms of use, signing), so why not leverage that?</div>

<div><br></div><div>Basic pieces would include:</div><div><ul><li>An endpoint which will redirect immediately if the user is (a) signed in and (b) has an existing access grant for the requesting party.</li><ul><li>optionally, there could be an &#39;immediate report&#39; option to this endpoint which will return immediately even in the negative case (i.e. signaling that the user would be prompted). Useful for background calls to detect a user&#39;s state and then adapt UX.</li>

<li>It&#39;s important to keep the &quot;always prompt&quot; endpoint so that concerned developers can make sure users understand what&#39;s happening.</li></ul><li>A standard field for returning a stable user_id. And probably some additional metadata: in the LinkedIn case, our member_ids are actually per-developer-key, so it might be useful to signal that in a standard way.</li>

<li>A mechanism for third parties to invalidate a token (&quot;Logout Completely&quot;). If the third party detects that the wrong LinkedIn-user is connected to an account on their side (UX confusion, etc), they can be good citizens and invalidate the underlying token, then send the current user back through the full flow to get it fixed. </li>

<li>A standard field for identifying a profile endpoint which (if called with the access token) will return the user&#39;s profile in an extensible way. I&#39;m sure there&#39;s an Open solution for the basic data (ax, poco, etc) but it&#39;s likely that we (LI) will always have <i>some</i> unique info so would love to just pass the extra stuff back in a json blob somewhere.</li>

</ul><div>My idea here is not to push the wrong things into OAuth, but rather help out the extremely common use case of a developer saying &quot;I just want to import that user&#39;s profile after getting their permission&quot;. Would be great if the various OAuth libraries had a getProfile() method that worked consistently. Even though results would be heterogenous and provider-specific - that&#39;s alright for many (most?) developers.</div>

</div><div><br></div><div>As to user experience reports on the grant duration (1-day, 1 month, Indefinite) , we don&#39;t have good data yet. Honestly the platform hasn&#39;t been open for long enough :-). But I do have anecdotal reports that users like the 1-day grant - it lets them try out subscription-style / ongoing services and not worry about dealing with the third-party&#39;s cancellation later.</div>

<div><br></div><div>I do not know if users have sufficiently grok&#39;d the concept of an IDP&#39;s &quot;Application Permissions Management Page&quot;. Would love to chat on common UX issues around that.</div><div><br></div>

<div>Of course, apologies for rambling about this on an OpenID list :-P</div><div><br></div><div>-- Mike</div><div><br><div class="gmail_quote">On Wed, Apr 7, 2010 at 1:19 PM, Paul Lindner <span dir="ltr">&lt;<a href="mailto:lindner@inuus.com">lindner@inuus.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div style="word-wrap:break-word">We have not done much in the way of usability studies on this page.  We do know that most users will grant access &#39;until revoked&#39;, which is not too surprising since that&#39;s the default choice.<div>

<br></div><div>The partner can (and does) get a stable identifier by sending a query to a rest endpoint that returns the member ID for the current token (and other information).  It&#39;s the equivalent of a PoCo @self request.</div>

<div><br><div><br></div><div><br><div><div>On Apr 7, 2010, at 10:43 AM, Chris Messina wrote:</div><br><blockquote type="cite">Have you done any usability studies on this flow/screen? Any idea whether people understand the &quot;duration&quot; dropdown? And — given that <a href="http://elegant.ly/" target="_blank">elegant.ly</a> is using the OAuth token to figure out identity — if and when the token expires — do they still have a stable identifier for the user?<div>


<br></div><div>Chris<br><br><div class="gmail_quote">On Wed, Apr 7, 2010 at 10:26 AM, Paul Lindner <span dir="ltr">&lt;<a href="mailto:lindner@inuus.com" target="_blank">lindner@inuus.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div style="word-wrap:break-word">The screen you see is LinkedIn&#39;s standard OAuth Authorization Screen.  When you click on the sign-in button it hits the 3rd party backend, which hits our requestToken endpoint, the resulting token is immediately used to redirect to the LinkedIn Authorize page.  If you&#39;re logged out you&#39;re going to see the Email/Password fields.  In all cases we prompt for the duration of the access grant.  Once access is granted we redirect back to the originating site.<div>


<br></div><div>It appears that <a href="http://elegant.ly/" target="_blank">elegant.ly</a>  then associates the retrieved access token with a cookie/session on their domain.</div><div><br></div><div>Very slick.</div><div>

<br>
</div><div><div><br><div><div>On Apr 7, 2010, at 9:05 AM, Chris Messina wrote:</div><br><blockquote type="cite"><div bgcolor="#FFFFFF"><div>Interesting. </div><div><br></div><div>But while the signin button doesn&#39;t come from you, the OAuth page you&#39;re redirected to does. </div>


<div><br></div><div>How else is that page intended to be used?</div><div><br></div><div>Chris<br><br>Sent from my iPhone 2G</div><div><br>On Apr 7, 2010, at 6:09 AM, Paul Lindner &lt;<a href="mailto:lindner@inuus.com" target="_blank">lindner@inuus.com</a>&gt; wrote:<br>


<br></div><div></div><blockquote type="cite"><div>Hi all,<div><br></div><div>This SignIn button is not something we&#39;ve designed.  However it shows that people will apply existing technology to solve their problems.  In fact it&#39;s not that much different than &#39;Sign-in With Twitter&#39; if you think about it...<div>


<div></div><div><br>
<br><div class="gmail_quote">On Wed, Apr 7, 2010 at 5:00 AM,  <span dir="ltr">&lt;<a href="mailto:openid-general-request@lists.openid.net" target="_blank"></a><a href="mailto:openid-general-request@lists.openid.net" target="_blank">openid-general-request@lists.openid.net</a>&gt;</span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>Nice interface, thanks for sharing.<br>
<br>
A bit of Bo-Hoo at LinkedIn for using &quot;Sign In&quot; which seems to<br>
indicate log in when it&#39;s not really.<br>
But perhaps no one cares. Is authn and authz just an academic<br>
difference in the wild?<br>
<br>
The world will keep turning...<br>
<br>
<br>
On Fri, Apr 2, 2010 at 7:06 PM, Chris Messina &lt;<a href="mailto:chris.messina@gmail.com" target="_blank"></a><a href="mailto:chris.messina@gmail.com" target="_blank">chris.messina@gmail.com</a>&gt; wrote:<br>
&gt; Take a look at this:<br>
&gt; visit <a href="http://elegant.ly/" target="_blank"></a><a href="http://elegant.ly/" target="_blank">http://elegant.ly</a> and click the &quot;Sign In&quot; button...<br>
&gt; You end up at LinkedIn where you&#39;re essentially doing an OAuth dance for<br>
&gt; sign in.<br>
&gt; Interesting, eh?<br>
&gt; Chris<br>
&gt;<br>
&gt; --<br>
&gt; Chris Messina<br>
&gt; Open Web Advocate, Google<br>
&gt;<br>
&gt; Personal: <a href="http://factoryjoe.com/" target="_blank"></a><a href="http://factoryjoe.com/" target="_blank">http://factoryjoe.com</a><br>
&gt; Follow me on Buzz: <a href="http://buzz.google.com/chrismessina" target="_blank"></a><a href="http://buzz.google.com/chrismessina" target="_blank">http://buzz.google.com/chrismessina</a><br>
&gt; ...or Twitter: <a href="http://twitter.com/chrismessina" target="_blank"></a><a href="http://twitter.com/chrismessina" target="_blank">http://twitter.com/chrismessina</a><br>
&gt;<br>
&gt; This email is: ? [X] shareable ? ?[ ] ask first ? [ ] private<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; general mailing list<br>
&gt; <a href="mailto:general@lists.openid.net" target="_blank"></a><a href="mailto:general@lists.openid.net" target="_blank">general@lists.openid.net</a><br>
&gt; <a href="http://lists.openid.net/mailman/listinfo/openid-general" target="_blank"></a><a href="http://lists.openid.net/mailman/listinfo/openid-general" target="_blank">http://lists.openid.net/mailman/listinfo/openid-general</a><br>



&gt;<br>
&gt;</div></blockquote></div><br></div></div></div>
</div></blockquote><div><div></div><div><blockquote type="cite"><div><span>_______________________________________________</span><br><span>general mailing list</span><br><span><a href="mailto:general@lists.openid.net" target="_blank">general@lists.openid.net</a></span><br>


<span><a href="http://lists.openid.net/mailman/listinfo/openid-general" target="_blank">http://lists.openid.net/mailman/listinfo/openid-general</a></span><br></div></blockquote></div></div></div></blockquote></div><br></div>


</div></div></blockquote></div><br><br clear="all"><br>-- <br>Chris Messina<br>Open Web Advocate, Google<br><br>Personal: <a href="http://factoryjoe.com/" target="_blank">http://factoryjoe.com</a><br>Follow me on Buzz: <a href="http://buzz.google.com/chrismessina" target="_blank">http://buzz.google.com/chrismessina</a> <br>


...or Twitter: <a href="http://twitter.com/chrismessina" target="_blank">http://twitter.com/chrismessina</a> <br><br>This email is:   [ ] shareable    [X] ask first   [ ] private<br>
</div>
</blockquote></div><br></div></div></div><br>_______________________________________________<br>
general mailing list<br>
<a href="mailto:general@lists.openid.net">general@lists.openid.net</a><br>
<a href="http://lists.openid.net/mailman/listinfo/openid-general" target="_blank">http://lists.openid.net/mailman/listinfo/openid-general</a><br>
<br></blockquote></div><br></div>