<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jun 7, 2015 at 3:38 PM, Ryan Kelly <span dir="ltr"><<a href="mailto:rfkelly@mozilla.com" target="_blank">rfkelly@mozilla.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 7/06/2015 22:21, Shane Tomlinson wrote:<br>
> On Thu, May 28, 2015 at 6:24 AM, Ryan Kelly <<a href="mailto:rfkelly@mozilla.com">rfkelly@mozilla.com</a><br>
</span><span class="">> <mailto:<a href="mailto:rfkelly@mozilla.com">rfkelly@mozilla.com</a>>> wrote:<br>
><br>
><br>
> Heh, this suggestion may come as a surprise to folks on this list.<br>
><br>
> The context here is that to get an OAuth token, you must currently:<br>
><br>
> 1) Get a sessionToken with the auth-server<br>
> 2) Use it to sign a BrowserID identity certificate<br>
> 3) Use that to generate a BrowserID identity assertion<br>
> 4) Give that to the oauth-server to get an OAuth token<br>
><br>
> But we have no plans to use BrowserID assertions in any new work going<br>
> forward. We need them in sync for legacy reasons, but all new<br>
> FxA-attached services will be using OAuth and OAuth only.<br>
><br>
> So it sure would be nice if you could go session token => OAuth token<br>
> directly and cut out the middleman...<br>
><br>
><br>
> As I was reading through the sequence of token bearing, I asked myself<br>
> the same thing I've asked many times "why are BrowserID assertions even<br>
> a part of this process?" What is the legacy reason that Sync needs them?<br>
<br>
</span>It's how Firefox authenticates itself to the sync server infrastructure.<br>
Getting away from them entirely would involve:<br>
<br>
* updating the sync servers to accept oauth tokens for authentication.<br>
* updating the sync client code in Firefox to use oauth tokens.<br>
* waiting for sufficiently low usage from older versions of Firefox<br>
that we can disable the old endpoints on the servers.<br>
<br></blockquote><div><br></div><div>It might be easier than you think. ESR is the tough case, but most of our active users are on recent versions of Firefox.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I'd like to work towards to first two because it's the Right Thing, but<br>
I'm not sure the third would ever come to pass.<br>
<span class=""><br>
> Hypothetically, it might mean that the auth-server could grow a /oauth<br>
> endpoint under which we expose the current oauth-server API,<br>
> authenticated with session tokens rather than assertions.<br>
><br>
> Note that we've no plans to actually go ahead with this, it's just an<br>
> architectural musing. I'd be interested in everyone's high-level<br>
> reaction to the suggestion.<br>
><br>
> Remove the steps that aren't strictly necessary. If BrowserID assertions<br>
> are only needed for Sync, why not only generate them for Sync? For users<br>
> not signing in to Sync, we would be able to remove several steps/XHR<br>
> requests, possibly giving the user a marginally quicker experience once<br>
> they click "Sign in".<br>
<br>
</span>Agreed. The extra latency is at least several hundred milliseconds for<br>
me, and that's not even measuring the extra crypto blah-blah we need to<br>
do in the client to generate the signed identity assertions.<br>
<br>
If we went this route, I think we could entirely remove the BrowserID<br>
stuff from fxa-content-server. Sync does its own handling of those<br>
formats in native Gecko code.</blockquote><div><br></div><div><br></div><div>BiD assertions make the decoupling of Auth and OAuth servers easier to deal with. If we go for the "giant smush” of a combined Auth/OAuth/Device manager (which makes a lot of sense), we can probably simplify there.</div><div><br></div><div>-chris</div><div><br></div><div><br></div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">
<br>
Cheers,<br>
<br>
Ryan<br>
_______________________________________________<br>
Dev-fxacct mailing list<br>
<a href="mailto:Dev-fxacct@mozilla.org">Dev-fxacct@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/dev-fxacct" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/dev-fxacct</a><br>
</div></div></blockquote></div><br></div></div>