XUser. Sur PC, l’identité est liée au compte connecté à l’application Microsoft Store et utilisé pour les achats.
Sur PC, l’identité du compte de l’application Microsoft Store peut être différente de celle du compte connecté à XBOX Live et qui joue au jeu.
- User Collections ID pour s’authentifier auprès du service Collections du Microsoft Store
- User Purchase ID pour s’authentifier auprès du service Purchase du Microsoft Store
- Configurer une application Microsoft Entra ID.
- Associer votre ID d’application Microsoft Entra à votre application cliente dans Partner Center.
- Dans votre service, créer des jetons d’accès Microsoft Entra ID qui représentent votre identité d’éditeur.
- Dans votre jeu, créer une clé User Store ID qui représente l’identité de l’utilisateur et renvoyer cette clé à votre service.
- Authentifier les requêtes aux API du Microsoft Store.
- Renouveler une clé User Store ID lorsqu’elle expire.
- Votre service : back-end sécurisé qui crée des jetons d’accès Microsoft Entra et appelle les API du Store.
- Votre jeu : client qui crée des clés User Store ID pour l’utilisateur connecté et les transmet à votre service.
La bibliothèque .NET Microsoft.StoreServices et l’exemple
Pour simplifier l’intégration, utilisez Microsoft.StoreServices sur GitHub. La bibliothèque gère les flux d’authentification et de clés, et fournit des wrappers pour les appels aux services du Store. L’exemple comprend des modèles de bout en bout pour les consommables, le rapprochement des remboursements et le renouvellement des clés.Étape 1 : Configurer une application Microsoft Entra ID
Avant de pouvoir utiliser les API du Microsoft Store, créez une application Web Microsoft Entra qui identifie votre service lors des appels aux API. À partir de l’application Web inscrite, obtenez l’ID de locataire, l’ID d’application et la clé secrète afin de générer les jetons d’accès requis lors des étapes suivantes.Vous pouvez réutiliser l’ID de locataire, l’ID d’application et la clé secrète de l’application Web pour plusieurs jeux et produits de votre éditeur. Vous n’avez pas besoin d’en créer une nouvelle pour chaque jeu.
- Si ce n’est pas déjà fait, suivez les instructions de Démarrage rapide : Inscrire une application auprès de la plateforme d’identités Microsoft pour inscrire une application Web app / API auprès de Microsoft Entra ID.
[!NOTE] Lorsque vous inscrivez votre application, choisissez Web app / API comme type d’application. Ce type vous permet de récupérer une clé (également appelée secret client) pour votre application. Pour appeler les API du Microsoft Store, vous devez fournir un secret client lorsque vous demandez un jeton d’accès à Microsoft Entra ID lors d’une étape ultérieure.
- Dans le portail de gestion Azure, accédez à Microsoft Entra ID. Sélectionnez votre annuaire, App registrations dans le volet de gauche, puis votre application.
- Copiez les valeurs Application (client) ID et Directory (tenant) ID pour une utilisation ultérieure.
- Créez et copiez un nouveau secret client sous Certificates & Secrets dans le volet de gauche.
Étape 2 : Associer votre ID d’application Microsoft Entra à votre application cliente dans Partner Center
- Connectez-vous à Partner Center, puis sélectionnez votre jeu.
- Sélectionnez Services > Product collections and purchases. Entrez votre ID d’application Microsoft Entra dans l’un des champs Client ID disponibles.
- Sélectionnez Save.
- Republiez le jeu et ses extensions dans le Store.
Les produits d’extension héritent des Client ID enregistrés dans la page Product collections and purchases de leur jeu parent. Les produits de type ensemble de jeux (Game Bundle) ont leur propre page Product collections and purchases dans laquelle vous devez ajouter les Client ID.
Étape 3 : Créer des jetons d’accès Microsoft Entra ID
Toutes les requêtes d’API nécessitent un jeton du porteur (Bearer), appelé jeton d’accès au service, dans l’en-tête Authorization. L’autre jeton d’accès nécessaire dépend des services ou de l’API que vous appelez.Créez des jetons d’accès Microsoft Entra ID uniquement dans le contexte de votre service, et non dans votre application. Si vous envoyez votre secret client à votre application, il pourrait être compromis.
Comprendre les différents jetons d’accès et URI d’audience
Chaque jeton d’accès est associé à un URI d’audience différent utilisé pour le créer.N’envoyez jamais au client des jetons d’accès au service qui utilisent l’audience
https://onestore.microsoft.com/.default. Stockez-les de manière sécurisée dans votre service.Créer des jetons d’accès
Pour créer les jetons d’accès, utilisez l’API OAuth 2.0 dans votre service. Suivez les instructions de Plateforme d’identités Microsoft et flux d’informations d’identification du client OAuth 2.0 pour envoyer une requête HTTP POST au point de terminaisonhttps://login.microsoftonline.com/<tenant_id>/oauth2/v2.0/token. L’exemple suivant montre un exemple de requête.
- Définissez
client_idetclient_secretsur les valeurs de l’inscription de votre application dans le portail de gestion Azure. - Définissez
resourcesur l’URI d’audience du type de jeton dont vous avez besoin. Consultez Comprendre les différents jetons d’accès et URI d’audience.
Étape 4 : Créer une clé User Store ID
Pour identifier l’utilisateur dans la requête, votre service obtient une clé User Store ID. User Store ID est utilisé comme terme général pour désigner un User Collections ID ou un User Purchase ID. La seule différence entre ces clés est le service correspondant auprès duquel elles peuvent s’authentifier. Vous pouvez générer des clés User Store ID sur le client à l’aide des API du GDK ou sur votre service. Cette section porte sur la création de clés User Store ID sur le client au moyen des API du GDK. Pour plus d’informations sur la façon de générer des clés User Store ID sur votre service, consultez Demande d’un User Store ID à partir de votre service avec des jetons X ou OAuth 2.0. Les clés User Store ID sont des jetons Web JSON (JWT) qui représentent l’utilisateur connecté à l’application Microsoft Store. Pour plus d’informations sur les revendications de cette clé, consultez Revendications dans une clé User Store ID.Chaque clé User Store ID est valide pendant 30 jours. Votre service peut renouveler la clé avant son expiration. Si votre service nécessite un accès continu pour interroger les droits d’utilisation de l’utilisateur, renouvelez vos clés Microsoft Store ID plutôt que d’en créer de nouvelles. Pour plus d’informations, consultez Renouvellement d’une clé User Store ID.
Pour créer une clé User Collections ID pour le service Collections du Microsoft Store
La clé User Collections ID vous permet d’interroger les produits possédés par un utilisateur et de gérer les produits consommables à l’aide des API Collections. Pour plus d’informations sur la gestion des consommables, consultez Gestion des produits consommables à partir de votre service.- Transmettez au jeu un jeton d’accès Collections que vous avez créé à l’étape 3.
- Dans le jeu, appelez XStoreGetUserCollectionsIdAsync pour récupérer la clé User Collections ID. Transmettez le jeton d’accès Collections comme paramètre
serviceTicket. Vous pouvez également transmettre votre identificateur d’utilisateur interne danspublisherUserId. - Une fois que votre application a créé une clé User Collections ID, renvoyez la clé à votre service.
Pour créer une clé User Purchase ID pour le service Purchase du Microsoft Store
La clé User Purchase ID vous permet d’interroger les produits possédés par un utilisateur et de gérer les produits consommables à l’aide des API Purchase. Pour plus d’informations sur la gestion des consommables, consultez Gestion des produits consommables à partir de votre service.- Transmettez au jeu un jeton d’accès Purchase que vous avez créé à l’étape 3.
- Dans le jeu, appelez XStoreGetUserPurchaseIdAsync pour récupérer la clé User Purchase ID. Transmettez le jeton d’accès Purchase comme paramètre
serviceTicket. Vous pouvez également transmettre votre identificateur d’utilisateur interne danspublisherUserId. - Une fois que votre application a créé une clé User Purchase ID, renvoyez la clé à votre service.
Étape 5 : Authentifier les appels aux API du Microsoft Store
Pour obtenir des instructions, consultez Authentification avec Microsoft Entra ID et des User Store ID.Étape 6 : Renouveler une clé User Store ID à son expiration
Pour obtenir des instructions, consultez Renouvellement d’une clé User Store ID.Informations supplémentaires
Diagramme de création d’une clé User Store ID
Le diagramme suivant illustre le processus de création d’une clé User Store ID.
Revendications dans une clé User Store ID
Une clé User Store ID est un JWT qui représente l’identité de l’utilisateur dont vous souhaitez consulter les informations de propriété des produits. Lorsque vous la décodez à l’aide de Base64, une clé User Store ID contient les revendications présentées dans le tableau suivant.
L’exemple suivant montre un en-tête User Store ID décodé.
kid comme des valeurs opaques dans les services clients et de titre. Les API du Store valident la signature.
Exemple d’un ensemble de revendications User Store ID décodé.
