<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Paul,<br><br>&gt; I‚Äôm not entirely sure how the Janrain code works, as I‚Äôve<br>&gt; not really looked at it.&nbsp; I‚Äôm pretty sure, though, that the<br>&gt; OP code I wrote would complain if the ‚Äúreturn to‚Äù URL is not<br>&gt; a sub-domain of the specified realm.&nbsp; It even checks to<br>&gt; ensure that the scheme matches (e.g., HTTPS or HTTP must be<br>&gt; used in both places).&nbsp; So, I would assume that the example<br>&gt; you give below would fail on my server.&nbsp; Not sure, of<br>&gt; course‚Ķ there‚Äôs always opportunity for a bug ;-)<br><br>I'm sure your code checks the return_to URL correctly, and<br>the Janrain code does too.&nbsp; The example was not about the<br>return_to URL.&nbsp; What I was trying to say is that, when an<br>application hosted at example.com uses the free Janrain<br>widget, the widget
 uses the realm example.rpx.com, causing<br>the OP to ask the user to trust example.rpx.com.&nbsp; If the<br>user were knowledgeable about domain name syntax, he/she<br>would realize that this is not the domain of the application<br>that he/she is trying to use, and he/she would refuse to go<br>ahead and trust example.rpx.com.&nbsp; So the point is: users are<br>not knowledgeable about domain name syntax, and the widget<br>relies on the fact that they are not.<br><br>&gt; I do agree that HTTPS ought to be used everywhere.&nbsp; There<br>&gt; are two issues with meeting that requirement.&nbsp; Some argue<br>&gt; that these issues are weak arguments, but they are truly an<br>&gt; impediment to getting wide adoption:<br>&gt; <br>&gt; 1) TLS certificates are still more expensive than they ought<br>&gt; to be.&nbsp; We‚Äôre talking about something that can be cranked<br>&gt; out entirely automatically and in a fraction of a second and<br>&gt; some people
 believe this ‚Äúwork‚Äù is worth more than $100. The<br>&gt; cheapest price I‚Äôve seen is $13 per certificate, which is<br>&gt; getting close to reasonable, but still too high.&nbsp; The domain<br>&gt; name cost less than the certificate!&nbsp; This rip-off needs to<br>&gt; end.<br>&gt; <br>&gt; 2) Many, many web servers still do not support Server Name<br>&gt; Indication (SNI).&nbsp; So, many web sites cannot even provide<br>&gt; proper support for TLS.&nbsp; It was for this reason that I wrote<br>&gt; my OP server code such that the only piece of software that<br>&gt; absolutely, really should be placed behind HTTPS was the one<br>&gt; that handles password checks and cookies for<br>&gt; checkid_immediate.<br>&gt; <br>&gt; 3) Many client libraries still do not support SNI, including<br>&gt; those running OpenID RP code.&nbsp; The stock browser on Android<br>&gt; and other browsers do not support SNI.<br>&gt; <br>&gt; Anyway, your
 statement is correct, but I think there are<br>&gt; practical reasons why the standard did not mandate HTTPS.<br><br>The point I was trying to make is not so much that SSL is<br>not required by the spec, it's that it is not recommended for the RP,<br>whereas it is strongly recommended for the OP.&nbsp; And there is<br>no discussion of the matter at all in the security<br>considerations.&nbsp; Somebody who reads the spec may think that<br>SSL is just unnecessary for the RP.&nbsp; An RP that has a<br>dedicated a server and an SSL certificate used for other<br>purposes, and that would have no difficulty receiving SSL<br>connections at the return_to endpoint, may not use SSL at<br>the endpoint just because nothing in the spec says that that<br>would be helpful.<br><br>Francisco<br><br><br></td></tr></table>