<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Agreed,<div><br></div><div>It is up to the RP to use return to pass additional information, though the RP needs to sign anything that is passed that way.</div><div><br></div><div>OpenID is by design a RESTful protocol. &nbsp; Preserving state on the RP is not a requirement.</div><div><br></div><div>You can optimize the flow by caching the results of discovery. &nbsp; However I the RP must always fully validate the assertion.</div><div><br></div><div>OpenID supports unsolicited assertions as well, where there is no request.</div><div><br></div><div>It is up to the RP to preform session management, as Andrew points out you can pass things threw the return_to, though unless they are specifically required for the authentication flow(replay detection for openid 1.0 etc) &nbsp;that is probably a bad design.</div><div><br></div><div>John B.<br><div><div>On 2010-08-20, at 10:17 AM, Andrew Arnott wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">I don't consider this a flaw at all. &nbsp;In fact you can solve it yourself today, in total compliance with the OpenID spec. &nbsp;<div><br></div><div>Use the return_to parameter to add whatever unique ID you wish was there. &nbsp;Then in your logs, you'll see the ID on the outgoing request (if you log it) and on the response (via the incoming HTTP indirect message). &nbsp;</div>
<div><br></div><div>Problem solved, right? &nbsp;It's totally up to the RP (you) to leverage this hidden "feature" of ways to use return_to.</div><div><br></div><div>In particular, DotNetOpenAuth utilizes return_to when its optional feature is activated that disables "unsolicited assertions", which guarantees that each authentication response starts with an authentication request that originated at the RP. &nbsp;We had a signed nonce from the RP to the return_to, and verify it when it comes back. &nbsp;Again, this is only if you wanted to disable unsolicited assertions deliberately for some reason.</div>
<div><br clear="all">--<br>Andrew Arnott<br>"I [may] not agree with what you have to say, but I'll defend to the death your right to say it." - S. G. Tallentyre<br>
<br><br><div class="gmail_quote">On Fri, Aug 20, 2010 at 2:12 AM, Maarten Billemont <span dir="ltr">&lt;<a href="mailto:lhunath@gmail.com">lhunath@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
It has always bothered me that the OpenID protocol does not assign a unique ID to requests that is required to be repeated in the request's response. &nbsp;This makes it annoying to cleanly identify whether a response matches a particular request; instead relying on chronology (response Y comes after request X? &nbsp;It must be a response to X!).<br>

<br>
This is an annoyance, yet, in the case of successful authentication responses, not a disaster: The response can be signed and verified.<br>
<br>
In the case of a failure response, however, there is a significant lack of useful information passed from the OP to the RP. &nbsp;This lack of useful information makes it impossible for the RP to verify that the response did originate from the OP. &nbsp;Unfortunately for the RP, (and conveniently for an attacker), the response is sent via indirect communication (via the User Agent); so the RP has no clue whatsoever where the response came from or who crafted it. &nbsp;There is no association handle, no signature, no nonce, no nothing.<br>

<br>
Does that mean that to sabotage an OpenID site's authentication process, all I have to do is craft a website which, when opened by the user in a separate tab, continuously makes requests to the RP providing authentication failure responses?<br>

<br>
Am I missing something here, or is the OpenID protocol really so flawed? &nbsp;And if it is, can I expect anyone to fix the protocol any time soon?<br>
<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>
</blockquote></div><br></div>
_______________________________________________<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">http://lists.openid.net/mailman/listinfo/openid-general</a><br></blockquote></div><br></div></body></html>