EDS の承認
はじめに
Entertainment Discovery Services (EDS) 3.1 は匿名トラフィックをサポートしません。EDS へのすべてのリクエストに認証が必要です。EDS では、クライアントを適切に認証するために呼び出し元からの XToken が必要です。これらのトークンは XSTS によって生成され、さまざまな XBOX Authentication Services (XAS) を通じて取得できます。デバイス、ユーザー、およびタイトル用に別々の認証サービスがあり、それぞれがトークンの ID を定義します。 XSTS は XBOX LIVE のゲートキーパーです。ユーザーまたはデバイスが XBOX LIVE サービスのいずれかに接続することを承認されているかどうかを判断するための第一の防衛線です。XSTS はユーザーを認証した後、サービス上の任意のコンポーネントに対して自身を安全に識別するために使用できる XToken を生成します。この XToken は、LIVE へのパスポートです。 人と物は、私たちのサービスを利用したいと思っています。そして私たちは、それらの物と人のほとんどにサービスを利用できるようにしたいと考えています。しかし、物が人のふりをしていないこと、そして人が本当に本人であることをどのように確認するのでしょうか? 私たちは彼らに、他者に対して自分自身を識別するために使用できるトークンを提供します。 これらのトークンは XSTS によって生成され、通常は XToken と呼ばれます。XToken は、さまざまなものを含み、多くの異なる形式で提供されるトークンをカバーする広い用語ですが、これらはすべて XSTS サーバーによって作成、署名され、必要に応じて暗号化されます。内部的に、XSTS はトークンの作成と形式化のために MXAN を使用します。MXAN は、XToken から情報を抽出する唯一のコンポーネントです。トークンを使用するサービスは、リクエスト ヘッダーを MXAN に渡して解析します。トークンは処理および検証され、トークンで表明されたクレームがサービスに返されます。サービスはこれらのクレーム値を使用して、呼び出し元のユーザーまたはデバイスを識別し、その情報に基づいてアクションを実行できます。 ユーザー、デバイス、およびタイトル用の基本的な ID トークンは、XBOX Authentication Services (XAS) によって提供されます。各 XAS は、それぞれが担当するさまざまなクレームの値を指定する ID トークンを生成する役割を担います。- XASD (デバイス用 XAS): デバイス ID を提供する DToken を作成します
- XASU (ユーザー用 XAS): ユーザー ID を提供する UToken を作成します
- XAST (タイトル用 XAS): タイトル ID を提供する TToken を作成します
承認プロセス
-
1 つ以上の ID トークンを取得します。D、U、T の各トークンをそれぞれ最大 1 つ含む XToken を要求できます。D または U のうち少なくとも 1 つを提供する必要があります。
- デバイス認証の詳細を提供して XASD から DToken を要求します
- 何らかの形式のユーザー認証を使用して XASU から UToken を要求します。ユーザー認証はおそらく MSA (RPS) トークンの形式で提供されます。
- XAST から TToken を要求します。利用可能なタイトルは現在実行中のプラットフォームによって異なるため、XAST にも DToken を提供する必要があります。
-
XSTS リクエストを作成します。
- トークンを要求する対象の証明書利用者 (relying party) を定義します。
- D、U、および/または T トークンを使用してリクエスト プロパティを設定します。
- XSTS リクエストを実行し、返された XToken をキャッシュします。返された XToken には (最大で) ID トークンからのすべてのデバイス、ユーザー、タイトルの ID 情報と、任意の追加のクレーム (現在のサブスクリプション状態、ユーザー グループなど) が含まれます。
3.0 トークン: マルチユーザー vs シングル ユーザー
これが 3.0 トークンの形式です:XBL3.0 x=<hash>;<token>
<hash> に応じて、トークンは異なる方法で扱われます。
- <hash> が * (アスタリスク) と等しい場合、特定のユーザーがリクエストを実行しているわけではなく、トークン内のすべてのユーザーが逆シリアル化されたプリンシパルに含まれます。これが真のマルチユーザー形式です。
- <hash> が - (ダッシュ) と等しい場合、リクエストを実行しているユーザーはいません。逆シリアル化されたプリンシパル内のすべてのユーザーは除外されます。
- <hash> が * または - と等しくない場合、これはトークン内のどのユーザーがリクエストを実行しているかを示す識別子です。指定されたユーザーのみが逆シリアル化されたプリンシパルに含まれます。それ以外のすべてのユーザーは除外されます。これがシングル ユーザーの 3.0 トークンです。
EDS はマルチユーザーをサポートしていますか?
- 答えは「いいえ」です。説明されているケースでは、コンソールは常にシングル ユーザー トークンを送信します。複数のユーザーがサインインしている場合でも、指定された「呼び出し元」が必要であり、その他すべての ID は除外されます。
