> ## 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.

# 在 XSTS 声明中引用 XBOX Game Streaming 服务器

> 在 XBOX 服务安全令牌 (XSTS) 声明中引用 XBOX 游戏串流服务器

在某些情况下，您的游戏可能需要专门引用并识别哪些用户来自 XBOX 游戏串流服务器。

要做到这一点，应在合作伙伴中心执行以下步骤：

1. 在合作伙伴中心内，导航到相应的信赖方并选择 [XBOX 服务安全令牌声明 (microsoft.com)（NDA 主题）](/services/xbox-services/fundamentals/s2s-auth-calls/service-authentication/security-tokens/live-token-claims)中找到的适当声明。要了解使用哪个声明以及期望的值，请在链接的声明文档中查找术语 “XBOX Game Streaming server”。
2. 更新声明架构以包含引用 XBOX 游戏串流的适当变量。
3. 返回到主 “Relying Parties” 菜单并单击 “Publish”。

<Note>对现有信赖方的调整将需要重新启动设备和游戏（以清除主机缓存）才能获取新生成的 XSTS 令牌（或等待约 4 小时使前一个令牌过期）。</Note>

## 从设备功能 (`dca`) 声明中检测 XBOX 游戏串流服务器

在您配置信赖方以包含设备功能声明后，您的服务可以检查已解密 XSTS 令牌中 `xdi`（设备身份）部分内的 `dca` 值，以确定该令牌是否是在 XBOX 游戏串流服务器上生成的。

`dca` 声明是一个整数数组。按以下方式解读：

| `dca` 值           | 含义                                                                                         |
| ----------------- | ------------------------------------------------------------------------------------------ |
| `2`、`1 2` 或 `2 1` | 设备是 XBOX 游戏串流服务器（无论是否带有 ODD）。将其视为云实例。                                                      |
| `1` 或无值           | 设备是 XBOX 主机硬件（无论是否带有 ODD）。将其视为非串流设备。                                                       |
| 令牌中省略该声明          | 信赖方未配置为发出 `dca`，或令牌来自不发出设备身份声明的客户端（例如非 XBOX 平台）。仅在您确认信赖方为 XBOX 令牌发出 `dca` 后，才将声明缺失视为非串流设备。 |

由于声明缺失与信赖方配置错误无法区分，请在将声明缺失作为信号依据之前，先确认您的信赖方发布了 `dca` 声明（上述步骤 1）。有关完整的 `dca` 值表以及其他声明，请参阅 [XBOX 服务安全令牌声明](/services/xbox-services/fundamentals/s2s-auth-calls/service-authentication/security-tokens/live-token-claims)。有关显示 `xdi.dca` 字段的示例解码令牌，请参阅 [XSTS 令牌、解密与验证示例](/services/xbox-services/fundamentals/s2s-auth-calls/service-authentication/security-tokens/live-sample-xsts-token)。

<Note>在客户端，游戏本身可以调用 [`XGameStreamingIsStreaming`](/build/core-features/common/game-streaming/game-streaming-am-i-streaming) 来检测活动的串流连接。`dca` 声明是您的游戏服务在服务端等效的信号。</Note>

## XBOX 游戏串流服务器上的设备成对 ID (`dpi`)

设备成对 ID (`dpi`) 声明用于标识生成令牌的物理硬件。在 XBOX 游戏串流服务器上，该硬件是位于 Azure 数据中心的共享服务器，因此相同的 `dpi` 值可能会随时间推移出现在多个不同用户身上。

如果您的服务使用 `dpi` 强制执行按设备封禁或按设备速率限制，请先根据 `dca` 值决定是否执行。当 `dca` 表示为串流服务器时，请将该令牌的 `dpi` 从设备级封禁和速率限制中排除，以免连累那些之后从同一服务器进行串流的无关用户。


## Related topics

- [针对 XBOX 游戏串流优化您的游戏](/zh-CN/build/core-features/common/game-streaming/game-streaming-optimizing-your-game.md)
- [XBOX 服务用户特权的服务器端处理](/zh-CN/services/xbox-services/fundamentals/identity/privileges/concepts/live-user-privileges-server.md)
- [服务到服务多人游戏会话管理](/zh-CN/services/xbox-services/fundamentals/s2s-auth-calls/s2s-calls/s2s-call-patterns/live-mpsd-service-to-service.md)
- [XSTS 令牌、解密和验证示例](/zh-CN/services/xbox-services/fundamentals/s2s-auth-calls/service-authentication/security-tokens/live-sample-xsts-token.md)
- [XGameStreamingGetServerLocationName](/zh-CN/reference/system/xgamestreaming/functions/xgamestreaminggetserverlocationname.md)
