由于对 Web 服务配置施加了限制,本主题仅适用于托管合作伙伴,不适用于创作者计划。它仅对具有依赖方账号级权限的开发者开放。如果你无法控制自己账号级的权限,请联系你的开发者账号经理 (DAM) 以寻求协助。
- 向 XBOX 用户提供 SSO: 若要让你的 Web 服务向 XBOX 用户提供 SSO,需要将其配置为 XBOX 服务的依赖方。以这种方式配置后,已通过 XBOX 服务身份验证的用户将自动通过你的服务的身份验证,无需输入另一套凭据。
- 从你的服务向 XBOX 服务发起服务间调用: 如果你的游戏将使用你的某个 Web 服务向 XBOX 服务发起调用(直接调用或代表个人用户调用),则需要业务合作伙伴证书。
创建 Web 服务
- 前往合作伙伴中心仪表板。
- 选择 Apps and Games 部分。
- 在左侧导航窗格中,选择 XBOX services > Web services。
- 在 Web Services 页面上,选择 New Web Service。
- 输入 Web 服务名称,然后按需选择访问类型。
- Telemetry access 使你的服务能够检索任何游戏的游戏遥测数据。
- App Channel access 授予拥有该服务的媒体提供商在主机上以编程方式发布应用频道以供使用的权限。
- 选择 Save。
在合作伙伴中心配置 NSAL、XSTS 令牌定义和依赖方
在你的游戏可以使用 XSTS 令牌与你的 Web 服务通信之前,你需要在合作伙伴中心定义你的 Web 服务、创建依赖方,并通过你的沙盒中的 XBOX 服务配置发布游戏的网络安全访问列表 (NSAL)。定义你的 Web 服务、依赖方和 XSTS 令牌声明
- 在合作伙伴中心,选择 Apps and games 部分。
- 在左侧导航菜单中,选择 XBOX services > Relying parties。
- 在 Relying Parties 页面上,选择 New Relying Party。
- 提供受众 URI*。
- 选择希望令牌使用的加密类型**。
- 按照下一节中的说明创建非对称依赖方证书。然后导出并上传公钥 .cer 文件。确保将 .cer 文件命名为与依赖方相关的名称,以便于识别。
- 输入希望令牌生存期持续的小时数(我们建议为四小时)。
- 将所需的令牌声明添加到令牌定义中。
- 选择 Save。
*受众 URI 必须采用主机 URI 的形式。但名称可以与实际服务的 URI 不同。例如,Example.com可以是依赖方的受众 URI,但服务终结点实际上是https://game.example.com/action/。
**我们建议使用JWE RFC 7516选项进行非对称加密。JWE Draft 7旧选项用于对以往游戏的向后兼容。
创建新的依赖方证书
- 在你的计算机上,打开 Visual Studio 的 Developer Command Prompt。
- 运行以下命令,将示例名称“Contoso”替换为你自己的名称:
makecert -sv RP_Private_Key.pvk -n "CN=Contoso Relying Party" RP_Cert.cer -b 01/01/2015 -e 12/31/2199 -sky exchange -ss My -a sha256 -len 2048 -r -pe - 出现提示时,输入私钥的密码。
- 运行以下命令,将末尾的密码替换为你自己的密码:
PVK2PFX -pvk RP_Private_Key.pvk -spc RP_Cert.cer -pfx RP_Full_Cert.pfx -po PasswordForPFX! - 出现提示时,输入你在第 3 步中为私钥设置的密码。
- 使用 RP_Cert.cer 文件在合作伙伴中心中设置你的令牌定义。
- 将 RP_Full_Cert.pfx 文件复制到你的服务器,然后将其导入到计算机的证书存储区。
- 在导入完整证书时,请确保选择 Mark this key as exportable 选项,以便在需要时可以将其导出到其他服务器。
- 如果你需要重新导出该证书的公钥 .cer 文件,请在 Certificate Export 向导中选择 Base-64 encoded X.509 (.CER) 选项。
在游戏的 NSAL 中定义你的服务终结点
在定义了依赖方和 XSTS 令牌声明后,你需要在 XBOX 服务配置的 NSAL 中定义你的游戏将要调用的 URL。这会告知客户端上的GetTokenAndSignature API 在调用该 URL 主机时应该提供哪个 XSTS 令牌定义。
- 在合作伙伴中心,前往游戏的概览页面。
- 在左侧导航菜单中,选择 XBOX services > Gameplay settings。将显示 Gameplay Setting 页面。
- 在页面顶部查看要用于测试的沙盒对应的选项卡。
- 选择 XBOX services > Single sign-on。将显示 XBOX Live single sign-on configuration 页面。
- 选择 New endpoint。
- 输入你的游戏将要调用的服务的 URL 主机地址。
- 从下拉列表中选择你先前配置的 Relying Party。
- 选择 Save。
- 返回 Gameplay Setting 页面。
- 选择你希望将更新后的 NSAL 发布到的沙盒对应的选项卡。
- 在右上角选择 Publish。
为服务器到服务器(业务对业务 (B2B))对 XBOX 服务的调用创建业务合作伙伴证书
- 在合作伙伴中心,选择 Apps and games 部分。
- 在左侧导航菜单中,选择 XBOX services > Web services。
- 选择 New web service。
- 输入一个名称以标识你的 Web 服务。此名称可以是主机 URL 或任何字符串名称,以便你识别证书将在何处使用并对其进行管理。
- 选择 Save。
- 在 Web services 页面上,你现在应该会看到新的 Web 服务被列出。
- 为你的新 Web 服务选择 Generate Certificate。
- 选择 Show Options 链接,以查看用于创建所需密钥的 PowerShell 脚本。你可以在任何计算机上运行此脚本,然后将证书导出到其他计算机。
- 在控制台窗口中,去掉所有自动换行符,然后将生成的字符串密钥输出复制到 Download the CSP Certificate 下的文本框中。
- 选择 Download。
- 按照 Binding the Certificate 下的说明进行操作。
- 请确保在导入证书后,其上绑定了私钥(左上角有 small key 图标指示这一点)。
自签名证书只能用于开发场景,禁止用于生产服务。
配置业务合作伙伴证书
如果你的游戏将使用你的某个 Web 服务向 XBOX 服务发起调用(直接调用或代表个人用户调用),则需要业务合作伙伴证书。生成业务合作伙伴证书
在成功创建 Web 服务后,按以下步骤操作。- 在 Web Services 页面上,找到你想要与业务合作伙伴证书关联的 Web 服务。
- 针对所选的 Web 服务选择 Generate Certificate 链接。
- 选择 Generating a New Certificate 旁的 Show Options。这将显示应以管理员权限从 PowerShell 运行的命令。
- 依次运行所有命令后,应会成功生成一个 Base64 编码的 blob。这是公钥。从 PowerShell 复制该公钥,然后将其粘贴到配置服务提供程序 (CSP) blob 的占位符中。
- 选择 Download,然后按照页面上有关 Binding the certificates 的说明进行操作。
- 使用与生成公钥时相同的计算机。
- 在 PowerShell 中运行此命令:
mmc.exe - 选择 File,然后选择 Add/Remove Snap In。
- 选择 Certificates,然后选择 Add。请确保为证书管理单元选择 Computer Account。选择 Finish,然后选择 OK。
- 打开“个人\证书”存储区。
- 右键单击 Certificates,然后选择 All Tasks。选择 Import。
- 选择你从合作伙伴中心下载的证书。
- 导入证书后,在 UI 中右键单击该证书。选择 All Tasks,然后选择 Export。
- 按照 Export 向导进行操作。请确保选择随证书一起导出私钥。
- 完成 Export 向导。
