Authentification des utilisateurs
Dans Steam, les utilisateurs sont toujours « connectés » lorsque le client lance le jeu. Le jeu peut toujours accéder au Steam ID de l’utilisateur sans rien faire d’autre qu’initialiser l’API. Dans Steam, l’authentification désigne le processus consistant à vérifier si l’identité prédéfinie d’un utilisateur correspond bien à l’utilisateur connecté au client qui a lancé le jeu, à l’aide de l’APIISteamUser avec des tickets de session (en pair à pair ou avec un serveur dédié), des tickets d’application chiffrés (avec un serveur sécurisé) ou de l’API Web Steam. Après l’authentification, les API Web Steam ou ISteamUser peuvent utiliser des tickets pour vérifier la propriété du jeu actuel ou de son contenu téléchargeable (DLC).
Cette étape de vérification est inutile dans le Microsoft Game Development Kit (GDK) XBOX, car vous avez déjà effectué la vérification lorsque vous avez connecté l’utilisateur en suivant les étapes de Initialisation du Microsoft Game Development Kit (GDK) XBOX. Ainsi, le Microsoft Game Development Kit (GDK) XBOX ne dispose d’aucun équivalent aux tickets de session Steam ou aux tickets d’application chiffrés pour vérifier l’identité d’un utilisateur lors des sessions multijoueurs.
Propriété et gestion des droits numériques (DRM)
Pour vérifier que l’utilisateur dispose d’un droit d’utilisation pour le jeu auquel il joue actuellement, vous devez utiliser la fonctionXStoreQueryGameLicenseAsync de l’API XStore pour vérifier que l’utilisateur possède une licence pour jouer à ce jeu. Dans le rappel asynchrone, vérifiez si :
- La requête a réussi (c’est-à-dire que l’utilisateur possède une licence).
- La licence fournie par
XStoreQueryGameLicenseResultest toujours active.
ISteamUser/CheckAppOwnership dans l’API Web Steam ou de l’appel de SteamEncryptedAppTicket::BIsTicketForApp avec un ticket d’application.
Pour plus d’informations et un exemple de code permettant d’effectuer cette vérification, consultez XStore : DRM de base et vérifications de licence. Cette rubrique contient également des informations sur des options de vérification de licence plus robustes qui permettent d’empêcher toute falsification visant à contourner cette vérification côté client.
Steam fournit également un wrapper DRM qui n’a pas d’équivalent dans le Microsoft Game Development Kit (GDK) XBOX. Le Microsoft Store effectue une vérification antipiratage lors du lancement des applications installées à partir de celui-ci. Pour une protection DRM complète, nous vous recommandons d’utiliser une solution tierce en plus de la vérification de licence présentée dans l’exemple de code lié.
Vérification de la propriété des DLC
Si votre jeu est associé à des DLC, vous pouvez vérifier si le compte Microsoft Store d’un utilisateur a accès à un article à l’aide de l’APIXStore. Pour vérifier ces licences, vous devez d’abord interroger tous les produits associés à votre jeu à l’aide de la fonction XStoreQueryAssociatedProductsAsync, puis utiliser la fonction XStoreAcquireLicenseForPackageAsync, similaire aux fonctions ISteamUser/CheckAppOwnership ou ISteamUser::UserHasLicenseForApp, pour obtenir la licence d’un DLC spécifique de la liste renvoyée par votre requête.
Comme pour la vérification des droits d’utilisation des jeux, vous devez vérifier si la licence a bien été acquise et si elle est active. Si les deux vérifications réussissent, vous pouvez considérer que l’utilisateur dispose d’une licence pour accéder à ce DLC. Pour un exemple de code illustrant ce processus, consultez Gérer les packages facultatifs (DLC) et leurs licences.
