Labs/Weave/Identity/Account Manager

From MozillaWiki
< Labs‎ | Weave
Jump to: navigation, search

Account Manager

The Account Manager project aims to produce:

  • A protocol definition that sites can use to define their account-and-session management features in a format a web browser can understand. (The latest draft of the specification is here).
  • An implementation of this protocol as a Firefox addon.

The goal is to help users manage the process of "connecting" to a site, in a way that allows us to use secure browser chrome, and supports multiple authentication mechanisms.

The account manager is an evolution of the Firefox password manager and the Weave identity components (OpenID + auto-login). It will help users manage logins and profile information for each site, and it will automate currently manual tasks such as signing up for sites, generating passwords, etc. The first prototype will have support for "traditional" login methods (e.g., form + cookie), but it will also have some support for OpenID/federated logins.

Creating a new identity framework is a non-goal of this project, although some new file formats and protocols are in scope (see below for details).

There is additional information in the announcement blog post, as well as the add-on's first-run page.

Drivers

  • Mike Hanson
  • Dan Mills
  • Aza Raskin (UX/Labs)
  • Alex Faaborg (UX/Firefox)

Releases / Roadmap

Specification

Our proposal, "HTTP Extensions for Account and Session Management", is under development. You can read our draft here.

Addon

Latest release

  • 0.0.1 (2009.11.11) - Initial release that spins off the Weave identity features and creates a basic account manager.
  • 0.0.2 (2009.11.1829) - Bugfix for Weave identity features (autologin). Sign in/sign out functionality (spec proposal) still in the works.
  • ...
  • 0.0.10 (2010.03.05) - Alpha pre-release of "true" account management support (no heuristic autologin, uses the spec above).

Use Cases

Simple Connect

Alan routinely visits sites that use username-password logins, HTTP basic auth, and OpenID. He is tired of remembering which credential style to use at each site, and frustrated that he needs to repeat this process after unlocking his Firefox with a master password.

Account Manager provides a single click to log in to each of these sites, and, when Alan selects "always keep me connected", he never needs to deal with a login screen again.

Two Users, One Firefox

Madison and Connor use the same family computer in the den, and can't be bothered to use OS-level multi-user functions, and don't understand Firefox Profiles.

With Account Manager, they can tell at a glance that a given browser instance of Facebook, Twitter, or Yahoo Mail is logged in as their sibling, and by selecting from a dropdown menu, easily switch to their account.


Automatic site registration, automatic password change

Diego visits guitar.com to improve his musical skills. The site promises exciting personalized features if he connects, so he clicks the "Connect" button. Firefox immediately presents a summary of the personal information that it will send to the site, which Diego confirms, and an account (with a random password) is created.

At a later date, Firefox asks Diego if he would like to automatically change the password, and to automatically change it for him in the future. Since Diego uses cloud-based password sync, all of his other devices are able to log in using the new password after a sync.

If Diego has never seen his password, then it doesn't make sense if he'd like to change it. As far as he is concerned, Firefox holds the keys and it doesn't matter if Firefox gets them retooled as long as his experience remains the same.

Mass Password Reset

Chris left his laptop in the car a few days ago, and a thief broke his window and stole his laptop. Chris is now nervous that he could suffer from identity theft, and wants to minimize that chance. On his desktop machine he opens the Account Manager and changes his passwords to all his sites with a single action, locking out anyone who might have his stolen passwords.

Requirements

The following are the main features we are focusing on for the alpha.

  • Auto login for form/cookie based authentication
  • Formal protocol definition
  • Heuristic Engine (if needed)
  • Supports Sync if installed


The following are the main features we are focusing on for the beta.

  • Global Profile
  • Auto registration using global profile
  • Detailed account viewer (integration with Site Preferences?)
  • Add auto login support for HTTP Basic and other


The priorities below are more tailored towards the 1.0 release.


UX

  • Account Manager
    • List accounts with basic information [P1]
    • Filter by site [P1]
    • Open detailed viewer for an account [P2]
    • Global session viewer - "you are logged in at all these sites" [P2]
  • Detailed account viewer [P2]
    • Show information the site has about you
    • Change information
    • Update information from global profile
    • Close account
  • Global profile
    • User hcard info [P1]
    • Ability to blast out changes to sites that already have that info [P3]
  • Notifications/workflows
    • Login requested by site -> new account creation / existing account UI [P1]
    • Profile data chooser for creating a new account [P1]
  • Status indicator [P1]
    • Login not supported on this site (invisible, maybe)
    • Logged out / logged in / automatic login enabled / error
    • View profile details for this site (detailed acct viewer)
    • View error details (?)
    • Multiple account chooser

Backend

  • Heuristic engine [P1]
    • Log in, log out, basic status (logged in, etc)
    • Password change
    • Account creation automation / auto form-fill hcard info
  • Interim site definitions [P1]
    • Jetpack API to add support for sites the heuristic engine doesn't work for
  • Formal protocol/format definitions [P1]
    • Status: logged in/logged out/errors/etc
    • API endpoint query (discovery)
    • Log in
    • Log out
    • Query information site has about you [P2]
    • Change/add/remove information/password/other account data [P2]
    • Cancel account [P2]
  • Support for various authentication types
    • Form submission/cookie [P1]
    • HTTP Basic auth [P1]
    • HTTP Digest auth [P2]
    • Client certs [P2]
    • OpenID [P3]
    • 2-factor [P3]
    • SRP, etc? [experiment]
  • Supports sync if installed [P1]
  • Disables itself during private browsing mode [P1]

UX Mockups

We have a couple of UI mockups related to how this might look. We'll be iterating on these and will continue to post updates here. Note that these are both really early mockups and will continue to evolve.

Design 2


Notes from UX reviews

23-Nov-2009

  • What do we use as the identifier to show in the URL bar?
  1. Username we sent (from password manager) --> think of the problems if we sign up with openid/webfinger
  2. We let the site tell us (10% off pants @ gap.com)
  3. Profile tag (Work/Home)
    1. Profile tag variant (First name of the profile) <- bad
  4. Logged in
  5. Weave ID
  • Do we show users that even when they are not explicitly signed in to a site, that the site actually knows who they are (via cookies)?
  • How do we present the notion of connect/disconnect etc before there is login to firefox?

Other Notes / Whiteboards

Sign in/Sign out flowchart