Table des matières
- Prérequis
- Gestion côté client et expérience du joueur pour les privilèges et la vente incitative
- Bonnes pratiques de gestion des privilèges côté application
- Test du contrôle d’accès basé sur les privilèges dans vos jeux
- ID de privilège à vérifier
Prérequis
Pour gérer les privilèges utilisateur dans votre application cliente des services XBOX, configurez votre jeu pour l’authentification auprès des services XBOX. Pour plus d’informations, consultez Vue d’ensemble de l’authentification et de la connexion et Vue d’ensemble des privilèges utilisateur des services XBOX.Gestion côté client et expérience du joueur pour les privilèges et la vente incitative
Les applications clientes sont soumises à des exigences XBOX (XR) qui imposent que des privilèges contrôlent une partie du jeu, comme la XR-045 : XBOX services and Account Privileges. Pour plus d’informations, consultez Stratégies et exigences XBOX. Pour les jeux contrôlés par des privilèges, vous pouvez utiliser des API. XUserCheckPrivilege détermine si un joueur dispose d’un privilège spécifique. XUserResolvePrivilegeWithUiAsync affiche une interface utilisateur (UI) qui aide les joueurs à résoudre les problèmes liés au privilège spécifié. L’interface explique pourquoi le joueur ne dispose pas d’un privilège. Par exemple, un jeu soumis au privilègeXPRIVILEGE_MULTIPLAYER_SESSIONS suit le flux ci-dessous.
- Le joueur voit une option permettant de démarrer une session multijoueur et tente de lancer une partie en sélectionnant l’option appropriée dans l’interface.
- Le jeu vérifie l’« indice » à l’aide de l’API
XUserCheckPrivilege.- S’il est présent, considérez que le joueur dispose du privilège et poursuivez.
- S’il n’est pas présent, passez à l’étape suivante.
[!NOTE] Les API des services XBOX renvoient un code d’état 403 (
HTTP_E_STATUS_FORBIDDEN) lorsque l’accès à une fonctionnalité est refusé en raison d’un privilège manquant dans le XToken. Tous les points de terminaison des services XBOX appliquent le contrôle d’accès basé sur les privilèges lorsque cela est approprié. - En réponse au code d’échec, le jeu appelle alors
XUserResolvePrivilegeWithUiAsyncavec l’ID de privilège approprié correspondant à celui que vous essayez de résoudre. Cette fonction appelle les services XBOX pour vérifier si le joueur dispose du privilège, puis indique au joueur pourquoi l’action a échoué ou lui affiche l’interface permettant de résoudre le problème. Cet appel d’API peut entraîner les résultats suivants.- Afficher l’interface relative à l’état d’application des sanctions du joueur émis par les modérateurs des stratégies et de l’application des règles des services XBOX.
- Afficher l’interface relative au contrôle parental.
- Promouvoir un service d’abonnement applicable, comme un abonnement XBOX Game Pass Essential.
- Renvoyer le résultat au jeu (réussite ou échec, avec une raison).
[!NOTE] Si les services XBOX ou le réseau sont inaccessibles,
XUserResolvePrivilegeWithUiAsyncéchoue. Cet échec doit être traité comme si le joueur ne disposait pas du privilège. - Au retour de
XUserResolvePrivilegeWithUiAsync:- Si un échec est renvoyé, le jeu doit permettre au joueur de continuer à sélectionner le bouton, car (par exemple) les bannissements du joueur peuvent expirer ou le contrôle parental peut changer.
- Si une réussite est renvoyée, le problème du joueur a été résolu et votre jeu peut tenter à nouveau l’action.
Le jeton du joueur contiendra les privilèges nécessaires à l’issue de la résolution effectuée par
XUserResolvePrivilegeWithUiAsync.
Les privilèges sont des vérifications de haut niveau qui répondent à la question « Puis-je ? »
Pour plus d’informations sur les privilèges applicables à votre titre, consultez la XR-015 dans la rubrique Stratégies et exigences XBOX.
Exemple de code
Utilisez l’exemple de code suivant pour vous assurer de vérifier les privilèges multijoueur d’un joueur avant d’accéder aux fonctionnalités multijoueur de votre titre.Bonnes pratiques de gestion des privilèges côté application
Lorsque vous gérez les privilèges utilisateur dans votre titre, veillez à appliquer les bonnes pratiques suivantes.Fréquence de résolution des privilèges dans l’application
Pour les vérifications de privilèges, l’exigence est de s’assurer, une fois par lancement, que le joueur dispose des privilèges appropriés et de les résoudre. Nous recommandons d’effectuer la vérification à chaque session logique et à chaque action distincte. Votre définition d’une session peut varier considérablement selon l’utilisation de votre application. Voici des exemples de bonnes pratiques.- Pour les applications de streaming multimédia, comme les lecteurs vidéo, résolvez les vérifications de privilèges à chaque sélection du bouton Lecture (début du flux) ou au début d’une playlist (pour plusieurs flux, comme une playlist musicale).
- Pour les applications de messagerie, vérifiez les privilèges une fois, pour le premier message envoyé.
- Pour les jeux multijoueur qui utilisent des services de matchmaking tiers, résolvez les vérifications de privilèges au début de chaque session (partie).
Ne jamais présumer du niveau d’abonnement d’un utilisateur
Historiquement, les revendications de la XBOX 360 fournissaient des informations sur le niveau d’abonnement du joueur (comme le statut XBOX Game Pass Essential). Cette revendication a été dépréciée avec l’introduction de la famille XBOX One et des générations suivantes. Veillez à prendre vos décisions en vous fondant sur les privilèges. Le niveau de l’utilisateur, ou la façon dont il a obtenu un privilège, doit rester opaque pour l’application.Mode hors ligne
SiXUserCheckPrivilege indique que le service est indisponible ou inaccessible, traitez ce résultat comme si la vérification du privilège avait échoué.
Ainsi, votre jeu dispose d’une sécurité qui lui permet de rester conforme aux XR.
Cibler le bon joueur
Nous vous recommandons de toujours faire référence au joueur agissant si aucun autre joueur n’est spécifié pour la vérification du privilège. Si votre jeu permet de désigner un utilisateur, utilisez l’utilisateur actuellement désigné. Par exemple, trois joueurs sont connectés : Bill, Bob et Beth. Votre jeu permet de basculer entre les « joueurs actifs » pour désigner celui dont les recommandations, l’historique et les paramètres doivent être utilisés. Beth a lancé votre application. Pendant l’exécution de votre jeu, le joueur actif est passé à Bob. Bob dispose d’un profil, d’un ensemble de recommandations et d’un historique distincts. AppelezXUserCheckPrivilege pour lancer une vérification de privilège pour Bob.
Vérification sans interface ou avec l’interface hors focus
Il arrive que votre jeu ne puisse pas afficher de fenêtre modale, ce qui bloque l’expérience utilisateur de la vérification de privilège. Par exemple, lorsque le jeu diffuse de la musique en arrière-plan, ou lors d’appels entrants alors que l’application Skype s’exécute en arrière-plan. Votre jeu doit néanmoins vérifier le privilège. Nous vous recommandons d’appelerXUserCheckPrivilege.
XUserCheckPrivilege renvoie l’état d’autorisation actuel de l’utilisateur, ou un échec applicable, au lieu d’afficher l’interface.
Votre jeu peut agir sur le joueur en fonction de ses privilèges et l’informer de la vérification
du privilège lorsque votre jeu reprend le focus.
À l’inverse, votre titre peut afficher au joueur des informations d’erreur non modales, ou une autre expérience utilisateur, selon vos besoins.
Lorsqu’il est approprié d’afficher au joueur une expérience bloquante, appelez à nouveau XUserResolvePrivilegeWithUiAsync pour afficher l’expérience adéquate, comme la vente incitative ou l’état d’application des sanctions.
Test du contrôle d’accès basé sur les privilèges dans vos jeux
Les privilèges sont calculés à partir des données suivantes.- Droits d’abonnement effectifs du joueur
- Droits de privilège effectifs de l’appareil
- Droits de privilège effectifs de la plateforme cliente
- Droits de privilège effectifs du jeu en cours
- Il est possible d’empaqueter un jeu avec un ensemble de privilèges afin que tous les joueurs du jeu obtiennent automatiquement ces privilèges pour une utilisation dans le jeu en cours d’exécution. Si votre jeu nécessite cette fonctionnalité, contactez votre gestionnaire de compte Microsoft.
- Contrôle parental permettant aux parents de décider des privilèges à ajouter ou à retirer pour les enfants de leur famille
- Les modérateurs XBOX peuvent supprimer des privilèges pour les joueurs ou les appareils identifiés comme abusant du service
Gestion et vérification des privilèges et autorisations des joueurs
Les paramètres de confidentialité des joueurs sont accessibles de deux façons.- Sur PC : accédez à https://aka.ms/XboxPrivSettings.
- Sur XBOX : accédez à Paramètres -> Général -> Sécurité en ligne et famille -> Confidentialité et sécurité en ligne -> Confidentialité XBOX
Privilèges vérifiés avec XUserCheckPrivilege
XUserPrivilege::CrossPlay
- Description : permet à un joueur de participer à une session de jeu avec d’autres joueurs réels qui ne sont pas connectés aux services XBOX, dans des scénarios tels que : gameplay joueur contre joueur synchrone dans la même session, gameplay asynchrone au tour par tour, gameplay en équipe, matchmaking initié par l’utilisateur, envoi ou acceptation d’invitations, sessions avec jonction en cours de partie.
- Exigence : XR-045 - XBOX services and Account Privileges
- ID de privilège : 185
- Paramètre sur PC : Vous pouvez jouer avec des personnes en dehors des services XBOX
- Paramètre sur XBOX : Vous pouvez rejoindre le jeu entre réseaux
XUserPrivilege::Sessions
- Description : permet à un joueur de participer à des expériences solo connectées dans des environnements partagés, ou dans des scénarios où un titre hybride, à la fois free-to-play et multijoueur payant, utilise ce privilège pour contrôler ces expériences sur les consoles XBOX. Les expériences solo ne doivent comporter aucune fonctionnalité couverte par les privilèges 252 ou 254 (respectivement Communications et Multiplayer). L’utilisation de ce privilège est une fonctionnalité de titre qui nécessite l’approbation de la plateforme.
- Exigence : XR-045 - XBOX services and Account Privileges
- ID de privilège : 189
- Paramètre sur PC : Vous pouvez rejoindre des jeux multijoueur
- Paramètre sur XBOX : Vous pouvez rejoindre des jeux multijoueur
XUserPrivilege::Multiplayer
- Description : permet à un joueur de rejoindre des sessions de jeu multijoueur en ligne avec des utilisateurs réels (et non des bots), dans des scénarios tels que : gameplay joueur contre joueur synchrone dans la même session, gameplay asynchrone au tour par tour, gameplay en équipe, matchmaking initié par l’utilisateur, envoi ou acceptation d’invitations, sessions avec jonction en cours de partie. Notez que ce privilège ne concerne pas les jeux multijoueur locaux exécutés sur le même appareil.
- Exigence : XR-045 - XBOX services and Account Privileges
- ID de privilège : 254
- Paramètre sur PC : Vous pouvez rejoindre des jeux multijoueur
- Paramètre sur XBOX : Vous pouvez rejoindre des jeux multijoueur
XUserPrivilege::UserGeneratedContent
- Description : permet à un joueur de voir l’UGC d’autres utilisateurs en ligne, de télécharger l’UGC d’autres utilisateurs ou de partager son propre UGC en ligne. Cela ne restreint pas l’utilisation de l’UGC déjà téléchargé.
- Exigence : XR-045 - XBOX services and Account Privileges
- ID de privilège : 247
- Paramètre sur PC : Vous pouvez voir et charger des créations de la communauté
- Paramètre sur XBOX : Vous pouvez voir et charger des créations de la communauté
XUserPrivilege::SocialNetworkSharing
- Description : consoles XBOX uniquement : permet à un joueur de partager des informations, notamment la progression dans le jeu, le contenu généré par Kinect, les clips de jeu, etc., en dehors du réseau XBOX.
- Exigence : XR-045 - XBOX services and Account Privileges
- ID de privilège : 220
- Paramètre sur XBOX : Vous pouvez partager en dehors de XBOX
XUserPrivilege::Communications
- Description : permet à un joueur de communiquer avec n’importe quel autre utilisateur des services XBOX par la voix ou le texte.
- Exigence : XR-045 - XBOX services and Account Privileges
- ID de privilège : 252
- Paramètre sur PC : Les autres peuvent communiquer par la voix, le texte ou des invitations
- Paramètre sur XBOX : Les autres peuvent communiquer par la voix, le texte ou des invitations
Autorisations vérifiées avec XblPrivacyCheckPermissionAsync
Les titres peuvent également utiliser XblPrivacyBatchCheckPermissionAsync lorsque les autorisations doivent être vérifiées pour plusieurs utilisateurs, et XblPrivacyCheckPermissionForAnonymousUserAsync lors de la vérification des autorisations pour un utilisateur qui n’appartient pas aux services XBOX.XblPermission::CommunicateUsingText
- Description : vérifie si le joueur peut envoyer un message au contenu textuel à l’utilisateur cible. Cette valeur ne change pas si le joueur a ignoré (mute) l’utilisateur cible. Utilisez plutôt CommunicateUsingVoice. Cette valeur est false si, par exemple, vous avez limité vos communications aux amis uniquement et que la cible n’est pas un ami. Cette valeur est false si, par exemple, le joueur cible vous a bloqué. Cette valeur est false si, par exemple, vous avez défini vos paramètres de communication sur Bloqué.
- Exigence : XR-015 - Managing Player Communication
- Lors de la vérification d’un autre utilisateur des services XBOX
- Paramètre sur PC : Les autres peuvent communiquer par la voix, le texte ou des invitations
- Paramètre sur XBOX : Les autres peuvent communiquer par la voix, le texte ou des invitations
- Lors de la vérification d’un utilisateur anonyme
- Paramètre sur PC : Vous pouvez communiquer en dehors des services XBOX par la voix et le texte
- Paramètre sur XBOX : Vous pouvez communiquer en dehors de XBOX par la voix et le texte
- Lors de la vérification d’un autre utilisateur des services XBOX
XblPermission::CommunicateUsingVoice
- Description : vérifie si le joueur peut communiquer par la voix avec l’utilisateur cible. Cette valeur est false si le joueur a ignoré (mute) l’utilisateur cible.
- Exigence : XR-015 - Managing Player Communication
- Lors de la vérification d’un autre utilisateur des services XBOX
- Paramètre sur PC : Les autres peuvent communiquer par la voix, le texte ou des invitations
- Paramètre sur XBOX : Les autres peuvent communiquer par la voix, le texte ou des invitations
- Lors de la vérification d’un utilisateur anonyme
- Paramètre sur PC : Vous pouvez communiquer en dehors des services XBOX par la voix et le texte
- Paramètre sur XBOX : Vous pouvez communiquer en dehors de XBOX par la voix et le texte
- Lors de la vérification d’un autre utilisateur des services XBOX
Test des privilèges fournis par les abonnements
Vous pouvez créer des comptes de test disposant d’un abonnement XBOX Game Pass Essential à l’aide de Partner Center. Utilisez ces comptes pour tester votre logique de privilèges pour les privilèges offerts par un abonnement XBOX Game Pass Essential. Vous pouvez acheter d’autres abonnements à l’aide de votre compte de test sur un client de développement.L’abonnement doit être publié dans un sandbox de développement dans lequel votre compte ou votre appareil est autorisé, et le compte du client de développement doit être actif dans le même sandbox.
Test des privilèges fournis par le jeu en cours d’exécution
Si vous souhaitez configurer un jeu pour qu’il accorde automatiquement des privilèges aux joueurs lorsqu’ils sont dans le jeu, contactez votre gestionnaire de compte Microsoft. Le test de ce scénario nécessite de configurer votre jeu pour l’authentification auprès des services XBOX et d’exécuter le jeu avec des joueurs connectés.Test des privilèges retirés par le contrôle parental
Pour tester votre logique de privilèges avec des privilèges pouvant être retirés par le contrôle parental (commeXPRIVILEGE_COMMUNICATIONS), configurez des comptes familiaux sur l’appareil client.
Les parents ou tuteurs peuvent utiliser l’appareil pour restreindre les privilèges des enfants de leur famille.
Un joueur peut également restreindre les privilèges de son propre compte.
Nous vous recommandons d’utiliser cette méthode pour tester les scénarios qui nécessitent la restriction des privilèges d’un utilisateur.
Partner Center ne permet pas actuellement de créer des familles de comptes de test.
ID de privilège à vérifier
Votre titre doit vérifier les ID de privilège suivants. Pour plus d’informations, consultez XR-045 : XBOX services and Account Privileges.
Pour plus d’informations sur les privilèges disponibles, consultez XUserPrivilege.
Logique de calcul des privilèges
Les privilèges sont calculés indépendamment pour chaque joueur connecté simultanément sur une console ou un autre appareil. Des privilèges sont ajoutés à partir des droits effectifs de l’utilisateur, de l’appareil, du titre en cours d’exécution et de la plateforme. Des privilèges sont ensuite retirés pour chaque joueur en fonction du contrôle parental, de l’état des stratégies et de l’application des sanctions des services XBOX, et du statut d’invité de chaque utilisateur. Les droits effectifs peuvent provenir d’abonnements achetés par l’utilisateur, achetés par d’autres utilisateurs connectés en même temps, ou d’abonnements directement associés à un appareil. Les droits effectifs peuvent également provenir d’offres promotionnelles, comme les événements « Week-end multijoueur gratuit ».Droits de privilège liés au type d’appareil
Certains types d’appareils (comme les consoles de la famille XBOX One et XBOX Series, les PC Windows ou les appareils mobiles) accordent automatiquement un ensemble de privilèges à tout joueur qui se connecte aux services XBOX depuis la plateforme.Droits de privilège effectifs liés aux abonnements
Les produits d’abonnement peuvent fournir un ensemble de privilèges aux utilisateurs concernés. Voici les scénarios dans lesquels un joueur se voit effectivement accorder des privilèges basés sur un abonnement.- Le joueur a acheté le produit d’abonnement.
- Un autre joueur actif sur le même appareil a acheté le produit d’abonnement.
- Le produit d’abonnement est associé à l’appareil que le joueur utilise actuellement.
Droits promotionnels
Les droits promotionnels ajoutent des privilèges pendant une période limitée aux utilisateurs qui répondent à certains critères dynamiques. Par exemple, une promotion peut offrir le privilège multijoueur à certains utilisateurs pendant la durée d’un week-end. Les promotions passées, comme un « Week-end XBOX Game Pass Essential gratuit », suivent le modèle des droits promotionnels.Vos services et vos titres n’ont pas besoin d’avoir directement connaissance de promotions de ce type.
Privilèges retirés aux comptes invités parrainés
Les invités parrainés sont des comptes invités connectés aux services XBOX. Les invités parrainés n’existent qu’en présence d’au moins un autre joueur actif sur l’appareil client, par exemple dans un jeu multijoueur en écran partagé où un seul joueur est connecté. Ces comptes sont des utilisateurs authentifiés et obtiennent un jeton comme n’importe quel autre utilisateur authentifié. Les invités parrainés disposent de privilèges, mais certains privilèges ne sont pas accordés aux joueurs invités, quels que soient les droits effectifs de l’invité parrainé ou le jeu en cours d’exécution. Pour vérifier les privilèges des invités parrainés, appelezXUserCheckPrivilege. Cette fonction ne tente pas de résolution.
Vous n’avez pas besoin d’afficher d’interface de résolution ni d’appeler XUserResolvePrivilegeWithUiAsync, car les invités parrainés ne peuvent pas être « résolus ». Contrairement aux comptes XBOX actifs, les invités parrainés n’ont aucun moyen d’effectuer des achats, ne peuvent pas faire l’objet de sanctions et ne disposent pas d’un ensemble unique de privilèges ou de restrictions.
Si un joueur n’est pas connecté (comme c’est le cas d’un « invité pur »), aucun jeton n’est émis pour l’utilisateur.
Cela signifie qu’aucun privilège effectif n’est calculé pour aucun joueur de l’appareil.
La XR-045 exige que votre titre vérifie le privilège 220 à l’aide de XPRIVILEGE_SOCIAL_NETWORK_SHARING ou de XUserPrivilege::SocialNetworkSharing. Il s’agit de l’un des privilèges retirés aux invités.
Sécurité en ligne et application des règles par Microsoft
Les modérateurs des stratégies et de l’application des règles des services XBOX peuvent retirer des privilèges aux utilisateurs ou appareils abusifs.Contrôle parental
Les parents peuvent retirer des privilèges aux comptes enfants de leur famille, quels que soient l’abonnement de l’enfant ou le titre en cours d’exécution. Cette gestion s’effectue via la console XBOX ou l’application XBOX Family Settings de Xbox.com.Privilèges des abonnés XBOX Game Pass Essential
Les stratégies relatives aux droits de privilège d’un abonnement donné sont dynamiques et évolueront au fil du temps. N’oubliez pas que même si un abonné bénéficie d’un privilège, il peut le perdre en raison de modifications du contrôle parental ou des stratégies d’application des règles.Les privilèges ne reflètent pas fidèlement l’abonnement actuel d’un utilisateur.
XPRIVILEGE_MULTIPLAYER_SESSIONS ou de XUserPrivilege::Multiplayer. Il s’agit de l’un des privilèges dont bénéficient les abonnés XBOX Game Pass Essential.
Abonnements partenaires et privilèges
Il est possible de configurer des abonnements partenaires pour fournir un ensemble de privilèges des services XBOX. Les abonnements partenaires ne sont utilisés pour calculer les privilèges d’un joueur que lorsque celui-ci est connecté à des jeux explicitement associés à l’abonnement. Pour configurer des abonnements partenaires, contactez votre gestionnaire de compte Microsoft. Les abonnements partenaires peuvent être testés dans des sandboxes de développement avant leur publication. Seuls les utilisateurs et les appareils autorisés à utiliser ces sandboxes de développement peuvent acheter ces abonnements.Titres free-to-play et privilèges multijoueur
Pour les titres spécifiquement configurés pour fonctionner selon un modèle free-to-play (F2P), le privilègeXPRIVILEGE_MULTIPLAYER_SESSIONS / XUserPrivilege::Multiplayer doit être vérifié, comme d’habitude. Cependant, avec cette configuration, les utilisateurs disposent du privilège multijoueur, qu’ils aient ou non un abonnement XBOX Game Pass Essential. Ce privilège n’est refusé que si un joueur est banni ou bloqué, ou soumis à une restriction d’âge. L’utilisation de ce privilège est une fonctionnalité de titre qui nécessite l’approbation de la plateforme. Collaborez avec votre gestionnaire Microsoft ou votre Developer Partner Manager (DPM) pour activer cette fonctionnalité pour votre titre.
Titres hybrides et privilèges multijoueur
Pour les titres spécifiquement configurés pour fonctionner selon un modèle hybride (c’est-à-dire les titres qui contiennent des scénarios multijoueur nécessitant un abonnement payant, mais aussi des scénarios jouables gratuitement), le processus de vérification des privilèges est légèrement différent. Pour le contenu qui nécessite un abonnement payant, le privilègeXPRIVILEGE_MULTIPLAYER_SESSIONS / XUserPrivilege::Multiplayer doit être vérifié. Pour les scénarios multijoueur gratuits, c’est en revanche le privilège XPRIVILEGE_SESSIONS / XUserPrivilege::Sessions qui est vérifié. Ce privilège n’est refusé que si un joueur est banni ou bloqué, ou soumis à une restriction d’âge. Le privilège Multiplayer est également refusé pour ces raisons, mais son octroi nécessite en outre un abonnement payant. L’utilisation de ce privilège est une fonctionnalité de titre qui nécessite l’approbation de la plateforme. Collaborez avec votre gestionnaire Microsoft ou votre DPM pour activer cette fonctionnalité pour votre titre.
