クライアント側の Xbox サービスのユーザー特権の使用
このトピックでは、Xbox サービスで使用できるユーザー特権の確認と解決、および Xbox コンソールまたは Windows PC でのアップセル システムの確認について説明します。
目次
- 前提条件
- クライアント側の処理と権限およびアップセルのユーザー エクスペリエンス
- アプリケーション側の特権処理のベスト プラクティス
- アプリにおける特権ベースのアクセス制御のテスト
- 確認対象の特権 ID。
前提条件
Xbox サービス クライアント アプリケーションでユーザーの特権を扱うには、タイトルが Xbox サービス で認証を行うように構成されている必要があります。 詳細については、「認証とサインインの概要」と「Xbox サービス ユーザー特権の概要」を参照してください。
特権およびアップセルのクライアント側の処理とユーザー エクスペリエンス
クライアント アプリは、XR-045: Xbox サービス とアカウント特権など、タイトルの一部を操作するための特権が必要な Xbox の要件 (XR) の対象となります。 詳細については、後の「Policies and Xbox Requirements (ポリシーと Xbox の要件)」を参照してください。
特権によって制御されるアプリの場合、API を使用できます。 XUserCheckPrivilege ユーザーに特定の特権があるかどうかを示します。 必要なユーザー特権の解決用 UI を表示するには、XUserResolvePrivilegeWithUiAsync 関数を呼び出します。 これにより、ユーザーが特権を持たなかった場合の説明やアップセルのために必要な UI を表示します。
たとえば、XPRIVILEGE_MULTIPLAYER_SESSIONS
特権の対象となるアプリのフローは、次のようになります。
- ユーザーにはマルチプレイヤー セッションを開始するためのオプションが表示され、UI で適切なオプションを選択して試合を開始しようとします。
-
XUserCheckPrivilege
API を使用してアプリで「ヒント」がチェックされます。- 特権を取得できる場合、ユーザーに特権があると仮定し、サービスを呼び出します。
- それが存在しない場合は、次の手順に進みます。
注意
Xbox サービス API では、XToken 内に特権がないために機能へのアクセスが拒否された場合、403 ステータス コード (
HTTP_E_STATUS_FORBIDDEN
) が返されます。 Xbox サービス のすべてのエンドポイントで、必要に応じて特権ベースのアクセス制御が適用されます。 - タイトル アプリはこのエラー コードへの応答として、解決対象の特権に対応する特権 ID を指定した
XUserResolvePrivilegeWithUiAsync
を呼び出します。 この関数は Xbox サービスを呼び出してユーザーに特権を持っているどうか確認し、アクションが失敗した理由をユーザーに伝えるか、解決するための UI を表示します。 次の例は、この API 呼び出しから発生する可能性があります。- Xbox サービス ポリシーとエンフォースメント モデレーターによって発行されたユーザーのエンフォースメント状態に関連する UI を表示します。
- 保護者による制限に関連する UI を表示します (該当する場合)。
- 該当する Xbox Live Gold サブスクリプションなどのサブスクリプション サービスの使用を促進します。
- タイトルに結果を返す (成功または失敗とその理由)。
注意
Xbox サービスまたはネットワークに到達できない場合は、
XUserResolvePrivilegeWithUiAsync
が失敗します。 この失敗は、ユーザーに特権がなかったかのように扱う必要があります。 -
XUserResolvePrivilegeWithUiAsync
から結果が返された時点での処理:- 失敗が返された場合、ユーザーの禁止が失効することがあったり保護者による制限が変更されたりするため (例)、タイトルでは、ユーザーが引き続きボタンをクリックできるようにする必要があります。
- 成功が返された場合、ユーザーは修正されているため、タイトルがアクションを再試行します。
ユーザーのトークンには、
XUserResolvePrivilegeWithUiAsync
による修正の一環として、必要な特権が含められます。
注意
特権は、"できますか" という質問に答えるマクロ レベルのチェックです。たとえば、"このユーザーはマルチプレイヤー機能にアクセスできますか?ただし、アプリがチェックする必要があるアクセス許可は特権だけではありません。
タイトルに適用できる特権の詳細については、「XR-015 in the topic Policies and Xbox Requirements (トピックの XR-015、ポリシーと Xbox の要件)」を参照してください。
コード例
ユーザーがタイトルにマルチプレイヤー機能でアクセスする前に次のコード例を使用して、そのユーザーのマルチプレイヤー権限を確認していることを確認してください。
XUserPrivilegeDenyReason reason;
bool hasPrivilege = false;
// check the Multiplayer (254) privilege
HRESULT hr = XUserCheckPrivilege(userHandle, XUserPrivilegeOptions::None, XUserPrivilege::Multiplayer, &hasPrivilege, &reason);
// error with the user such that we can't yet check privileges
if(E_GAMEUSER_RESOLVE_USER_ISSUE_REQUIRED == hr)
{
asyncBlock.callback = [](XAsyncBlock *async)
{
HRESULT hr = XUserResolveIssueWithUiResult(async);
// if SUCCEEDED(hr), the issue is resolved, try the privilege check again
// if FAILED(hr), the issue is not resolved, the title should deny access to the user, and perhaps try again later
};
hr = XUserResolveIssueWithUiAsync(userHandle, nullptr, &asyncBlock);
}
// user doesn't have the requested privilege, try to resolve the issue
else if(!hasPrivilege)
{
asyncBlock.callback = [](XAsyncBlock *async)
{
HRESULT hr = XUserResolvePrivilegeWithUiResult(async);
// if SUCCEEDED(hr), all privilege issues are now resolved, the user has the privilege,
// and the title should continue. It is not necessary to call XUserCheckPrivilege again.
// if FAILED(hr), the user did not resolve all privileges, the title should deny access to the user and perhaps try again later
};
hr = XUserResolvePrivilegeWithUiAsync(userHandle, XUserPrivilegeOptions::None, XUserPrivilege::Multiplayer, &asyncBlock);
}
else if(hasPrivilege)
{
// the user has the privilege, continue!
}
アプリケーション側の特権処理のベスト プラクティス
タイトルでユーザー特権を処理する場合は、次のベスト プラクティスを使用してください。
アプリケーションで特権を解決する頻度
特権の確認については、起動ごとに 1 回、ユーザーが適切な特権を持っているかどうかを確認し、解決することが要件となります。 すべての論理セッションと個別のアクションで確認することをお勧めします。
セッションの定義は、アプリの使用状況によって大きく異なる場合があります。
ベスト プラクティスの例を次に示します。
- ビデオ プレーヤーなどのメディア ストリーミング アプリでは、[Play (再生)] ボタンの選択 (ストリームの開始)、またはプレイリストの開始 (音楽プレイリストなどの複数のストリームの開始) ごとに 1 回、特権の確認を解決します。
- メッセージング アプリケーションの場合、最初のメッセージの送信時に一度特権を確認します。
- サードパーティーのマッチ サービスを使用するマルチプレイヤー アプリケーションの場合、セッション (マッチ) が開始されるたびに解決します。
ユーザーのメンバーシップ層を仮定しない
Xbox 360 からの要求には、ユーザーのメンバーシップ層 (Xbox Live Gold などの状態) に関する情報を指定していました。 このクレームは、Xbox One ファミリー以降の導入で廃止されました。 特権を使った判断を徹底してください。 ユーザーの層や、ユーザーが特定の特権を取得した方法は、アプリに対して非透過的である必要があります。
オフライン モード
XUserCheckPrivilege
からサービスがダウンしているか到達不能であるという結果が返された場合は、特権の確認が実行され失敗した場合と同じように扱ってください。
そうすることで、アプリは XR に準拠するためのフェイルセーフを備えます。
適切なユーザーをターゲットにする
特権の確認に別のユーザーが指定されていない場合は、常にアクティブなユーザーを参照することをお勧めします。 アプリケーションで特定のユーザーの指定をサポートする場合は、現在指定されているユーザーを使用する必要があります。
Bill、Bob、および Beth という 3 人のユーザーがログインしているとします。
アプリケーションでは、どのユーザーのおすすめ候補/履歴/設定を使用するかを指定するための、「アクティブなユーザー」の切り替えがサポートされています。
Beth がアプリを起動しました。
アプリの実行中に、アクティブなユーザーは Bob に切り替わりました。
Bob には、個別のプロファイル、おすすめ候補、履歴のセットがあります。
XUserCheckPrivilege
を呼び出し、Bob の特権確認を開始します。
UI を使用しない確認またはフォーカス外での確認
アプリがモーダルを表示できない場合は、特権確認の UX がブロックされます。
たとえば、アプリがバックグラウンドで音楽を再生していたり、Skype アプリがバックグラウンドで実行されている間に通話を着信した場合です。
ただし、アプリは引き続き特権を確認する必要があります。
XUserCheckPrivilege
の呼び出しをお勧めします。
XUserCheckPrivilege
は UI を表示するのではなく、ユーザーの現在の特権状態を返すか、該当する失敗を返します。
アプリは、特権によって定義されているユーザーに影響を与える可能性があります。また、アプリがフォーカスを取り戻した場合は、特権の確認をユーザーに通知します。
逆に、必要に応じてタイトルは、ユーザーに対して非モーダルのエラー情報や別の UX を表示できます。
ユーザーにブロッキング UX を表示するのが適切な場合は、再度 XUserResolvePrivilegeWithUiAsync
に呼び出して、アップセルやエンフォースメント状況などの適切な UX を表示します。
アプリにおける特権ベースのアクセス制御のテスト
特権は、次の入力に基づいて計算されます。
- 現在のユーザーの有効なサブスクリプションの資格。
- 現在のデバイスの有効な特権の資格。
- クライアント プラットフォームの有効な権限資格-
- 現在のタイトルの有効な特権資格。
- タイトルと特権のコレクションをパッケージ化することで、アプリのすべてのユーザーが自動的にこれらの特権を取得し、実行中のアプリで使用できるようにすることが可能です。 タイトルでこの機能が必要な場合は、Microsoft アカウント マネージャーにお問い合わせください。
- 保護者が家族の子供たちにどのような特権を追加または削除するかを決定するための保護者による制限
- サービスの悪用が確認されたユーザーやデバイスに対して、Xbox サービス モデレーターが特権を禁止する場合があります。
ユーザー特権とアクセス許可の管理と確認
ユーザーのプライバシー設定には、2 つの方法でアクセスできます。
- PC の場合:
https://aka.ms/XboxPrivSettings に移動します。 - Xbox の場合:
[設定] -> [全般] -> [オンラインセーフティ & ファミリ] -> [プライバシー] & [オンラインの安全性] -> [Xbox プライバシー] の順に移動します。
XUserCheckPrivilege でチェックされた特権
XUserPrivilege::CrossPlay
- 説明: 次のようなシナリオでユーザーが、Xbox サービスにサインインしていない他の実際のプレイヤーとのゲームプレイ セッションに参加することを許可します: 同じセッションに同時参加するプレイヤー対プレイヤーのゲームプレイ、非同期のターン (順番) 制のゲームプレイ、チーム ベースのゲームプレイ、ユーザーが開始したマッチメイキング、招待の送信または承諾、途中参加セッション。
- 要件: XR-045 - Xbox ネットワークとアカウント特権。
- 特権 ID: 185
- PC 上の設定: Xbox サービス以外のユーザーとプレイできます
- Xbox 上の設定: クロスネットワーク プレイに参加できます
XUserPrivilege::Sessions
- 説明: ユーザーは、共有環境での接続された 1 人プレイ モードや、無料プレイと有料プレイでのマルチプレイヤーのハイブリッド タイトルのシナリオに参加することができ、この権限を使って、これらのエクスペリエンスを Xbox 本体でゲートすることができます。 1 人プレイ環境には、権限 252 または 254 でカバーされる機能 (それぞれ、コミュニケーションとマルチプレイヤー) が含まれてはなりません。 この権限の使用は、プラットフォームの承認が必要なタイトルの機能です。
- 要件: XR-045 - Xbox ネットワークとアカウント特権。
- 特権 ID: 189
- PC 上の設定: マルチプレイヤー ゲームに参加できます
- Xbox 上の設定: マルチプレイヤー ゲームに参加できます
XUserPrivilege::Multiplayer
- 説明: 次のようなシナリオでユーザーが実際のユーザー (ボットでない) とのマルチプレイヤー ゲームプレイ セッションにオンラインで参加することを許可します。同じセッションに同時参加するプレイヤー対プレイヤーのゲームプレイ、非同期のターン (順番) 制のゲームプレイ、チーム ベースのゲームプレイ、ユーザーが開始したマッチメイキング、招待の送信または承諾、途中参加セッション。 この特権は、同じデバイスで実行されるローカル マルチプレイヤー ゲームには関係しないことに注意してください。
- 要件: XR-045 - Xbox ネットワークとアカウント特権。
- 特権 ID: 254
- PC 上の設定: マルチプレイヤー ゲームに参加できます
- Xbox 上の設定: マルチプレイヤー ゲームに参加できます
XUserPrivilege::UserGeneratedContent
- 説明: ユーザーが他のユーザーの UGC をオンラインで表示すること、他のユーザーの UGC をダウンロードすること、自分の UGC をオンラインで共有することを許可します。 これは、以前にダウンロードした UGC の使用方法を制限しません。
- 要件: XR-045 - Xbox ネットワークとアカウント特権。
- 特権 ID: 247
- PC 上の設定: コミュニティの作品を確認してアップロードできます
- Xbox 上の設定: コミュニティの作品を確認してアップロードできます
XUserPrivilege::SocialNetworkSharing
- 説明: Xbox ネットワーク 本体のみ: ユーザーが Xbox ネットワークの外部で、ゲームの進行状況、Kinect で生成されたコンテンツ、ゲーム クリップなどの情報を共有することを許可します。
- 要件: XR-045 - Xbox ネットワークとアカウント特権。
- 特権 ID: 220
- Xbox 上の設定: Xbox の外部で共有できます
XUserPrivilege::Communications
- 説明: ユーザーが他の Xbox サービス ユーザーと音声またはテキストで通信することを許可します。
- 要件: XR-045 - Xbox ネットワークとアカウント特権。
- 特権 ID: 252
- PC 上の設定: 他のユーザーは音声や文字、招待でコミュニケーションできます
- Xbox 上の設定: 他のユーザーは音声や文字、招待でコミュニケーションできます
XblPrivacyCheckPermissionAsync でチェックされたアクセス許可
タイトルでは、複数のユーザーに対してアクセス許可をチェックする必要がある場合は XblPrivacyBatchCheckPermissionAsync を使用し、Xbox サービス以外のユーザーに対してアクセス許可をチェックする場合は XblPrivacyCheckPermissionForAnonymousUserAsync を使用することもできます。
XblPermission::CommunicateUsingText
- 説明: プレイヤーがターゲット プレイヤーにテキスト コンテンツを含むメッセージを送信できるかどうかをチェックします。 プレーヤーがターゲット ユーザーをミュートした場合、この値は変更されません。 代わりに CommunicateUsingVoice を使用します。 たとえば、通信をフレンドのみに設定し、ターゲットがフレンドではない場合、この値は false になります。 たとえば、ターゲット ユーザーがあなたをブロックした場合、この値は false になります。 たとえば、通信設定を [ブロック] に設定した場合、この値は false になります。
- 要件: XR-015 - プレイヤー間の通信の管理
- 別の Xbox サービス ユーザーを確認する場合
- PC 上の設定: 他のユーザーは音声や文字、招待でコミュニケーションできます
- Xbox 上の設定: 他のユーザーは音声や文字、招待でコミュニケーションできます
- 匿名ユーザーを確認する場合
- PC 上の設定: Xbox サービス以外のユーザーと音声やテキストで会話することができます
- Xbox 上の設定: Xbox Live 以外のユーザーと音声やテキストで会話することができます
- 別の Xbox サービス ユーザーを確認する場合
XblPermission::CommunicateUsingVoice
- 説明: ユーザーが音声を使用してターゲット ユーザーと通信できるかどうかをチェックします。 プレーヤーがターゲット ユーザーをミュートした場合、これは false になります。
- 要件: XR-015 - プレイヤー間の通信の管理
- 別の Xbox サービス ユーザーを確認する場合
- PC 上の設定: 他のユーザーは音声や文字、招待でコミュニケーションできます
- Xbox 上の設定: 他のユーザーは音声や文字、招待でコミュニケーションできます
- 匿名ユーザーを確認する場合
- PC 上の設定: Xbox サービス以外のユーザーと音声やテキストで会話することができます
- Xbox 上の設定: Xbox Live 以外のユーザーと音声やテキストで会話することができます
- 別の Xbox サービス ユーザーを確認する場合
サブスクリプションによって提供される特権のテスト
パートナー センターで Xbox Live Gold サブスクリプションを使用して、テスト アカウントを作成できます。 これらのアカウントを使用して、Xbox Live Gold サブスクリプションで提供される特権の特権ロジックをテストします。
その他のサブスクリプションを購入するには、開発クライアントで テスト アカウントを使用します。
注意
アカウントまたはデバイスが認証されている開発用サンドボックスにサブスクリプションが公開され、開発クライアントのアカウントが同じサンドボックス上でアクティブになっている必要があります。
パートナー センターで作成されたテスト アカウントを使って、リテールの Xbox Live Gold サブスクリプションを直接購入することはできません。 その代わりに、開発シナリオにのみ適用される Xbox Live Gold の開発者専用バージョンを購入することができます。
動作しているタイトルによって提供される特権のテスト
ユーザーがアプリ内にいるときに自動的に特権を発行するようにアプリを構成したい場合は、Microsoft アカウント マネージャーにお問い合わせください。 このシナリオをテストするには、Xbox サービス認証用にアプリを構成し、ユーザーがサインインした状態でアプリを実行する必要があります。
保護者による制限によって削除された特権のテスト
保護者による制限 (XPRIVILEGE_COMMUNICATIONS
など) で削除できる特権を使用して特権ロジックをテストするには、クライアント デバイスで家族アカウントを構成します。
保護者の方は、家族の中の子どもたちの特権を制限するために、このデバイスを使用することがあります。
また、ユーザーが自分のアカウントの特権を制限することも可能です。 ユーザーの特権を制限する必要があるシナリオをテストする場合は、この方法をお勧めします。
注意
現在パートナー センターには、テスト アカウントのファミリを作成する方法は用意されていません。
確認対象の特権 ID。
タイトルでは、以下の特権 ID を確認する必要があります。 詳細については、「XR-045: Xbox サービス およびアカウント特権」を参照してください。
特権 ID | 特権名 | 列挙型定数 | 説明 |
---|---|---|---|
254 | XPRIVILEGE_MULTIPLAYER_SESSIONS |
XUserPrivilege::Multiplayer |
この特権がある場合、ユーザーはゲームのマルチプレイヤー セッションに参加できます。 |
185 | XPRIVILEGE_CROSS_PLAY |
XUserPrivilege::CrossPlay |
ユーザーは、Xbox サービスにサインインしていない他の実世界のユーザーとのゲームプレイ セッションに参加できます。 シナリオの例としては、同一セッション内での同期的なユーザー対ユーザーのゲームプレイ、非同期的なターンベースのゲームプレイ、チームベースのゲームプレイ、ユーザー主導のマッチメイキング、招待の送信または受信、進行中のセッションへの参加などがあります。 |
252 | XPRIVILEGE_COMMUNICATIONS |
XUserPrivilege::Communications |
この特権がある場合、ユーザーはだれとでもボイス チャットや非同期のテキスト メッセージングを利用できます。 ユーザーが誰と通信することを許可されているかを判断するために、追加のプライバシー許可の確認が必要です。 |
189 | XPRIVILEGE_SESSIONS |
XUserPrivilege::Sessions |
ユーザーは、共有された環境で、接続されたシングルプレイヤー エクスペリエンスに参加できます。 これらのエクスペリエンスには、特権 252 (XPRIVILEGE_COMMUNICATIONS ) または 254 (XPRIVILEGE_MULTIPLAYER_SESSIONS ) でカバーされる機能が含まれてはなりません。 この権限の使用は、プラットフォームの承認が必要なタイトルの機能です。 |
247 | XPRIVILEGE_USER_CREATED_CONTENT |
XUserPrivilege::UserGeneratedContent |
この特権がある場合、ユーザーはオンラインでユーザーが作成したコンテンツをダウンロードして見ることができます。 |
220 | XPRIVILEGE_SOCIAL_NETWORK_SHARING |
XUserPrivilege::SocialNetworkSharing |
この特権がある場合、ユーザーはソーシャル ネットワーク上で進行状況の情報を共有できます。 |
利用可能な特権の詳細については、「XUserPrivilege」を参照してください。
特権の計算ロジック
特権は、コンソールや他のデバイスで同時にサインインしている各ユーザーごとに別個に計算されます。 特権は、ユーザー、デバイス、現在実行中のタイトル、およびプラットフォームの有効な資格に基づいて追加されます。 次に、保護者による制限、Xbox サービスのポリシーとエンフォースメント状況、各ユーザーのゲスト ステータスに基づいて、各ユーザーの特権が削除されます。
ユーザーが購入したサブスクリプション、同時にログインした他のユーザーが購入したサブスクリプション、デバイスに直接関連付けられたサブスクリプションなどが、有効な資格となる可能性があります。 有効な資格は、「週末の無料マルチプレイ」など、プロモーション用オファーによって付与される場合もあります。
デバイスの種類から得られる特権の資格
特定の種類のデバイス (Xbox One ファミリー本体、Xbox Series 本体、Windows PC、モバイルなど) では、そのプラットフォームから Xbox サービスに接続したすべてのユーザーに対して一連の権限が自動的に付与されます。
サブスクリプションによって付与される有効な特権資格
サブスクリプション製品は、該当するユーザーに特権のコレクションを提供する場合があります。 次のシナリオは、ユーザーにサブスクリプション ベースの特権を効果的に付与する方法です。
- ユーザーがメンバーシップ製品を購入した。
- 同じデバイスでアクティブな別のユーザーがメンバーシップ製品を購入した。
- メンバーシップ製品は、ユーザーが現在使用しているデバイスに関連付けられています。
Xbox One 以降、Xbox Live Gold サブスクリプションは上記のロジックに従っています。 デバイスに Xbox Live Gold サブスクリプションを関連付けることができ、デバイス上のすべてのユーザは実質的に、Xbox Live Gold サブスクリプション層に関連付けられた特権を受けることができます。 スポンサー付きゲストを含め、Xbox Live Gold サブスクリプションを購入したユーザと同時にデバイス上でアクティブになっているユーザは、Xbox Live Gold サブスクリプションに関連した特典を実質的に受けることができます。
パートナー メンバーシップは、アクティブなユーザーに特権を発行する場合にも使用されます。 また、パートナー サブスクリプションに関連付けられている特権は、参加している特定のタイトルが現在実行されている場合にのみ発行することができます。
プロモーション用の資格
プロモーション用の資格によって、特定の動的な条件を満たすユーザーに、限られた期間中のみ特権が追加されます。 たとえば、プロモーションで、週末の間、特定のユーザーにマルチプレイヤー特権を付与することができます。 「週末の Xbox Live Gold 無料」などの従来型プロモーションは、プロモーション用の資格のモデルに従います。
注意
サービスやタイトルは、このようなプロモーションを直接意識する必要はありません。 プロモーション用の資格による特権は、サービスに接続したユーザーに Xbox Security Token Service (XSTS) トークンが発行される際に動的に計算されます。
スポンサード ゲスト アカウントで削除される特権
スポンサード ゲストとは、Xbox サービスでサインインしているゲスト ユーザーのことです。 スポンサード ゲストは、クライアント デバイス上に少なくとも 1 人の他のアクティブなユーザーが存在する場合にのみ存在します。例えば、1 人のユーザーしかサインインしていない分割画面のマルチプレイヤーゲームなどがあります。 スポンサード ゲストは認証済みユーザーであり、その他の認証済みユーザーと同様にトークンを取得します。 スポンサード ゲストには特権がありますが、スポンサード ゲストの資格情報が有効かどうか、またアプリが現在実行中であるかどうかに関係なく、ゲスト ユーザーの一部の特権は常に保留されます。
スポンサード ゲストの特典については、XUserCheckPrivilege
にお問い合わせください。 これでは解決しようとしません。
スポンサード ゲストは「解決」できないので、解決 UI を表示する必要はなく、XUserResolvePrivilegeWithUiAsync
を呼び出す必要もないはずです。 アクティブな Xbox サービス アカウントとは異なり、スポンサード ゲストには、購入、エンフォースメント アクションの実行、または固有の特権または制限のセットはありません。
ユーザーが現在サインインしていない場合 (「純粋なゲスト」の場合)、そのユーザーのためのトークンは発行されません。 これは、コンソール上のどのユーザーについても有効な特権が計算されないことを意味します。
XR-045では、タイトルが XPRIVILEGE_SOCIAL_NETWORK_SHARING
または XUserPrivilege::SocialNetworkSharing
で特権 202 を確認する必要があります。 これは、ゲストに対して削除される特権の 1 つです。
オンラインの安全性と Microsoft による執行
Xbox サービス ポリシーとエンフォースメント モデレーターは、使用しているユーザーやデバイスから特権を削除する場合があります。
保護者による制限
保護者は、子供のメンバーシップや現在実行されているタイトルに関係なく、家庭の子供のアカウントから特権を削除することができます。 これは、Xbox One、Xbox 360、または Xbox.com クライアントを介して制御されます。
Xbox Live Gold サブスクリプションに対する特権
特定のメンバーシップにおける特権の資格に関するポリシーは動的なものであり、時間の経過と共に変化します。 なお、あるサブスクライバーが特権を持つ場合でも、保護者による制限の変更やエンフォースメント ポリシーにより、そのサブスクライバーが特権を失う可能性があることに留意してください。
注意
特権は、ユーザーの現在のメンバーシップを正確に反映するものではありません。
XR-045では、タイトルが XPRIVILEGE_MULTIPLAYER_SESSIONS
または XUserPrivilege::Multiplayer
で特権 254 を確認する必要があります。 これは、Xbox Live Gold サブスクライバーに付与される特権の 1 つです。
パートナー メンバーシップと特権
Xbox サービス特権のコレクションを付与するように、パートナー メンバーシップを構成することができます。 パートナー メンバーシップは、メンバーシップに明示的に関連付けられているアプリにユーザーがログインしているときにユーザーの権限を計算する場合にのみ使用されます。
パートナー メンバーシップを設定するには、Microsoft アカウント マネージャーにお問い合わせください。
パートナー メンバーシップは、リリースする前に、開発サンドボックスでテストできます。 これらの開発サンドボックスの使用を承認されているユーザーおよびデバイスのみが、これらのメンバーシップを購入することができます。
フリー トゥ プレイ (F2P) タイトルとマルチプレイヤーの特権
フリー トゥ プレイ (F2P) モデルで動作するように特別に構成されているタイトルの場合、通常通り XPRIVILEGE_MULTIPLAYER_SESSIONS
/ XUserPrivilege::Multiplayer
の特権を確認する必要があります。 ただし、この設定を使用すると、ユーザーは Xbox Live Gold に加入しているかどうかに関係なく、マルチプレイの特権を得ることができます。 この権限は、ユーザーが禁止/ブロックされている場合、または何らかの方法で年齢制限されている場合にのみ拒否されます。 この権限の使用は、プラットフォームの承認が必要なタイトルの機能です。 Microsoft マネージャーまたは DPM と協力して、タイトルでこの機能を有効にします。
ハイブリッド タイトルとマルチプレイヤーの特権
特にハイブリッド モデルで構成されたタイトル、つまり、有料サブスクリプションが必要なマルチプレイヤー シナリオを含む一方で、無料でプレイできるシナリオを含むタイトルの場合、特権チェックのプロセスは若干異なります。
有料コンテンツの場合は、XPRIVILEGE_MULTIPLAYER_SESSIONS
/ XUserPrivilege::Multiplayer
特権を確認する必要があります。 しかし、無料のマルチプレイヤー シナリオでは、代わりに XPRIVILEGE_SESSIONS
/ XUserPrivilege::Sessions
特権を確認する必要があります。 この権限は、ユーザーが禁止/ブロックされている場合、または何らかの方法で年齢制限されている場合にのみ拒否されます。 マルチプレイヤー権限もこれらの理由で拒否されますが、付与されるには有料のサブスクリプションが必要です。 この権限の使用は、プラットフォームの承認が必要なタイトルの機能です。 Microsoft マネージャーまたは DPM と協力して、タイトルでこの機能を有効にします。