XR-045:XBOX 网络和账户权限 *
版本 2.0,2023/03/01 XBOX 网络为用户及其孩子提供预期的隐私和在线安全水平。为了兑现这一承诺,游戏必须检查 XBOX 网络服务的权限,以便在 XBOX 网络服务或游戏体验中完成某些操作。 尽管权限检查和遵守适用于所有账户,但请特别注意儿童账户的体验和期望。对于儿童账户,某些活动可能会因基于年龄的默认设置和/或儿童家庭组织者(父母或监护人)的配置而被限制。儿童无法自行进行更改,但对于某些活动,游戏可能而且预期会调用必要的系统界面,以便年幼的玩家可以通过审批流程为该相关活动请求例外。在这种情况下,例如,年幼的玩家可能会被全局阻止参与多人游戏,但家庭中的父母或监护人可以通过系统界面为特定游戏批准多人游戏;然后儿童就应该能够在该特定游戏中访问该游戏模式。
免费游戏、演示或 beta 可以配置为允许非 Game Pass 订阅者的玩家进行多人游戏 (ID 254)。这是通过服务端配置完成的,可以通过联系您的 Microsoft 代表来发起。这些游戏必须继续检查多人游戏权限,以确保尊重家长控制和玩家选择。
更多信息
有关技术指导和最佳实践的详细信息,请参阅”XBOX 服务用户权限的客户端使用”文档。
prv 声明,强制会话中的用户具有执行请求的操作的适当权限。
如果游戏提供上表中列出的一个或多个活动,则游戏必须检查与该特定活动相关联的权限。如果用户没有该权限,则不得允许用户使用相关活动。权限在会话/操作持续期间或 XBOX 网络令牌刷新之前的时间内(以较短者为准)授予。
根据开发平台(GDK、XDK、XSAPI),游戏需要调用相应的 API 以确保以下之一:(1) 调用系统界面,该界面通知用户被阻止的权限,并在儿童账户上提供从父母或监护人请求某些权限的许可选项;或者 (2) 提供有指导性和可操作性的错误消息。
在 PC 或 XBOX 控制台上使用 GDK: 要使用 GDK 检查用户是否具有权限,游戏应使用 XUserCheckPrivilege 和 XUserResolvePrivilegeWithUiAsync API。
使用 XBOX One XDK: 要在 XBOX One 上检查用户是否具有权限,游戏使用 Store::Product::CheckPrivilegeAsync API。如果权限检查是由用户操作(例如进入多人游戏模式)引起的,则 attemptResolution 参数必须设置为 true(或根本不设置)。平台检查权限,如果用户没有该权限,则尝试确定原因。
如果 API 返回 false,则用户没有该权限,系统未成功解决问题。在这种情况下,游戏必须阻止该特权活动,但可以假设系统已适当地通知用户他们没有该活动的适当权限或该用户的权限存在问题。
在权限检查不是由用户操作触发,而是作为静默后台调用的一部分或用于装饰用户体验的情况下,应使用 attemptResolution 设置为 false 调用 API。因此,不会向用户发送消息,系统也不会干预来纠正任何权限问题。
在 UWP、Win32、移动或其他平台上直接使用 XSAPI: 如果 prv 声明中缺少该权限,则用户没有该权限,游戏应阻止用户继续进行特权活动。如果检查是由用户请求访问特权活动(例如尝试开始或加入多人游戏会话)触发的,则游戏应显示信息性消息以让他们知道他们无法参与。
实现要求
XBOX 网络连接问题: 如果游戏由于 XBOX 服务无法访问而收到失败(通过 API 或因为无法检索 XBOX Live 令牌),则游戏应阻止对请求操作的访问。在这种情况下,游戏应优雅地失败,如 XR-074”XBOX 和合作伙伴服务连接丢失”中所述。
最佳实践
其他资源
有关权限和用户令牌的更多信息,请参阅 XBOX 游戏开发工具包 (GDK) 中的”用户令牌”或 XBOX 应用程序开发工具包文档。 出于此 XR 的目的,社交网络是指 XBOX 网络之外的站点或服务,允许个人默认与其他用户分享内容。如果外部站点上的默认选项启用了与好友或所有人分享,则出于此 XR 的目的,外部站点无需允许用户在上传时选择限制分享。例外
无论 XBOX 用户的视频内容权限设置如何,都可以向所有 XBOX 用户提供付费交易视频产品。如果应用同时提供高级内容和付费交易视频产品,则高级内容必须遵守此要求。 如果应用是在其提供 XBOX 平台的国家/地区的公共服务广播公司,则必须向该国家/地区的所有 XBOX 用户提供所有非商业化内容产品,而不管用户的视频内容权限设置如何。 在 XBOX One 控制台和非控制台设备之间提供异步多人游戏的游戏,不需要为非控制台设备上的体验检查多人游戏权限。认证测试用例
045-01 尊重用户权限
测试步骤- 登录 XBOX 配置文件并启动游戏。
- 对于 XR 备注中确定的每个权限,识别游戏是否支持相关活动。
- 对于步骤 2 中确定的每个适用权限的每个可能设置,执行以下操作:
- 退出游戏并更改用户的权限设置。
- 重启控制台。
- 登录同一配置文件并启动游戏。
- 访问游戏的所有相关区域,使用与权限相关的所有游戏功能,并验证游戏尊重用户当前的权限设置。
- 尝试使用 Silver XBOX 配置文件访问所有离线和在线区域。
- 游戏尊重用户的权限设置。
- 游戏将部分允许的权限设置视为权限已被禁用/不允许(例如,当 UGC 权限设置为”仅好友”时,游戏行为如同权限设置为”阻止”)。
- 对于使用 XDK 的游戏,游戏调用系统界面提醒用户任何权限冲突。当无法调用系统界面时(权限 252、189、247),游戏显示信息性消息。
- 对于使用 GDK 的游戏,游戏调用系统界面提醒用户任何权限冲突。当无法调用系统界面时(252、189、247),游戏显示信息性消息。
- 对于使用 XSAPI 的游戏,游戏显示信息性消息。
- 游戏保留了用户的权限设置,在权限更改后未反映用户的实际权限。
- 游戏将部分允许的权限设置视为其最不严格的设置(例如,UGC 设置为”仅好友”表现为”允许”)。
- 对于使用 XDK 或 GDK 的游戏,游戏使用游戏内消息提醒用户任何权限冲突,并且不显示系统界面。
- 对于使用 XSAPI 的游戏,游戏未显示信息性消息以让用户知道他们无法参与。
045-02 尊重用户权限 - XBOX 家庭
测试设置和配置 XBOX 家庭,包括以下 Microsoft 账户:- 指定为组织者的成人(大于 18 岁)。
- 具有_儿童默认_权限设置的儿童(小于 13 岁):
测试步骤
- 登录成人和儿童 Microsoft 账户,并使用儿童账户启动游戏。
- 对于 XR 备注中确定的每个权限,识别游戏是否支持相关活动。
- 对于步骤 2 中确定的每个适用权限的每个可能设置,执行以下操作:
- 验证根据账户权限允许/不允许相关活动。例如:游戏支持多人游戏,而儿童账户的多人游戏权限被阻止。验证游戏阻止儿童的所有多人游戏活动,并且当儿童尝试参与多人游戏活动时显示家长权限提示(系统界面)。
- 退出游戏并更改儿童的权限活动的权限设置,即游戏支持的活动;从阻止变为允许。
- 重启控制台。
- 登录同一配置文件并启动游戏。
- 访问游戏的所有相关区域,使用与权限相关的所有游戏功能,并验证游戏尊重用户当前的权限设置。
- 使用未登录控制台的父母账户重复步骤 2-3。
- 游戏尊重儿童的权限设置。
- 当该活动的权限被允许时,游戏允许儿童参与该活动。
- 当该活动的权限被阻止时,游戏不允许儿童参与该活动。
- 游戏允许儿童参与被阻止但父母允许(通过家长权限界面)该活动权限的活动。
- 游戏不允许儿童参与被阻止且父母不允许该活动权限的活动。
- 游戏将部分允许的权限设置视为权限已被禁用/不允许。
- 对于使用 XDK 的游戏,游戏调用系统界面提醒用户任何权限冲突。当无法调用系统界面时(权限 252、189、247),游戏显示信息性消息。
- 对于使用 GDK 的游戏,游戏调用系统界面提醒用户任何权限冲突。当无法调用系统界面时,游戏显示信息性消息。
- 对于使用 XSAPI 的游戏,游戏显示信息性消息。
- 游戏不尊重儿童的权限设置。
- 游戏未调用适当的界面来提醒和通知儿童权限冲突。
- 当该活动的权限被阻止时,游戏允许儿童参与该活动。
- 当该活动的权限被允许时,游戏不允许儿童参与该活动。
- 游戏允许儿童参与被阻止且父母不允许该活动权限的活动。
- 游戏不允许儿童参与被阻止且父母允许该活动权限的活动。
- 游戏保留了用户的权限设置,在权限更改后未反映用户的实际权限。
- 游戏将部分允许的权限设置视为其最不严格的设置。
- 对于使用 XDK 的游戏,游戏未调用系统界面。
- 对于使用 GDK 的游戏,游戏未调用系统界面。
- 对于使用 XSAPI 的游戏,游戏未显示信息性消息。
