> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 在合作伙伴中心设置 Web 服务

> 在合作伙伴中心创建并配置用于 XBOX Live SSO、依赖方设置以及服务间调用访问的发布商 Web 服务。

<Note>由于对 Web 服务配置施加了限制，本主题仅适用于托管合作伙伴，不适用于创作者计划。它仅对具有依赖方账号级权限的开发者开放。如果你无法控制自己账号级的权限，请联系你的开发者账号经理 (DAM) 以寻求协助。</Note>

如果发布商希望自定义其应用/游戏与 XBOX 服务的交互方式，可以创建 Web 服务。
Web 服务是发布商级别的配置，通过配置单点登录 (SSO)，发布商所拥有的沙盒中的任何游戏都可以调用它们。

定义 Web 服务的原因：

1. **向 XBOX 用户提供 SSO：** 若要让你的 Web 服务向 XBOX 用户提供 SSO，需要将其配置为 XBOX 服务的依赖方。以这种方式配置后，已通过 XBOX 服务身份验证的用户将自动通过你的服务的身份验证，无需输入另一套凭据。

2. **从你的服务向 XBOX 服务发起服务间调用：** 如果你的游戏将使用你的某个 Web 服务向 XBOX 服务发起调用（直接调用或代表个人用户调用），则需要业务合作伙伴证书。

## 创建 Web 服务

1. 前往[合作伙伴中心仪表板](https://partner.microsoft.com/dashboard/windows/overview)。
2. 选择 **Apps and Games** 部分。
3. 在左侧导航窗格中，选择 **XBOX services** > **Web services**。
4. 在 **Web Services** 页面上，选择 **New Web Service**。
5. 输入 Web 服务名称，然后按需选择访问类型。
   * **Telemetry access** 使你的服务能够检索任何游戏的游戏遥测数据。
   * **App Channel access** 授予拥有该服务的媒体提供商在主机上以编程方式发布应用频道以供使用的权限。
6. 选择 **Save**。

此时，你已定义该服务，且 XBOX 服务已获知该服务的存在。
根据创建该 Web 服务的原因，你需要配置依赖方 (SSO) 或业务合作伙伴证书（服务间调用）。

<a id="corepa" />

## 在合作伙伴中心配置 NSAL、XSTS 令牌定义和依赖方

在你的游戏可以使用 XSTS 令牌与你的 Web 服务通信之前，你需要在合作伙伴中心定义你的 Web 服务、创建依赖方，并通过你的沙盒中的 XBOX 服务配置发布游戏的网络安全访问列表 (NSAL)。

### 定义你的 Web 服务、依赖方和 XSTS 令牌声明

1. 在合作伙伴中心，选择 **Apps and games** 部分。
2. 在左侧导航菜单中，选择 **XBOX services** > **Relying parties**。
3. 在 **Relying Parties** 页面上，选择 **New Relying Party**。
4. 提供受众 URI\*。
5. 选择希望令牌使用的加密类型\*\*。
6. 按照下一节中的说明创建非对称依赖方证书。然后导出并上传公钥 .cer 文件。确保将 .cer 文件命名为与依赖方相关的名称，以便于识别。
7. 输入希望令牌生存期持续的小时数（我们建议为四小时）。
8. 将所需的令牌声明添加到令牌定义中。
9. 选择 **Save**。

> \*受众 URI 必须采用主机 URI 的形式。但名称可以与实际服务的 URI 不同。例如，`Example.com` 可以是依赖方的受众 URI，但服务终结点实际上是 `https://game.example.com/action/`。

> \*\*我们建议使用 `JWE RFC 7516` 选项进行非对称加密。`JWE Draft 7` 旧选项用于对以往游戏的向后兼容。

### 创建新的依赖方证书

1. 在你的计算机上，打开 Visual Studio 的 Developer Command Prompt。
2. 运行以下命令，将示例名称“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`
3. 出现提示时，输入私钥的密码。
4. 运行以下命令，将末尾的密码替换为你自己的密码：
   `PVK2PFX -pvk RP_Private_Key.pvk -spc RP_Cert.cer -pfx RP_Full_Cert.pfx -po PasswordForPFX!`
5. 出现提示时，输入你在第 3 步中为私钥设置的密码。
6. 使用 *RP\_Cert.cer* 文件在合作伙伴中心中设置你的令牌定义。
7. 将 *RP\_Full\_Cert.pfx* 文件复制到你的服务器，然后将其导入到计算机的证书存储区。
8. 在导入完整证书时，请确保选择 **Mark this key as exportable** 选项，以便在需要时可以将其导出到其他服务器。
9. 如果你需要重新导出该证书的公钥 .cer 文件，请在 **Certificate Export** 向导中选择 **Base-64 encoded X.509 (.CER)** 选项。

### 在游戏的 NSAL 中定义你的服务终结点

在定义了依赖方和 XSTS 令牌声明后，你需要在 XBOX 服务配置的 NSAL 中定义你的游戏将要调用的 URL。这会告知客户端上的 `GetTokenAndSignature` API 在调用该 URL 主机时应该提供哪个 XSTS 令牌定义。

1. 在合作伙伴中心，前往游戏的概览页面。
2. 在左侧导航菜单中，选择 **XBOX services** > **Gameplay settings**。将显示 **Gameplay Setting** 页面。
3. 在页面顶部查看要用于测试的沙盒对应的选项卡。
4. 选择 **XBOX services** > **Single sign-on**。将显示 **XBOX Live single sign-on configuration** 页面。
5. 选择 **New endpoint**。
6. 输入你的游戏将要调用的服务的 URL 主机地址。
7. 从下拉列表中选择你先前配置的 **Relying Party**。
8. 选择 **Save**。
9. 返回 **Gameplay Setting** 页面。
10. 选择你希望将更新后的 NSAL 发布到的沙盒对应的选项卡。
11. 在右上角选择 **Publish**。

### 为服务器到服务器（业务对业务 (B2B)）对 XBOX 服务的调用创建业务合作伙伴证书

1. 在合作伙伴中心，选择 **Apps and games** 部分。
2. 在左侧导航菜单中，选择 **XBOX services** > **Web services**。
3. 选择 **New web service**。
4. 输入一个名称以标识你的 Web 服务。此名称可以是主机 URL 或任何字符串名称，以便你识别证书将在何处使用并对其进行管理。
5. 选择 **Save**。
6. 在 **Web services** 页面上，你现在应该会看到新的 Web 服务被列出。
7. 为你的新 Web 服务选择 **Generate Certificate**。
8. 选择 **Show Options** 链接，以查看用于创建所需密钥的 PowerShell 脚本。你可以在任何计算机上运行此脚本，然后将证书导出到其他计算机。
9. 在控制台窗口中，去掉所有自动换行符，然后将生成的字符串密钥输出复制到 **Download the CSP Certificate** 下的文本框中。
10. 选择 **Download**。
11. 按照 **Binding the Certificate** 下的说明进行操作。
12. 请确保在导入证书后，其上绑定了私钥（左上角有 **small key** 图标指示这一点）。

仅在使用自签名证书时，才需要为终结点连接指定 SSL 证书链。基于已知证书颁发机构的公共 SSL 证书无需配置即可有效。
<Note>自签名证书只能用于开发场景，禁止用于生产服务。</Note>

## 配置业务合作伙伴证书

如果你的游戏将使用你的某个 Web 服务向 XBOX 服务发起调用（直接调用或代表个人用户调用），则需要业务合作伙伴证书。

### 生成业务合作伙伴证书

在成功创建 Web 服务后，按以下步骤操作。

1. 在 **Web Services** 页面上，找到你想要与业务合作伙伴证书关联的 Web 服务。
2. 针对所选的 Web 服务选择 **Generate Certificate** 链接。
3. 选择 **Generating a New Certificate** 旁的 **Show Options**。这将显示应以管理员权限从 PowerShell 运行的命令。
4. 依次运行所有命令后，应会成功生成一个 Base64 编码的 blob。这是公钥。从 PowerShell 复制该公钥，然后将其粘贴到配置服务提供程序 (CSP) blob 的占位符中。
5. 选择 **Download**，然后按照页面上有关 **Binding the certificates** 的说明进行操作。
   1. 使用与生成公钥时相同的计算机。
   2. 在 PowerShell 中运行此命令：`mmc.exe`
   3. 选择 **File**，然后选择 **Add/Remove Snap In**。
   4. 选择 **Certificates**，然后选择 **Add**。请确保为证书管理单元选择 **Computer Account**。选择 **Finish**，然后选择 **OK**。
   5. 打开“个人\证书”存储区。
   6. 右键单击 **Certificates**，然后选择 **All Tasks**。选择 **Import**。
   7. 选择你从合作伙伴中心下载的证书。
   8. 导入证书后，在 UI 中右键单击该证书。选择 **All Tasks**，然后选择 **Export**。
   9. 按照 **Export** 向导进行操作。请确保选择随证书一起导出私钥。
   10. 完成 **Export** 向导。


## Related topics

- [Web 服务](/zh-CN/services/xbox-services/fundamentals/s2s-auth-calls/custom-service-config/web-services/live-web-services-nav.md)
- [门户配置概述](/zh-CN/services/xbox-services/fundamentals/portal-config/live-portal-config-overview.md)
- [配置依赖方](/zh-CN/services/xbox-services/fundamentals/s2s-auth-calls/custom-service-config/relying-parties/live-relying-parties-nav.md)
- [在合作伙伴中心设置 XBOX 产品](/zh-CN/publishing/game-publishing/publishing-processes/managed-creators/publishing-processes-product-onboarding-and-configuration.md)
- [在合作伙伴中心配置数据共享](/zh-CN/services/xbox-services/fundamentals/portal-config/live-data-sharing-udc.md)
