> ## 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 services 認証

> XSTS トークンと署名を使用した XBOX Live 呼び出し認証の背景情報。クライアント側の XSAPI の使用と、サービス間の RESTful フローを取り上げます。

このトピックでは、XBOX services 呼び出しの認証に関する背景情報を提供します。

XBOX services をより速いペースで公開し、また特定のリカバリー リリースに依存せずにタイトルがこれらのサービスを使用できるようにするために、XBOX services は RESTful HTTPS エンドポイントとしてリリースされます。これらのサービスの認証と認可には、有効な XBOX Secure Token Service (XSTS) トークンと署名が必要です。XSTS トークンの詳細については、[XBOX services セキュリティ トークン (XSTS トークン)](/services/xbox-services/fundamentals/s2s-auth-calls/service-authentication/security-tokens/live-security-tokens) を参照してください。

XBOX services は 2 つの経路で呼び出されます。

1. *XBOX services クライアント*
   XBOX services で認証されたクライアントから呼び出されます。これらの呼び出しは常にユーザー コンテキスト内で行われます。
2. *サービス間 (Service-to-service)*
   カスタム タイトル Web サービスからサービス間 XBOX services 呼び出しを介して行われます。これらの呼び出しは、ユーザーに代わって、またはサービスとして直接行われます。
   タイトル サービスからの呼び出しの詳細については、[タイトル サービスから XBOX services への呼び出し](/services/xbox-services/fundamentals/s2s-auth-calls/s2s-calls/live-title-service-calls-xbox-live) を参照してください。

## クライアントから XBOX services への呼び出し

Microsoft Game Development Kit (GDK) を使用したすべての XBOX services への呼び出しには、Microsoft Game Development Kit (GDK) リリースにバンドルされている XBOX Service API (XSAPI) を使用することを強くお勧めします。これらの API は HTTP 要求を処理し、利用可能なサービス データをオブジェクトを通じてタイトルに直接返します。また、XBOX services と認証で推奨される接続とキャッシュの動作を実装しています。これらの API の詳細については、XBOX Service API ドキュメントの [XSAPI リファレンス](/reference/live/xsapi-c/atoc-xsapi-c) を参照してください。

以下のセクションは、XBOX services 認証の完全性と深い理解のためだけに提供されます。

### 初期設定

XBOX services はすべてのタイトルに対して透過的にプリコンフィグレーションされています。追加のエンドポイント設定は不要です。これはすべての `*.xboxlive.com` サブドメインに適用されます。

### トークン取得と接続フロー

XBOX services のエンドポイントを使用するには、XSTS 認証トークンとメッセージ署名が存在する必要があります。この情報がない場合、サービスとの通信は拒否されます。

XSTS トークンとユーザー識別 (user hash) を要求の `Authentication` ヘッダーに含める必要があります。メッセージ署名は要求の `Signature` ヘッダーに指定する必要があります。これらのヘッダーの構造の詳細については、[XBOX services セキュリティ トークン (XSTS トークン)](/services/xbox-services/fundamentals/s2s-auth-calls/service-authentication/security-tokens/live-security-tokens) を参照してください。

### XSTS トークンの取得

XSTS トークンと署名ヘッダー データは、[XUserGetTokenAndSignatureUtf16Async](/reference/system/xuser/functions/xusergettokenandsignatureutf16async) API を通じて取得されます。これは、サービス要求に必要なヘッダーを提供します。

その後、タイトルは次のフローで `XUserGetTokenAndSignatureUtf16Async` API を使用して、XBOX services エンドポイントの XSTS トークンを要求します。

1. 現在のユーザーで `XUserGetTokenAndSignatureUtf16Async` を呼び出します。API 呼び出しに XBOX services の URL と必要なヘッダーまたはメッセージ本文を含めます。
   この API 呼び出しは、XBOX services エンドポイントの XSTS トークンを取得します。呼び出しは、メッセージと事前定義されたヘッダーに対するメッセージ署名を生成します。
2. 非同期結果から `XUserGetTokenAndSignatureUtf16Result` を介して XSTS トークンと署名を取得します。
   `XUserGetTokenAndSignatureUtf16Result` は暗号化された XSTS トークンを返します。タイトルは返されたトークンを不透明なデータとして扱う必要があります。トークン データは、次のサービス呼び出しを超えてディスクに書き込んだり、タイトル領域にキャッシュしたりしてはなりません。
3. Microsoft Windows HTTP Services (WinHTTP)、xCurl、および XSTS トークンを、HTTPS 要求の Authorization ヘッダーで適宜使用します。

### トークンの有効期限と更新

XSTS トークンは特定の期間のみ有効です。XSTS トークンの既定の有効期限は 4 時間です。各トークンにはタイムスタンプが含まれており、すべての XBOX services で検証されます。

新しい認証やサインイン要求ごとに [XUserGetTokenAndSignatureUtf16Async](/reference/system/xuser/functions/xusergettokenandsignatureasync) API を使用する必要があります。`XUserGetTokenAndSignatureUtf16Async` はトークンの有効期限とキャッシュを処理します。この API は、タイトルが常に有効なトークンを受信することを保証します。タイトルはこれ以外の方法でトークンをキャッシュしてはなりません。

期限切れまたは無効なトークンが XBOX services エンドポイントに提示されると、HTTP/401 エラーが返されます。


## Related topics

- [XBOX services 認証 (目次)](/ja-jp/services/xbox-services/fundamentals/s2s-auth-calls/service-authentication/live-service-authentication-nav.md)
- [認証と S2S](/ja-jp/services/xbox-services/fundamentals/s2s-auth-calls/live-s2s-auth-calls-nav.md)
- [サービス認証](/ja-jp/services/xbox-services/fundamentals/s2s-auth-calls/service-authentication/index.md)
- [タイトル サービス向け XBOX services 認証](/ja-jp/services/xbox-services/fundamentals/s2s-auth-calls/service-authentication/live-title-service-authentication.md)
- [Microsoft Store API を使用してサービスを認証する](/ja-jp/publishing/xstore-commerce/xstore-authenticating-service.md)
