EDS 承認
はじめに
Entertainment Discovery Services (EDS) 3.1 は匿名トラフィックをサポートしません。 EDS に対するすべての要求には認証が必要です。 クライアントを正しく認証するために、EDS は呼び出し元からの XToken を要求します。 これらのトークンは XSTS によって生成され、各種の Xbox 認証サービス (XAS) を通じて取得できます。 デバイス、ユーザー、およびタイトル用の認証サービスが別々に存在し、これらはすべてトークンの ID を定義します。
XSTS は Xbox LIVE のゲートキーパーです。 XSTS は、ユーザーまたはデバイスが任意の Xbox LIVE サービスに接続する権限があるかどうかを判断する、防御の最前線です。 XSTS はユーザーを認証した後、ユーザーまたはデバイスが、サービス上のあらゆるコンポーネントに対して自分の身元を確実に証明するために使用できる XToken を生成します。 この XToken は LIVE へのパスポートです。
Xbox LIVE のサービスは人または物によって利用されます。 それらの物や人のほとんどがサービスを利用できることが理想的です。 しかし、物が人を装っていないこと、また、人が実際に申告したとおりの人物であることは、どうすれば確認できるでしょうか。 人または物に提供されるトークンは、他者に対して自分の身元を証明する手段として使用できます。
これらのトークンは XSTS によって生成され、通常は XToken と呼ばれます。 XToken は、さまざまな要素を含み形態も多様であるトークンを網羅するために使用される意味の広い用語ですが、すべての XToken は XSTS サーバーによって作成され、署名され、必要に応じて暗号化されます。 内部的には、XSTS は MXAN を使用してトークンを作成およびフォーマットします。 MXAN は、XToken から情報を抽出する唯一のコンポーネントです。 トークンを使用するサービスは、要求ヘッダーを MXAN に渡して解読を依頼します。 トークンは処理および検証され、トークンで表現されたクレームがサービスに返されます。 その後、サービスはこれらのクレーム値を使用して呼び出し元のユーザーまたはデバイスを識別し、その情報に基づいてアクションを実行できます。
ユーザー、デバイス、およびタイトル用の基本的な ID トークンは Xbox 認証サービス (XAS) によって提供されます。 それぞれの XAS は、その責任範囲である各種クレームの値を指定する ID トークンの生成を担当します。
- XASD (XAS for Devices): デバイスの ID 情報を提供する DToken を作成します
- XASU (XAS for Users): ユーザーの ID 情報を提供する UToken を作成します
- XAST (XAS for Titles): タイトルの ID 情報を提供する TToken を作成します
承認プロセス
1 つ以上の ID トークンを取得します。 D、U、T の各トークンを最大で 1 つ持つ XToken を要求できます。 少なくとも D または U のいずれかを提供する必要があります。
- デバイス認証の詳細を提供することによって、XASD から DToken を要求します。
- 何らかの形式のユーザー認証によって、XASU から UToken を要求します。 多くの場合、ユーザー認証は MSA (RPS) トークンの形式で提供されます。
- XAST から TToken を要求します。 利用可能なタイトルは現在稼働中のプラットフォームに依存するため、DToken も XAST に提供する必要があります。
XSTS 要求を作成します。
- トークンを要求している対象の証明書利用者を定義します。
- D、U、T の各トークンの全部または一部を要求プロパティに設定します。 * XSTS 要求を実行し、結果の XToken をキャッシュします。 返される XToken には、ID トークンと追加クレーム (現在のメンバーシップ状態、ユーザー グループなど) に基づいて、デバイス、ユーザー、およびタイトルすべて (最大時) の ID 情報が含まれます。
3.0 トークン: マルチユーザーとシングル ユーザー
3.0 トークンの形式は次のとおりです: XBL3.0 x=<hash>;<token>
<hash> に応じてトークンの扱いが異なります。
- <hash> が * (アスタリスク) の場合、どの特定のユーザーも要求を実行しておらず、トークン内のすべてのユーザーが逆シリアル化されたプリンシパルに存在します。 これは本来のマルチユーザー形式です。
- <hash> が - (ダッシュ) の場合、どのユーザーも要求を実行していません。 逆シリアル化されたプリンシパル内のユーザーはすべて除外されます。
- <hash> が * または - と等しくない場合、トークン内のどのユーザーがリクエストを行っているかを示す識別子です。 逆シリアル化されたプリンシパルには、示されたユーザーのみが存在します。 他のすべてのユーザーは除外されます。これは 3.0 のシングル ユーザー トークンです。
EDS のマルチユーザー サポート
- EDS はマルチユーザーをサポートしません。 説明したケースでは、本体は常にシングル ユーザー トークンを送信します。 複数のユーザーがサインインしている場合でも、示された "呼び出し元" が存在する必要があり、他のすべての ID は無視されます。