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

# XBOX 服務驗證

> 使用 XSTS 權杖和簽章進行 XBOX Live 呼叫驗證的背景資訊，涵蓋用戶端 XSAPI 使用方式和服務對服務 RESTful 流程。

本主題提供 XBOX 服務呼叫驗證的背景資訊。

為了更快速地公開 XBOX 服務，並讓遊戲能夠使用這些服務而不依賴特定的修復版本，XBOX 服務以 RESTful HTTPS 端點的形式發行。這些服務的驗證和授權需要有效的 XBOX 安全性權杖服務 (XSTS) 權杖和簽章。如需 XSTS 權杖的詳細資訊，請參閱 [XBOX 服務安全性權杖 (XSTS 權杖)](/zh-TW/services/xbox-services/fundamentals/s2s-auth-calls/service-authentication/security-tokens/live-security-tokens)。

XBOX 服務可透過兩種可能的路徑呼叫。

1. *XBOX 服務用戶端*
   從已向 XBOX 服務驗證的用戶端。這些呼叫一律在使用者內容中。
2. *服務對服務*
   從自訂遊戲 Web 服務透過服務對服務 XBOX 服務呼叫。這些呼叫是代表使用者進行，或直接以服務身分進行。
   如需來自遊戲服務之呼叫的詳細資訊，請參閱[遊戲服務對 XBOX 服務的呼叫](/zh-TW/services/xbox-services/fundamentals/s2s-auth-calls/s2s-calls/live-title-service-calls-xbox-live)。

## 用戶端對 XBOX 服務的呼叫

對於使用 Microsoft Game Development Kit (GDK) 對 XBOX 服務進行的所有呼叫，強烈建議遊戲使用 Microsoft Game Development Kit (GDK) 版本隨附的 XBOX 服務 API (XSAPI)。這些 API 會處理 HTTP 要求，並透過物件直接將可用的服務資料傳回給遊戲。它們也會實作我們為 XBOX 服務和驗證建議的連線和快取行為。如需這些 API 的詳細資訊，請參閱 XBOX 服務 API 文件 [XSAPI 參考](/zh-TW/reference/live/xsapi-c/atoc-xsapi-c)。

下列各節僅為了完整性以及更深入了解 XBOX 服務驗證而提供。

### 初始設定

XBOX 服務已為所有遊戲透明地預先設定。不需要額外的端點設定。這適用於所有 `*.xboxlive.com` 子網域。

### 權杖擷取和連線流程

若要使用任何 XBOX 服務端點，必須有 XSTS 驗證權杖和訊息簽章。如果沒有此資訊，與服務的通訊會遭到拒絕。

XSTS 權杖和使用者識別 (使用者雜湊) 必須包含在要求的 `Authentication` 標頭中。訊息簽章必須在要求的 `Signature` 標頭中指定。如需這些標頭結構的詳細資訊，請參閱 [XBOX 服務安全性權杖 (XSTS 權杖)](/zh-TW/services/xbox-services/fundamentals/s2s-auth-calls/service-authentication/security-tokens/live-security-tokens)。

### 取得 XSTS 權杖

XSTS 權杖和簽章標頭資料是透過 [XUserGetTokenAndSignatureUtf16Async](/zh-TW/reference/system/xuser/functions/xusergettokenandsignatureutf16async) API 取得的。它提供服務要求所需的標頭。

接著，遊戲會透過下列流程，使用 `XUserGetTokenAndSignatureUtf16Async` API 要求 XBOX 服務端點的 XSTS 權杖。

1. 對目前使用者呼叫 `XUserGetTokenAndSignatureUtf16Async`。在 API 呼叫中包含 XBOX 服務的 URL 以及必要的標頭或訊息本文。
   此 API 呼叫會擷取 XBOX 服務端點的 XSTS 權杖。此呼叫會為訊息和預先定義的標頭產生訊息簽章。
2. 從非同步結果透過 `XUserGetTokenAndSignatureUtf16Result` 擷取 XSTS 權杖和簽章。
   `XUserGetTokenAndSignatureUtf16Result` 會傳回加密的 XSTS 權杖。遊戲應將傳回的權杖視為不透明資料。權杖資料不得寫入磁碟，也不得在後續服務呼叫之外快取於遊戲空間中。
3. 在 HTTPS 要求的 Authorization 標頭中適當地使用 Microsoft Windows HTTP Services (WinHTTP)、xCurl 和 XSTS 權杖。

### 權杖到期和重新整理

XSTS 權杖只在特定期間內有效。XSTS 權杖的預設到期時間為四小時。每個權杖都包含所有 XBOX 服務都會驗證的時間戳記。

每個新的驗證或登入要求都必須使用 [XUserGetTokenAndSignatureUtf16Async](/zh-TW/reference/system/xuser/functions/xusergettokenandsignatureasync) API。`XUserGetTokenAndSignatureUtf16Async` 會處理權杖到期和快取。此 API 可確保遊戲一律收到有效的權杖。除此之外，遊戲不得快取權杖。

當向 XBOX 服務端點提供已到期或無效的權杖時，會傳回 HTTP/401 錯誤。


## Related topics

- [服務驗證](/zh-TW/services/xbox-services/fundamentals/s2s-auth-calls/service-authentication/index.md)
- [XBOX 服務驗證 (內容)](/zh-TW/services/xbox-services/fundamentals/s2s-auth-calls/service-authentication/live-service-authentication-nav.md)
- [驗證](/zh-TW/services/xbox-services/fundamentals/identity/auth/index.md)
- [適用於遊戲服務的 XBOX 服務驗證](/zh-TW/services/xbox-services/fundamentals/s2s-auth-calls/service-authentication/live-title-service-authentication.md)
- [驗證和 S2S](/zh-TW/services/xbox-services/fundamentals/s2s-auth-calls/live-s2s-auth-calls-nav.md)
