App Isolation, Capabilities, and Privileges

Apps are isolated from one another and from the system, and specify whether they are able to access specific user-sensitive system resources and specific privileged functionality.

Capabilities

Individual apps have capabilities: the ability to access specific user-sensitive system resources. Each app advertises which capabilities it is using to allow users to see what capabilities are required. For example, think of your favorite smartphone and how it notifies you that a newly-installed app will use your location or identity information; capabilities enable similar notification and transparency for Xbox One apps.

App capabilities are declared in an app’s application manifest in the following elements:

Capabilities
  A parent node that contains one or more of the following nodes.

Capability
  Declares the app’s required access to the internet and local subnet.

mx:Capability
  Declares the app’s required access to Kinect functionality.

DeviceCapability
  Declares the app’s required access to the PlayReady driver, virtual graphics driver, and HDMI capture.

See the individual reference topics listed above for a complete list of supported capabilities.

Privileges

Privileges control which features of Xbox Live a user can access at a given point in time. The effective privileges of a user are computed and issued by Xbox Live when the user logs in and is authorized to Xbox Live. Privileges stem from the effective entitlements of the user, the device, and the platform. In addition, parental controls and bans issued by the Xbox Live enforcement team restrict privileges of a user.

Privilege-based access control is enforced on access to any online service. Privileges are used to drive client applications to show UI to the user. This UI explains the user’s state and provides actions that the user can take to get the required privileges.

Client applications may be subject to XRs requiring a portion of the title to be controlled by a privilege. For these applications, it is important to use the Windows.Xbox.ApplicationModel.Store.Product.checkPrivilegeAsync method.

The checkPrivilegeAsync method is a single-call method for dealing with a number of use cases around privileges, including showing the user the necessary UI to explain and/or upsell if they do not have the privilege.

For detailed information about the Xbox Live User Privilege system, see the Upsell and Access Control to Features of Xbox Live Using Privileges whitepaper located on the Xbox Game Developer (XGD) site.

See also

Application Model

Application Model Reference