サーバー側の Xbox サービス ユーザー特権の処理
このトピックを使用して、Xbox サービス特権と統合するようにシングル サインオン (SSO) サービス (証明書利用者とも呼ばれます) を構成します。
前提条件
サービスに特権ベースのアクセス制御を適用するには、Xbox サービス での SSO 用に構成されたサービスが必要です。 これにより、Xbox Secure Token Service (XSTS) は、構成時に指定した公開キーで暗号化されたトークンを発行できます。 これを証明書利用者の構成といいます。
詳細については、「 タイトル サービスの Xbox サービス認証」を認可が必須です参照してください。
パートナー サービスでの権限ベースのアクセス制御の実装
クライアント アプリケーションでは、HTTP 要求の「承認」 ヘッダーを使用してパートナー サービス向けの XSTS トークンを送信する必要があります。
パートナー サービスによってトークンが復号化され、トークンの署名が検証された後、サービスに対して期待される特権で特権要求を抽出して検証する必要があります。
Game Server サンプルは、XSTS トークンを処理する方法やインクルード要求を取得する方法の例に適したリソースです。
注意
Xbox サービス トークンには、複数のユーザー ID を含めることができます。 トークン内の各ユーザー ID には権限クレームがあります。
たとえば、パートナー マッチメイキング サービスのコードを使用して、リクエストの各ユーザーがマルチプレーヤー セッションへの参加を許可されているかどうかを判断できます。
権限のトークン フォーマット
権限は、トークンのユーザー ID ごとのユーザーおよび権限クレームに格納されます。 権限クレームには、スペースで区切られた整数のコレクションが含まれます。 各整数が具体的な権限を表します。
ある値がコレクションに含まれる場合、ユーザーは現在、権限があり、対応する機能へのアクセスが承認されていることを意味します。
以下のコードは、特権クレームを含む完全に復号化された JSON Web トークンの例です。
...
{ "enc":"A128CBC+HS256", ... }.
{ "typ":"JWT", ... }.
{
"aud":"rp://your_relying_party.com/",
"iss":"xsts.auth.xboxLive.com", ...
"cnf":"
{...}",
"xdi":"
{...}",
"xti":"
{...}",
"xui":"
[
{
"xid":"2533274991020393",
"gtg":"SampleGamertag1",
"agg":"Adult",
...,
"prv":"211 212 220 226 227 228 229 230 231 234 237 240 243 244 245 246 247 248 249 251 252 255"
},
{
"xid":"1234574991020397",
"gtg":"SampleGamertag2",
"agg":"Adult",
...,
"prv":"211 212 220 226 227 228 229 230 231 234 237 240 243 244 246 251 252 255"
}
]"
}
...