OnlineAccountsConfinement
Introduction
Online accounts has several components that application developers may use:
- account-application and account-service: describe the services the application will use (should be specified together)
- account-provider and account-qml-plugin: describe the providers and services to extend Online Accounts (should be specified together)
Implementation for 15.04 OTA-4 and prior
At a high-level, this is essentially the same process as for ApplicationConfinement, with the following differences:
the click manifest should specify the correct framework for the release it is targeting (eg, ubuntu-sdk-15.04)
the click manifest should specify apparmor with account-application and account-service
if both account-application and account-service are specified, the click manifest should express them together
when using account-application and account-service, the accounts policy group should be used with the default template (eg, ubuntu-sdk)
Eg:
click manifest:
{ "name": "foo" "version": "0.1", "hooks": { "bar": { "account-application": "bar.application", "account-service": "bar.service", "apparmor": "bar.apparmor", "desktop": "bar.desktop" } } ...
security manifest (bar.apparmor):
{ "policy_groups": [ "accounts", "networking" ], "policy_version": 1.3 }
Prior to Ubuntu Touch 15.04 OTA-5, specifying account-provider and account-qml-plugin would not work with apparmor and therefore it would run unconfined and trigger a manual review in the store.
Implementation for 15.04 OTA-5 and higher
With 15.04 OTA-5, online accounts added support for confinement of online account providers. This is the same as with the 15.04 OTA-4 and earlier changes (above), with the following differences:
the click manifest should specify apparmor with account-provider and account-qml-plugin
if both account-provider and account-qml-plugin are specified, the click manifest should express them together
when using account-provider and account-qml-plugin, the accounts policy group should be used with the ubuntu-account-plugin template
Eg:
click manifest:
{ "name": "foo" "version": "0.1", "hooks": { "bar": { "account-application": "bar.application", "account-service": "bar.service", "apparmor": "bar.apparmor", "desktop": "bar.desktop" } "baz": { "account-provider": "baz.provider", "account-qml-plugin": "baz-qml-plugin", "apparmor": "baz.apparmor" } } ...
security manifest (baz.apparmor):
{ "template": "ubuntu-account-plugin", "policy_groups": [ "accounts", "networking" ], "policy_version": 1.3 }
References
SecurityTeam/Specifications/OnlineAccountsConfinement (last edited 2015-07-14 21:14:17 by jdstrand)