Ubuntu Online Accounts on the phone

Registered by Will Cooke on 2013-02-22

Port backends to phone and build settings UI

Blueprint information

Status:
Started
Approver:
Pat McGowan
Priority:
Essential
Drafter:
Will Cooke
Direction:
Approved
Assignee:
Alberto Mardegan
Definition:
Approved
Series goal:
Accepted for saucy
Implementation:
Started
Milestone target:
milestone icon ubuntu-13.10
Started by
Will Cooke on 2013-03-26

Related branches

Sprints

Whiteboard

Account configuration in system settings
=========================

Online Accounts, Ubuntu One, Local accounts - all going to be grouped together on phone.
Phone settings design for feature phone is in progress. The design team is working on the UI design here: https://wiki.ubuntu.com/OnlineAccounts

Account configuration for applications
========================

Native applications might need to provide a UI flow to allow users to create/edit accounts -- for instance, a Facebook application will likely want to invite the user to create a Facebook account, if an existing one is not found.
The design for this is not confirmed yet; the approach currently being considered is having the application invoke the UOA panel (possibly with window transiency to make it look like the UOA panel is part of the application) with a specialized application filter in order to show only the content relevant to the application, rather than directly having the application create/edit the account itself.
Summary of pro's and con's (open questions are listed as con's):

* Account configuration via UOA panel:
  + Unified UI for all apps
  + Account handling happens in a single process -- minimized risk of conflicts
  - How to return back to the application once the account has been created?

* Account configuration inside the application:
  + The UI flow to create an account would be simpler
  - Handling disabled accounts is hard, users might end up creating multiple accounts

Using online accounts in applications
=======================

Already working. The https://launchpad.net/accounts-qml-module provides the necessary API.

Security features
===========

The idea of binding the access to the Online Accounts passwords to the user's SIM (that is: removing the SIM card would temporarily disable the account passwords, so that using online accounts with no SIM would require explicitly re-logging into the accounts) has been proposed, but the design team didn't seem very fond of the idea.
Using other means of security (lock code, password, human recognition) should be possible, but hasn't been explored yet.

Using the security framework to restrict an application's access to online accounts is the topic of:
https://blueprints.launchpad.net/ubuntu/+spec/security-r-app-online-accounts

What to use as password/token storage is the topic of:
https://blueprints.launchpad.net/ubuntu/+spec/mobile-s-password-storage

Lazy capture in the browser is part of:
https://blueprints.launchpad.net/ubuntu/+spec/appdev-1303-apps-webbrowser

(?)

Work Items

Work items for ubuntu-13.04-month-5:
[vrruiz] QA: Unit tests for QML module: DONE
[mardy] Work out how we handle encrypted keyrings: POSTPONED
[mardy] Speak to the security team about the security stuff: DONE

Work items for ubuntu-13.04-month-6:
[mardy] Is there hardware security available: DONE
[vrruiz] QA: Functional tests for UI review: TODO
[mardy] QML bindings for accounts editing: DONE
[mardy] Authentication UI problem investigation: DONE
[mardy] QA: Functional tests: INPROGRESS
[willcooke] Speak to the security team about the security aspects: TODO

Work items for ubuntu-13.05:
[mardy] Credentials Settings UI container: DONE
[mardy] Credentials Settings UI plugins (facebook, flickr, google, twitter): DONE
Lazy Capture in app: TODO

Work items for ubuntu-13.06:
Sync credentials between desktop & Phone: TODO
[mardy] Authentication UI working: DONE
[mardy] Per-application enabling/disabling: DONE

Work items for ubuntu-13.08:
[mardy] API for invoking UOA from applications: DONE
[mardy] Filtering by service-type: TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.