XR-045: XBOX network とアカウント特権 *
バージョン 2.0、2023/03/01 XBOX network は、ユーザーとその子どもに期待されるレベルのプライバシーおよびオンライン セーフティを提供します。これを実現するため、タイトルは、XBOX network サービスまたはタイトル体験内で特定のアクションを完了するために、XBOX network サービスに対して特権をチェックする必要があります。 特権のチェックと遵守はすべてのアカウントに適用されますが、child アカウントの体験と期待は特に重要です。child アカウントの場合、年齢ベースの既定値や家族の主催者 (保護者) による構成により、特定のアクティビティに関する制限がブロックされる場合があります。child は自ら変更を加えられませんが、特定のアクティビティでは、若いプレイヤーがそのアクティビティに対する承認フローで例外を要求できるように、タイトルが必要なシステム UI を呼び出すことが可能かつ期待されます。たとえば、若いプレイヤーはグローバルにマルチプレイヤーがブロックされている可能性がありますが、家族の保護者はシステム UI を通じて特定のタイトルのマルチプレイヤーを承認できます。その場合、child はそのタイトルのマルチプレイヤー モードにアクセスできる (そしてアクセスできるべき) ことになります。
Free-to-play タイトル、デモ、ベータは、Game Pass 加入者以外のプレイヤーに対してマルチプレイヤー ゲームプレイ (ID 254) を許可するように構成できます。これはサービス側の構成で行われ、Microsoft 担当者への連絡で開始できます。これらのタイトルも、ペアレンタル コントロールとプレイヤーの選択が尊重されるように、引き続きマルチプレイヤー ゲーム特権をチェックする必要があります。
詳細情報
技術ガイダンスとベスト プラクティスの詳細は、XBOX サービス ユーザー特権のクライアント側使用に関するドキュメントを参照してください。
prv クレームを検査することで、セッション内のユーザーが要求されたアクションを実行する適切な特権を持っていることをサービスで強制する必要があります。
タイトルが上記の表にあるアクティビティを 1 つ以上提供する場合、タイトルは該当のアクティビティに関連付けられた特権をチェックする必要があります。ユーザーが特権を持たない場合、そのアクティビティの使用を許可してはなりません。特権はセッション/アクションの期間、または XBOX network トークンが更新されるまでの時間の、いずれか短いほうの間付与されます。
開発プラットフォーム (GDK、XDK、XSAPI) に応じて、ゲーム タイトルは次のいずれかを確実にするための適切な API を呼び出すことが期待されます。(1) child アカウントの場合、ブロックされた特権をユーザーに通知し、保護者から特定の特権の許可を要求できるアフォーダンスを含むシステム UI を呼び出すか、(2) 具体的で実行可能なエラー メッセージを提供する。
PC または XBOX コンソールで GDK を使用する場合: GDK でユーザーが特権を持つかをチェックするには、XUserCheckPrivilege および XUserResolvePrivilegeWithUiAsync API を使用します。
XBOX One XDK を使用する場合: XBOX One 上で特権をチェックするには、Store::Product::CheckPrivilegeAsync API を使用します。特権チェックがマルチプレイヤー ゲーム モードへの入場などユーザー アクションの結果である場合は、attemptResolution パラメーターを true に設定する必要があります (または設定しないままにします)。プラットフォームは特権をチェックし、ユーザーが持っていない場合はその理由を判定しようとします。
API が false を返した場合、ユーザーは特権を持たず、システムが問題を解決していません。この場合、タイトルは特権が必要なアクティビティをブロックしなければなりませんが、システムが既に、ユーザーにアクティビティのアクセス許可がないこと、または特権に関する問題があることをユーザーに適切に通知したと考えて構いません。
ユーザー アクションの結果ではなく、たとえばサイレントなバックグラウンド呼び出しや UX を装飾する一部として特権チェックを行う場合、API を呼び出す際に attemptResolution を false に設定します。この結果、ユーザーにメッセージは表示されず、システムは特権の問題を修正するために介入しません。
UWP、Win32、モバイル、またはその他のプラットフォームで直接 XSAPI を使用する場合: prv クレームに特権が含まれていない場合、ユーザーはその特権を持たないため、タイトルは特権が必要なアクティビティの続行を阻止する必要があります。マルチプレイヤー セッションの開始や参加など、ユーザーが特権が必要なアクティビティへのアクセスを要求した結果としてチェックが行われた場合、タイトルは参加できないことを知らせる有益なメッセージを表示する必要があります。
実装要件
XBOX network の接続に関する問題: XBOX サービスに到達できないなどの理由 (API 経由または XBOX Live トークンを取得できないため) で失敗を受け取った場合、タイトルは要求されたアクションへのアクセスをブロックすべきです。この場合、XR-074「XBOX およびパートナー サービスへの接続喪失」で説明されているとおり、タイトルは丁寧に失敗する必要があります。
ベスト プラクティス
追加リソース
特権とユーザー トークンの詳細については、XBOX Game Development Kit (GDK) または XBOX Application Development Kit ドキュメントの「User Token」を参照してください。 本 XR においてソーシャル ネットワークとは、既定で他ユーザーとコンテンツを共有できるようにする、XBOX network 外部のサイトまたはサービスを指します。外部サイトの既定オプションがフレンドまたは全員との共有を有効にしている場合、本 XR においては、外部サイトがアップロード時に共有を制限する選択肢をユーザーに提供する必要はありません。除外
有料の取引型ビデオ提供物は、ビデオ コンテンツの特権設定にかかわらず、すべての XBOX ユーザーに提供できます。アプリがプレミアム コンテンツと有料取引型ビデオ提供物の両方を提供する場合、プレミアム コンテンツは本要件を遵守する必要があります。 アプリが、XBOX プラットフォームでアプリが提供される国/地域内における公共放送機関である場合、非商用化コンテンツの提供物すべてを、その国/地域内のすべての XBOX ユーザーに提供する必要があり、ユーザーのビデオ コンテンツ特権設定は問われません。 XBOX One コンソールと非コンソール デバイス間の非同期マルチプレイヤーを提供するタイトルは、非コンソール デバイスでの体験について Multiplayer 特権のチェックは要求されません。認定テスト ケース
045-01 ユーザー特権の尊重
テスト手順- XBOX プロファイルにサインインしてタイトルを起動します。
- XR 備考で示された各特権について、タイトルが関連アクティビティをサポートしているかを特定します。
- 手順 2 で特定した該当特権の各可能な設定について以下を実行します:
- タイトルを終了し、ユーザーのその特権の設定を変更します。
- コンソールを再起動します。
- 同じプロファイルにサインインし、タイトルを起動します。
- タイトルの関連する全領域を訪問し、特権に関連するすべてのタイトル機能を使用して、タイトルが現在のユーザー特権設定を尊重することを確認します。
- Silver XBOX プロファイルを使用して、すべてのオフラインおよびオンライン領域へのアクセスを試みます。
- タイトルがユーザーの特権設定を尊重する。
- タイトルは、部分許可の特権設定を、特権が無効/不許可であるかのように扱う (例: UGC 特権が Friends Only に設定されている場合、タイトルはブロックされているように動作する)。
- XDK を使用するタイトルの場合、タイトルは特権の競合をユーザーに知らせるシステム UI を呼び出す。システム UI を呼び出せない場合 (特権 252、189、247)、タイトルは有益なメッセージを表示する。
- GDK を使用するタイトルの場合、タイトルは特権の競合をユーザーに知らせるシステム UI を呼び出す。システム UI を呼び出せない場合 (252、189、247)、タイトルは有益なメッセージを表示する。
- XSAPI を使用するタイトルの場合、タイトルは有益なメッセージを表示する。
- タイトルがユーザーの特権設定を永続化し、設定変更後のユーザーの実際の特権を反映しない。
- タイトルが、部分許可の特権設定を最も制限の少ない設定に設定されているかのように扱う (例: Friends Only の UGC が Allowed のように動作する)。
- XDK または GDK を使用するタイトルで、タイトルがゲーム内メッセージを使って特権の競合をユーザーに通知し、システム UI を表示しない。
- XSAPI を使用するタイトルが、参加できないことを知らせる有益なメッセージを表示しない。
045-02 ユーザー特権の尊重 - XBOX Family
テスト セットアップと構成 以下の Microsoft アカウントを含む XBOX Family:- Organizer に指定された大人 (18 歳超)。
- Child Default 特権設定を持つ child (13 歳未満):
テスト手順
- 大人および child の Microsoft アカウントにサインインし、child アカウントでタイトルを起動します。
- XR 備考で示された各特権について、タイトルが関連アクティビティをサポートしているかを特定します。
- 手順 2 で特定した該当特権の各可能な設定について以下を実行します:
- アカウント特権に基づいて関連アクティビティが許可/不許可であることを確認します。例: タイトルがマルチプレイヤーをサポートし、child アカウントでマルチプレイヤー特権がブロックされている。タイトルが child のすべてのマルチプレイヤー アクティビティをブロックし、child がマルチプレイヤー アクティビティに参加しようとした際に保護者許可のプロンプト (システム UI) が表示されることを確認します。
- タイトルを終了し、タイトルがサポートする特権アクティビティに対する child の特権設定をブロックから許可に変更します。
- コンソールを再起動します。
- 同じプロファイルにサインインし、タイトルを起動します。
- タイトルの関連する全領域を訪問し、特権に関連するすべてのタイトル機能を使用して、タイトルが現在のユーザー特権設定を尊重することを確認します。
- 保護者アカウントがコンソールに サインインしていない 状態で手順 2〜3 を繰り返します。
- タイトルが child の特権設定を尊重する。
- アクティビティの特権が許可されている場合、タイトルは child のそのアクティビティへの参加を許可する。
- アクティビティの特権がブロックされている場合、タイトルは child のそのアクティビティへの参加を許可しない。
- アクティビティがブロックされているが (保護者許可 UI を通じて) 保護者がそのアクティビティを許可した場合、タイトルは child のそのアクティビティへの参加を許可する。
- アクティビティがブロックされ、そのアクティビティに対する保護者の許可がない場合、タイトルは child の参加を許可しない。
- タイトルは、部分許可の特権設定を、特権が無効/不許可であるかのように扱う。
- XDK を使用するタイトルの場合、タイトルは特権の競合をユーザーに知らせるシステム UI を呼び出す。システム UI を呼び出せない場合 (特権 252、189、247)、タイトルは有益なメッセージを表示する。
- GDK を使用するタイトルの場合、タイトルは特権の競合をユーザーに知らせるシステム UI を呼び出す。システム UI を呼び出せない場合、タイトルは有益なメッセージを表示する。
- XSAPI を使用するタイトルの場合、タイトルは有益なメッセージを表示する。
- タイトルが child の特権設定を尊重しない。
- タイトルが、特権の競合を child に警告・通知するための適切な UI を呼び出さない。
- アクティビティの特権がブロックされているのに、タイトルが child の参加を許可する。
- アクティビティの特権が許可されているのに、タイトルが child の参加を許可しない。
- アクティビティがブロックされ、保護者がそのアクティビティを許可していない場合に、タイトルが child の参加を許可する。
- アクティビティがブロックされ、保護者がそのアクティビティを許可している場合に、タイトルが child の参加を許可しない。
- タイトルがユーザーの特権設定を永続化し、設定変更後のユーザーの実際の特権を反映しない。
- タイトルが、部分許可の特権設定を最も制限の少ない設定に設定されているかのように扱う。
- XDK を使用するタイトルの場合、タイトルがシステム UI を呼び出さない。
- GDK を使用するタイトルの場合、タイトルがシステム UI を呼び出さない。
- XSAPI を使用するタイトルの場合、タイトルが有益なメッセージを表示しない。
