TL;DR: we plan to add support for an OAuth protocol extension called "PKCE"
to help webextensions and mobile apps get connected to FxA; feedback
welcome.


Hi All,

The OAuth reliers that we've added to FxA so far have all been what RFC6749
calls "confidential clients" - applications running in a secure environment
such as a webserver where they can maintain confidentiality of a secret,
and use that secret to authenticate themselves to our service.

As we look towards integrating FxA into WebExtensions and standalone Mobile
apps, we need to solidify our story for supporting "public clients" -
applications that run entirely on the user's machine and so cannot embed
any secret tokens with which to authenticate to our service.

Such apps are, unfortunately, more vulnerable to having their OAuth login
flow snooped by other code running on the user's device.

The recommended approach is for public clients to use an extension to the
OAuth code flow called "Proof Key for Code Exchange" (aka "PKCE", aka
"pixie") to secure their login flows against other applications.  You can
read all the details in the RFC if you're curious:

  https://tools.ietf.org/html/rfc7636

But you might find these higher-level articles more approachable, since the
core of the protocol is quite straightforward:

  https://auth0.com/docs/api-auth/grant/authorization-code-pkce

https://medium.com/@justinsecurity/mobile-apps-and-oauths-implicit-flow-68e72c6515a1

We intend to add PKCE support to oauth.accounts.firefox.com as part of our
webextension prototyping work this quarter.  If you're curious about these
things, or want to learn more about the implications from a security
perspective, please give the above docs a read and follow up here on the
list with any questions or concerns.

:ulfr and :g-k, I've cc'd you for visibility on this change.  It's a
relatively small amount of code to implement a well-regarded spec, so it
feels fairly low-risk to me, but let me know if you think it warrants more
formal review with your team and I will set something up.


  Cheers,

    Ryan
_______________________________________________
Dev-fxacct mailing list
Dev-fxacct@mozilla.org
https://mail.mozilla.org/listinfo/dev-fxacct

Reply via email to