Firefox/Projects/AccountManager: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
__NOTOC__
__NOTOC__
The Account Manager project aims to help users manage the (currently manual and tedious) process of signing up/in/out of sites by adding chrome-level status and knobs to give the user a consistent point to view and control of sign-in status to the current site.
The Account Manager project aims to help users manage the (currently manual and tedious) process of signing up/in/out of sites by adding chrome-level status and knobs to give the user a consistent point to view and control of sign-in status to the current site.


Line 12: Line 11:
= Drivers =
= Drivers =


* [mailto:thunder@mozilla.com Dan Mills] (Labs lead)
* [mailto:thunder@mozilla.com Dan Mills]
* [mailto:gavin@mozilla.com Gavin Sharp] (Firefox lead)
* [mailto:mardak@mozilla.com Ed Lee]
* [mailto:faaborg@mozilla.com Alex Faaborg] (UX)
* [mailto:faaborg@mozilla.com Alex Faaborg]
* [mailto:thunder@mozilla.com?subject=I%20want%20to%20help! You!]
* [mailto:thunder@mozilla.com?subject=I%20want%20to%20help! You!]


= Status =
= Status =


* <onlyinclude>IN FLIGHT: Early porting stages (primary focus on {{bug|571411}})</onlyinclude>
;Overview
<onlyinclude>See {{bug|571409}}</onlyinclude>.


We're keeping track of sites that support Account Manager, see [[Firefox/Projects/AccountManager/SupportedSites|this list]].
Account Manager is currently a patch to mozilla-central, and is being targeted at the first release post 4.0.


= Goals =
Note that there is an add-on prototype (the result of the Labs exploration), but it is buggy and speaks an older version of the Account Manager protocol.  It is not recommended for testing, use try-server builds instead.


= Non-Goals =
;Performance Impact


* Greasemonkey-like hacks that work only on one site, except as needed only to demonstrate the potential for the feature.
Currently around 1.3% on average:
* Creating new and interesting authentication/authorization schemes.
* Extensive hacking on Password Manager-like heuristics to make it only sort of work on more sites.


= Timeline/Milestones =
linux: 1.7%
lin64: 2.4%
macos: 0.2%
mac64: 2.0%
winxp: 1.3%
win 7: 0.5%


* Tracking bug: {{bug|571409}}
= TODO =


{| width="100%" cellpadding="3"
;User facing features
|-
* autoconnect [~2d]
| style="background-color: #efefef;" colspan="5" | '''Core Features'''
* multi-profile sign-in bubbles [~1d]
|-
* federated profile [~3d]
| style="background-color: #efefef; width: 20px"| '''Priority'''
* HTTP Auth profile
| style="background-color: #efefef; width: 20px"| '''Target'''
* right click menu (fast user switching)
| style="background-color: #efefef;"| '''Item'''
* basic in-content registration [a few days' work]
| style="background-color: #efefef;"| '''Bug'''
| style="background-color: #efefef;"| '''Status'''
|-
| P1 || M1 || Account Manager service || {{bug|571413}} ||
|-
| P1 || M1 || Realm detection engine || {{bug|571411}} ||
|-
|}


{| width="100%" cellpadding="3"
;Backend features
|-
* cookie-watching (refresh status on cookie changes) [~1day]
| style="background-color: #efefef;" colspan="5" | '''Profiles'''
* per-method static parameters (for forms that use a hidden param to determine action)
|-
* per-method dynamic parameters (for e.g. CSRF protection)
| style="background-color: #efefef; width: 20px"| '''Priority'''
| style="background-color: #efefef; width: 20px"| '''Target'''
| style="background-color: #efefef;"| '''Item'''
| style="background-color: #efefef;"| '''Bug'''
| style="background-color: #efefef;"| '''Status'''
|-
| P1 || M1 || Username + password forms: sign in/sign out || {{bug|571414}} ||
|-
| P1 || M2 || Username + password forms: registration || {{bug|571418}} ||
|-
| P1 || M2 || HTTP Auth: sign in/sign out || - ||
|-
| P2 || M3 || HTTP Auth: registration || - ||
|-
| P1 || M2 || OpenID: connect/disconnect || - ||
|-
| P2 || M2 || Proprietary federated: connect/disconnect || - ||
|-
| P3 || M2 || OAuth: connect/disconnect || - ||
|-
|}


{| width="100%" cellpadding="3"
;Password manager integration
|-
* {{bug|589362}}
| style="background-color: #efefef;" colspan="5" | '''Synth Realms'''
* use new password manager columns for account lookup/saving
|-
** migration (set account realm for existing saved logins) [~1 day]
| style="background-color: #efefef; width: 20px"| '''Priority'''
** also on password manager end (when saving new password) [~1 day (dolske?)]
| style="background-color: #efefef; width: 20px"| '''Target'''
| style="background-color: #efefef;"| '''Item'''
| style="background-color: #efefef;"| '''Bug'''
| style="background-color: #efefef;"| '''Status'''
|-
| P1 || M3 || Synth realm API for addons || ||
|-
| P3 || M3 || Synth realm demo add-on, Fb support || ||
|-
|}


= Requirements =
= Requirements =
Line 128: Line 92:


* Disables itself during private browsing mode [P1]
* Disables itself during private browsing mode [P1]
= Non-Goals =
* Greasemonkey-like hacks that work only on one site, except as needed only to demonstrate the potential for the feature.
* Creating new and interesting authentication/authorization schemes.
* Extensive hacking on Password Manager-like heuristics to make it only sort of work on more sites.


= Dependencies =
= Dependencies =
Line 142: Line 112:
<br clear="all"/>
<br clear="all"/>


= Testing =
= Related Projects / Other Links =
= Related Projects / Other Links =



Revision as of 20:47, 30 August 2010

The Account Manager project aims to help users manage the (currently manual and tedious) process of signing up/in/out of sites by adding chrome-level status and knobs to give the user a consistent point to view and control of sign-in status to the current site.

The project has two main deliverables:

  1. A protocol definition that sites can use to define their account-and-session management features in a format a web browser can understand. (Check out the latest draft of the specification, or older versions).
  2. An implementation of this protocol in Firefox.

This project is a reboot of the Account Manager Labs project, see that page for more background information.

Drivers

Status

Overview

See bug 571409.

Account Manager is currently a patch to mozilla-central, and is being targeted at the first release post 4.0.

Note that there is an add-on prototype (the result of the Labs exploration), but it is buggy and speaks an older version of the Account Manager protocol. It is not recommended for testing, use try-server builds instead.

Performance Impact

Currently around 1.3% on average:

linux: 1.7%
lin64: 2.4%
macos: 0.2%
mac64: 2.0%
winxp: 1.3%
win 7: 0.5%

TODO

User facing features
  • autoconnect [~2d]
  • multi-profile sign-in bubbles [~1d]
  • federated profile [~3d]
  • HTTP Auth profile
  • right click menu (fast user switching)
  • basic in-content registration [a few days' work]
Backend features
  • cookie-watching (refresh status on cookie changes) [~1day]
  • per-method static parameters (for forms that use a hidden param to determine action)
  • per-method dynamic parameters (for e.g. CSRF protection)
Password manager integration
  • bug 589362
  • use new password manager columns for account lookup/saving
    • migration (set account realm for existing saved logins) [~1 day]
    • also on password manager end (when saving new password) [~1 day (dolske?)]

Requirements

  • Status display
    • Unregistered, signed-out, and signed-in for supported sites [P1]
    • Notifications of site requests for sign-in [P3]
  • Sign-up support
    • New id+secret pair negotiation [P1]
    • Automatic password generation [P1]
    • Optional feature to allow user-defined passwords [P1]
    • Remember preferred email and username(s) [P1]
  • Sign-in support
    • Request existing user credentials for new/unknown sites [P1]
    • Two-click sign-in [P1]
    • Optional automatic sign-in on next session [P2]
    • Support for multiple accounts [P1]
  • Sign-out support
    • Two-click sign-out [P1]
  • Password change
    • User-initiated password change [P2]
      • To a new random password [P3]
      • To a new user-defined password [P2]
  • Support for various authentication types
    • Form submission/cookie [P1]
    • HTTP Basic auth [P1]
    • HTTP Digest auth [P2]
    • Client certs [P3]
  • Supports sync if installed [P1]
  • Disables itself during private browsing mode [P1]

Non-Goals

  • Greasemonkey-like hacks that work only on one site, except as needed only to demonstrate the potential for the feature.
  • Creating new and interesting authentication/authorization schemes.
  • Extensive hacking on Password Manager-like heuristics to make it only sort of work on more sites.

Dependencies

Generally speaking:

  • Password manager
  • Theme work, site button in particular
  • Notifications, to a lesser extent

Mockups

Design 1


Related Projects / Other Links

We held an in-person meetup on May 21st, see: