ユーザー認証
Steam では、クライアントがゲームを起動するとき、ユーザーは常に「サインイン」しています。ゲームは、API を初期化する以外は何もしなくても、常にユーザーの Steam ID にアクセスできます。Steam での認証は、ISteamUser API を使ってセッション チケット(ピア ツー ピアまたは専用サーバー)、暗号化されたアプリケーション チケット(セキュアなサーバー)、または Steam Web API を使って、ユーザーの事前設定 ID が実際にゲームを起動したクライアントにサインインしているユーザーであるかをチェックするプロセスを指します。認証後、Steam Web または ISteamUser API は、チケットを使用して現在のゲームまたはそのダウンロード可能コンテンツ (DLC) の所有権を検証できます。
この検証手順は、XBOX Game Development Kit (GDK) では不要です。XBOX Game Development Kit (GDK) の初期化 の手順でユーザーをサインインしたときに、既に検証が行われているためです。したがって、XBOX Game Development Kit (GDK) には、マルチプレイヤー セッションでユーザーの ID を検証する Steam セッション チケットや暗号化されたアプリケーション チケットに相当するものはありません。
所有権とデジタル著作権管理 (DRM)
ユーザーが現在プレイしているゲームに対するエンタイトルメントを持つことを検証するには、XStore API の XStoreQueryGameLicenseAsync 関数を使用して、ユーザーがそのゲームをプレイするライセンスを持つかチェックする必要があります。非同期コールバックで、次を確認します。
- クエリが成功した(つまり、ユーザーがライセンスを持っている)。
XStoreQueryGameLicenseResultから提供されたライセンスがまだアクティブ。
ISteamUser/CheckAppOwnership の使用や、アプリ チケットで SteamEncryptedAppTicket::BIsTicketForApp を呼び出すのに最も近い相当物です。
このチェックの実行の詳細とコード サンプルについては、XStore: Basic DRM and license checks を参照してください。このトピックには、このクライアント側チェックをバイパスする改ざんを防ぐために存在するより堅牢なライセンス チェック オプションに関する情報も含まれます。
Steam は、XBOX Game Development Kit (GDK) には相当物のない DRM ラッパーも提供します。Microsoft Store は、そこからインストールされたアプリを起動する際にアンチ海賊版チェックを行います。完全な DRM 保護のため、リンクされたコード サンプルでライセンス チェックを実行することに加えて、サード パーティのソリューションを使用することを推奨します。
DLC の所有権をチェックする
ゲームに関連付けられた DLC がある場合、XStore API を使用してユーザーの Microsoft Store アカウントがアイテムにアクセスできるかチェックできます。これらのライセンスをチェックするには、まず XStoreQueryAssociatedProductsAsync 関数を使用してゲームに関連付けられたすべての製品をクエリし、次に ISteamUser/CheckAppOwnership や ISteamUser::UserHasLicenseForApp 関数に類似した XStoreAcquireLicenseForPackageAsync 関数を使用して、クエリから返されたリスト内の特定の DLC アイテムのライセンスを取得する必要があります。
ゲームのエンタイトルメントのチェックと同様、ライセンスが正常に取得されたか、そしてアクティブであるかを確認する必要があります。両方のチェックがパスすれば、ユーザーはその DLC アイテムにアクセスするライセンスを持つと見なすことができます。このプロセスのコード サンプルについては、Manage and license optional packages (DLC) を参照してください。
