在游戏中实现服务到服务身份验证

使用Microsoft游戏开发工具包 (GDK) 进行服务到服务身份验证,服务可以安全地与Microsoft应用商店 API 进行交互。 此方法使用用户存储 ID 或委托的身份验证令牌对呼叫进行身份验证。 这可确保无缝集成和安全事务。

我们建议新游戏和服务将Entra ID身份验证流与电脑游戏和 Xbox 游戏的用户应用商店 ID 配合使用。 Microsoft 应用商店未来的服务和开发将使用用户 Store ID,而非 XSTS 令牌。

使用 Microsoft Entra ID 和用户存储 ID 实现服务到服务身份验证

用户存储 ID 可用于对从服务到 Microsoft Store API 的调用进行身份验证。

用户 Store ID 有两种类型:

  • UserCollectionsID:使用 Microsoft Store 集合服务进行身份验证
  • UserPurchaseID:使用 Microsoft Store 购买服务进行身份验证

此过程涉及两个执行不同任务的软件组件。

  • 服务:这是一个在业务环境上下文中安全运行的应用程序。 可以使用你选择的任何开发平台来实现此应用。 你的服务负责创建为 Microsoft Store 收藏服务调用 REST URI 所需的 Entra ID 访问令牌。
  • 你的游戏:这是你想要访问和管理权利信息 (包括游戏) 加载项的游戏。 此游戏负责创建用于调用 Microsoft Store API 的用户存储 ID 密钥。 游戏可以直接创建调用 Microsoft Store API 所需的用户存储 ID 密钥,或者将 x 令牌传递给服务,并让服务创建应用商店 ID 密钥。 有关在服务上创建 Store ID 密钥的详细信息,请参阅 使用 XSTS 令牌或 OAuth 2.0 从服务请求用户存储 ID

此方案概述了在 Microsoft 应用商店服务 API 与服务之间获取服务到服务身份验证的用户存储 ID 所需的配置和步骤。

  1. 在 Microsoft Entra ID 中配置应用程序:必须先创建Entra ID Web 应用程序,检索应用程序的租户 ID 和应用程序 ID,并生成密钥,然后才能使用 Microsoft Store API。
    请注意,Entra 应用程序必须在“管理身份验证>”下启用以下选项。
    • 访问令牌
    • ID 令牌
    • 支持的帐户类型必须包括 个人Microsoft帐户 (,例如 Skype 和 Xbox)
  2. 将 Entra 应用程序 ID 与 Microsoft 合作伙伴中心中的客户端应用程序相关联:在可以使用 Microsoft Store API 配置应用程序或加载项的所有权和购买之前,必须将Microsoft Entra应用程序 ID 与合作伙伴中心中的游戏相关联。
  3. 创建Microsoft Entra ID访问令牌:在检索用户存储 ID 密钥或调用 Microsoft Store API 之前,服务必须创建多个表示发布者标识的不同Entra ID访问令牌。
  4. 创建用户应用商店 ID 密钥:在你的游戏中,创建一个用户存储 ID 密钥,该密钥表示当前登录到 Microsoft Store 应用的用户的身份。 将此密钥传递回服务。
  5. 通过 Windows 电脑游戏的用户应用商店 ID 进行身份验证:所有Microsoft应用商店服务 API 都支持通过Entra ID和用户应用商店 ID 进行身份验证。
  6. 续订Microsoft应用商店 ID 密钥:生成用户存储 ID 密钥时,其生存期为 30 天。 在 30 天的生存期内,密钥会用于向 Microsoft Store Services 进行身份验证。 密钥也可以在过期之前续订,以便为同一 Entra 应用程序客户端 ID 和用户标识生成新的用户存储 ID。

另请参阅

GDK 文档是最新信息的最佳来源。 有关详细信息,请参阅以下文章。

Microsoft.StoreServices .NET 库和示例

为了帮助简化此身份验证流的游戏集成,我们为 Microsoft.StoreServices 库创建了一个公开可用的 GitHub 项目。 此库简化了从后端服务使用 Microsoft Store Services 进行身份验证和调用的过程。 借助这些服务,你可以验证和管理Microsoft应用商店中的应用或游戏的用户购买, (包括 Xbox 主机) 。

此示例重点介绍了 Web 服务如何与 Microsoft.StoreServices 库集成,并提供了用于管理易耗产品、协调退款购买、续订过期的用户存储 ID 等的示例逻辑。 此示例还提供了一个配置指南,其中包括本文中有关如何配置和设置此身份验证方法Entra ID的步骤。