- 1 What Is Firefox Accounts?
- 2 FAQ
- 2.1 Will I be required to create a Firefox Account to use Firefox?
- 2.2 How does a user create and sign in to a Firefox Account?
- 2.3 Why does Firefox Accounts require me to choose a password?
- 2.4 How do relying Mozilla services authenticate an FxA user?
- 2.5 How does a user reset her Firefox Account password?
- 2.6 What information does Firefox Accounts store about the user?
- 2.7 Can I use Firefox Accounts to store user data for my application or service?
- 2.8 What's the difference between Persona and Firefox Accounts?
- 2.9 Can I use Persona to log in to my Firefox Account?
- 2.10 Can I use my Firefox Account to log in to non-Mozilla services?
- 2.11 Does Firefox Accounts provide email?
- 2.12 What services will use Firefox Accounts?
- 2.13 What do these terms mean?
- 2.14 Is it possible to host your own Firefox accounts, like with Firefox Sync?
- 2.15 Have a question not covered here? Add it in this section and we'll answer it!
- 3 Architecture
- 4 Resources
What Is Firefox Accounts?
Firefox Accounts is a consumer account system which provides access to services run by Mozilla, such as Firefox Marketplace and the next version of Firefox Sync. A user can sign in with a Firefox Account to all her "Foxes": Firefox on Desktop, Firefox for Android, and Firefox OS. Signing into a Firefox browser or device gives the user access to integrated Mozilla Services on that browser or device that requires authentication (e.g., Firefox Sync). Longer term we envision that non-Mozilla services and applications will be able to delegate authentication to Firefox Accounts. Relying services will manage their own data, but rely on Firefox Accounts for authentication services.
Will I be required to create a Firefox Account to use Firefox?
No, of course not! Firefox Accounts will only be required for Mozilla Services that require authentication, such as Firefox Sync and advanced features on Firefox Marketplace like purchasing paid apps, adding app reviews etc.
How does a user create and sign in to a Firefox Account?
Firefox Accounts will work much like authentication works just about everywhere else. You create a Firefox Account with a verified email and password. You sign in to Firefox Accounts with your email and password.
Why does Firefox Accounts require me to choose a password?
The first relying service we're targeting with Firefox Accounts is Firefox Sync. Current Firefox Sync encrypts all your data in our servers, and we will continue to do so in the Firefox Accounts backed version of Sync. However, in the FxA backed version of Firefox Sync, we will encrypt your Sync data with a key derived from your Firefox Account password, instead a random key managed by the J-PAKE pairing protocol. This technique of using a password derived sync key is similar to how data protection in Chrome Sync works.
How do relying Mozilla services authenticate an FxA user?
How does a user reset her Firefox Account password?
What information does Firefox Accounts store about the user?
Can I use Firefox Accounts to store user data for my application or service?
Firefox Accounts only stores information that will deliver significant user value across applications or is tightly related to the user's identity. It will not store user data for relying services. Relying Mozilla services can use Firefox Accounts for authentication, but application data storage is the responsibility of the individual applications.
What's the difference between Persona and Firefox Accounts?
Persona is not intended to provide you with a new account, and it's not a new account system. Persona is a federated login protocol. You use Persona to log in to relying sites, and it's not intended that you need to "sign up" for Persona before you can use it. If you would need to sign up for anything, you would need to create an account at an IdP that supports Persona.
One confusing point about Persona today is a service called the "Persona Fallback", which serves as a proxy IdP if your actual IdP doesn't support Persona (or isn't bridged), which just about every IdP except for Google and Yahoo. In this case, you currently have to sign up for a "Persona Fallback Account" (i.e. choose a password and verify your email) to use Persona.
But a Persona Fallback Account is not a Persona Account, it's not the long term vision of Persona, and that's not supposed to be the happy path of the Persona login experience.
More importantly, for the purposes of this question, a Persona Fallback Account is definitely not a Firefox Account.
So why Firefox Accounts and what will one do?
Can I use Persona to log in to my Firefox Account?
Not initially, but it's something we're investigating to add in the future.
Can I use my Firefox Account to log in to non-Mozilla services?
Not initially, but it's something we're investigating to support in the future.
Does Firefox Accounts provide email?
What services will use Firefox Accounts?
What do these terms mean?
- FTU, FTE: First Time Experience on Firefox OS
- FxA : Firefox Accounts. It may also refer to a user's particular Firefox Account.
- RP : Relying Party. Services that use Firefox Accounts for authentication and identity. Currently these are limited to services run by Mozilla.
- PiCL : Profile in the Cloud. This is a deprecated term that was used to refer to Firefox Accounts + attached services (i.e., relying parties).
Is it possible to host your own Firefox accounts, like with Firefox Sync?
Have a question not covered here? Add it in this section and we'll answer it!
Where is the FxA for Web addition to the Arch section below?
What are the similarities/differences between FxA for Web and the Dev work already being done for desktop and android?
Firefox Accounts Cloud Services is composed of several sub-services, including an auth server and a content server.
The Auth Server provides an HTTP API that:
- authenticates the user
- enables the user to authenticate to other services via BrowserID assertions
- enables change and reset password operations
- Code: https://github.com/mozilla/fxa-auth-server
- API documentation: https://github.com/mozilla/fxa-auth-server/blob/master/docs/api.md
- Dev deployment: https://github.com/mozilla/fxa-auth-server#dev-deployment
- Python API client (primarily a reference client): https://github.com/warner/picl-spec-crypto
- hosting login and create account pages
- hosting password reset pages
- hosting landing pages for email verification links
- Code: https://github.com/mozilla/fxa-content-server
JS Client Library
- Code: https://github.com/mozilla/fxa-js-client
- Key stretching details: https://wiki.mozilla.org/Identity/AttachedServices/KeyServerProtocol#Client-Side_Key_Stretching
- Key stretching performance tests: https://wiki.mozilla.org/Identity/AttachedServices/Key_Stretching_Performance_Tests
FxA enables clients to generate BrowserID assertions on behalf of the user. FxA provides a hosted verifier for verifying these assertions.
- Verifier server code: https://github.com/mozilla/browserid-verifier
- Verifier library: https://github.com/mozilla/browserid-local-verify
- Production deployment: https://verifier.accounts.firefox.com/v2
FxA uses the Customs Server to detect and mitigate fraud & abuse.
- Code: https://github.com/mozilla/fxa-customs-server
- Deployment: currently pulled in by the auth server as an npm dependency
Firefox Accounts on Firefox OS
Implementation of Firefox Accounts in FirefoxOS is committed for b2g v2.0.
Firefox Accounts user story spreadsheet - the canonical source of truth:
The Committed user stories have landed, as have most of the Targeted. The project bug is here:
Open bugs with clear product value:
11 Total; 1 Open (9.09%); 9 Resolved (81.82%); 1 Verified (9.09%);
Open bugs for corner cases:
|973635||Allow user to cancel FxA network call when server has sent backoff message||P4||NEW|
|994887||[FxAccounts] Login steps show invalid flow in certain case of logging in from Settings||P4||RESOLVED|
|1004209||Ensure error cases are spec'd, error messages copy approved||P2||RESOLVED|
3 Total; 1 Open (33.33%); 2 Resolved (66.67%); 0 Verified (0%);
Open bugs for refactoring and other yak-shaving:
10 Total; 3 Open (30%); 7 Resolved (70%); 0 Verified (0%);
Fraud and Abuse
- Firefox Accounts development: https://mail.mozilla.org/listinfo/dev-fxacct
- Sync development: https://mail.mozilla.org/listinfo/sync-dev
- Leads: Chris Karlof, Ryan Kelly
- IRC: #fxa
- List: email@example.com
- Engineering: Danny Coates, Zach Carter, Shane Tomlinson, Andrew Chilton, Sean McArthur, Vlad Filippov
- UX: John Gruen, Ryan Feeley
- Metrics: Katie Parlante
- QA: John Morrison, Peter deHaan, Karl Thiessen
- DevOps: Chris Kolosiwsky