Passer au contenu principal
Steamworks et le XBOX Game Development Kit (GDK) fournissent des API pour authentifier les utilisateurs et vérifier qu’ils possèdent le titre auquel ils jouent ou le contenu supplémentaire auquel ils tentent d’accéder. Ces API ne visent toutefois pas exactement les mêmes objectifs. L’API Steam vérifie l’identité d’un utilisateur pour les sessions multijoueurs et utilise la vérification de propriété pour confirmer que l’utilisateur joue à une copie légitime du jeu provenant de la boutique Steam. Le XBOX Game Development Kit (GDK), en revanche, doit connecter l’utilisateur, ce qui vérifie implicitement son identité auprès des XBOX services, et vérifie indépendamment si le compte Microsoft Store actuel dispose d’un droit d’utilisation du jeu. Dans le XBOX Game Development Kit (GDK), les deux API utilisées pour l’authentification et la propriété ciblent des plateformes différentes et, dans certains cas, des comptes entièrement différents. Pour cette raison, nous utiliserons le terme ayant droit pour désigner un utilisateur qui possède une licence valide de Microsoft Store pour jouer au jeu actuel. Pour plus d’information à ce sujet et sur ses implications, consultez la section Différences de gestion des licences entre les deux plateformes, plus loin dans cette rubrique.

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 qui consiste à 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’API ISteamUser 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 la Steam Web API. Après l’authentification, les API Steam Web 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 XBOX Game Development Kit (GDK), car vous avez déjà effectué la vérification lorsque vous avez connecté l’utilisateur en suivant les étapes de Initialisation du XBOX Game Development Kit (GDK). Ainsi, le XBOX Game Development Kit (GDK) n’a pas d’équivalent aux tickets de session ou aux tickets d’application chiffrés de Steam pour vérifier l’identité d’un utilisateur dans les sessions multijoueurs.

Propriété et gestion des droits numériques (DRM)

Pour vérifier que l’utilisateur a droit au jeu auquel il joue actuellement, vous devez utiliser la fonction XStoreQueryGameLicenseAsync de l’API XStore afin de vérifier que l’utilisateur possède une licence pour jouer à ce jeu. Dans le rappel asynchrone, vérifiez si :
  1. La requête a réussi (c’est-à-dire que l’utilisateur possède une licence).
  2. La licence fournie par XStoreQueryGameLicenseResult est toujours active.
Si les deux vérifications réussissent, vous pouvez considérer que l’utilisateur a le droit de jouer à votre jeu. Dans le XBOX Game Development Kit (GDK), c’est l’équivalent le plus proche de l’utilisation de ISteamUser/CheckAppOwnership dans la Steam Web API ou de l’appel de SteamEncryptedAppTicket::BIsTicketForApp avec un ticket d’application. Pour plus d’information et un exemple de code sur cette vérification, consultez XStore : vérifications de base des DRM et des licences. Cette rubrique contient également de l’information sur des options de vérification de licence plus robustes qui existent pour 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 XBOX Game Development Kit (GDK). Microsoft Store effectue une vérification antipiratage au lancement des applications qui y ont été installées. Pour une protection DRM complète, nous vous recommandons d’utiliser une solution tierce en plus d’effectuer la vérification de licence présentée dans l’exemple de code mentionné.

Vérification de la propriété du DLC

Si votre jeu comporte du DLC associé, vous pouvez vérifier si le compte Microsoft Store d’un utilisateur a accès à un article à l’aide de l’API XStore. 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, semblable aux fonctions ISteamUser/CheckAppOwnership ou ISteamUser::UserHasLicenseForApp, pour obtenir la licence d’un article DLC précis 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 à cet article DLC. Pour un exemple de code de ce processus, consultez Gérer et accorder des licences pour les packages facultatifs (DLC).

Différences de gestion des licences entre les deux plateformes

Il est important de noter la différence de philosophie entre Steam et Microsoft Store. Dans Steam, les vérifications de licence confirment que l’utilisateur dont l’identité a été authentifiée possède une licence pour jouer au jeu actuel, soit parce qu’il l’a acheté, soit par l’intermédiaire du partage familial Steam. Le XBOX Game Development Kit (GDK), en revanche, vérifie si le compte Microsoft Store actuellement authentifié a le droit d’accéder au contenu et obtient l’identité au moyen d’un compte XBOX. Il y a une mise en garde importante : le compte Microsoft utilisé pour ces deux comptes peut ne pas être le même, même s’ils appartiennent à la même personne. Par conséquent, il est important de bien connaître les différents modèles de licence offerts par Microsoft Store si vous souhaitez limiter le nombre d’appareils différents pouvant utiliser une même licence d’un jeu ou d’un autre contenu Microsoft Store. Pour plus d’information, consultez Modèle de partage de produits pour les jeux.
Dernière modification le 6 octobre 2026