XUser. En PC, la identidad está vinculada a la cuenta con sesión iniciada en la aplicación de Microsoft Store y que se usa para las compras.
En PC, la identidad de la cuenta de la aplicación de Microsoft Store puede ser diferente de la cuenta con sesión iniciada en XBOX Live y que juega al juego.
- Identificador de colecciones del usuario para autenticarse con el servicio de colecciones de Microsoft Store
- Identificador de compra del usuario para autenticarse con el servicio de compra de Microsoft Store
- Configure una aplicación de Microsoft Entra ID.
- Asocie el identificador de aplicación de Microsoft Entra con la aplicación cliente en Partner Center.
- En su servicio, cree tokens de acceso de Microsoft Entra ID que representen su identidad de publicador.
- En su juego, cree una clave de identificador de la Tienda del usuario que represente la identidad del usuario y pase esta clave de vuelta a su servicio.
- Autentique las solicitudes a las API de Microsoft Store.
- Renueve una clave de identificador de la Tienda del usuario cuando expire.
- Su servicio: back-end seguro que crea tokens de acceso de Microsoft Entra y llama a las API de la Tienda.
- Su juego: cliente que crea claves de identificador de la Tienda del usuario para el usuario con sesión iniciada y las pasa a su servicio.
La biblioteca .NET Microsoft.StoreServices y el ejemplo
Para simplificar la integración, use Microsoft.StoreServices en GitHub. La biblioteca controla los flujos de autenticación y de claves, y proporciona contenedores para las llamadas a los servicios de la Tienda. El ejemplo incluye patrones de un extremo a otro para consumibles, conciliación de reembolsos y renovación de claves.Paso 1: Configurar una aplicación de Microsoft Entra ID
Antes de poder usar las API de Microsoft Store, cree una aplicación web de Microsoft Entra que identifique su servicio al llamar a las API. Desde la aplicación web registrada, obtenga el identificador de inquilino, el identificador de aplicación y la clave secreta para generar los tokens de acceso necesarios en pasos futuros.Puede reutilizar el identificador de inquilino, el identificador de aplicación y la clave secreta de la aplicación web en varios juegos y productos de su publicador. No es necesario crear una nueva para cada juego.
- Si aún no lo ha hecho, siga las instrucciones de Inicio rápido: Registro de una aplicación con la plataforma de identidad de Microsoft para registrar una aplicación de tipo Web app / API con Microsoft Entra ID.
[!NOTE] Al registrar la aplicación, elija Web app / API como tipo de aplicación. Este tipo le permite recuperar una clave (también denominada secreto de cliente) para la aplicación. Para llamar a las API de Microsoft Store, debe proporcionar un secreto de cliente al solicitar un token de acceso de Microsoft Entra ID en un paso posterior.
- En el Portal de administración de Azure, vaya a Microsoft Entra ID. Seleccione su directorio, App registrations en el panel izquierdo y, a continuación, su aplicación.
- Copie los valores de Application (client) ID y Directory (tenant) ID para usarlos más adelante.
- Cree y copie un nuevo secreto de cliente en Certificates & Secrets en el panel izquierdo.
Paso 2: Asociar el identificador de aplicación de Microsoft Entra con la aplicación cliente en Partner Center
- Inicie sesión en Partner Center y, a continuación, seleccione su juego.
- Seleccione Services > Product collections and purchases. Escriba el identificador de aplicación de Microsoft Entra en uno de los campos de Client ID disponibles.
- Seleccione Save.
- Vuelva a publicar el juego y sus complementos en la tienda.
Los productos complementarios heredan los identificadores de cliente guardados en la página Product collections and purchases de su juego principal. Los productos de tipo Game Bundle tienen su propia página Product collections and purchases, en la que debe agregar los identificadores de cliente.
Paso 3: Creación de tokens de acceso de Microsoft Entra ID
Todas las solicitudes de API necesitan un token de portador, conocido como token de acceso de servicio, en el encabezado Authorization. El otro token de acceso necesario depende de los servicios o de la API a los que llame.Cree tokens de acceso de Microsoft Entra ID solo en el contexto de su servicio, no en su aplicación. Si envía el secreto de cliente a la aplicación, este podría verse comprometido.
Descripción de los distintos tokens de acceso y URI de audiencia
Cada token de acceso está asociado a un URI de audiencia diferente que se usa para crearlo.Nunca envíe al cliente tokens de acceso de servicio que usen la audiencia
https://onestore.microsoft.com/.default. Almacénelos de forma segura dentro de su servicio.Creación de tokens de acceso
Para crear los tokens de acceso, use la API de OAuth 2.0 en su servicio. Siga las instrucciones de Plataforma de identidad de Microsoft y flujo de credenciales de cliente de OAuth 2.0 para enviar un HTTP POST al punto de conexiónhttps://login.microsoftonline.com/<tenant_id>/oauth2/v2.0/token. En el ejemplo siguiente se muestra una solicitud de ejemplo.
- Establezca
client_idyclient_secreten los valores del registro de aplicación del Portal de administración de Azure. - Establezca
resourceen el URI de audiencia del tipo de token que necesite. Consulte Descripción de los distintos tokens de acceso y URI de audiencia.
Paso 4: Crear una clave de identificador de la Tienda del usuario
Para identificar al usuario en la solicitud, su servicio obtiene una clave de identificador de la Tienda del usuario. Identificador de la Tienda del usuario se usa como término general tanto para un identificador de colecciones del usuario como para un identificador de compra del usuario. La única diferencia entre estas claves es con qué servicio correspondiente pueden autenticarse. Puede generar claves de identificador de la Tienda del usuario en el cliente mediante las API del GDK o en su servicio. Esta sección se centra en la creación de claves de identificador de la Tienda del usuario en el cliente a través de las API del GDK. Para obtener más información sobre cómo generar claves de identificador de la Tienda del usuario en su servicio, consulte Solicitud de un identificador de la Tienda del usuario desde su servicio con X-tokens u OAuth 2.0. Las claves de identificador de la Tienda del usuario son JSON Web Tokens (JWT) que representan al usuario con sesión iniciada en la aplicación de Microsoft Store. Para obtener más información sobre las notificaciones de esta clave, consulte Notificaciones de una clave de identificador de la Tienda del usuario.Cada clave de identificador de la Tienda del usuario es válida durante 30 días. Su servicio puede renovar la clave antes de que expire. Si su servicio requiere acceso continuado para consultar los derechos del usuario, renueve las claves de identificador de Microsoft Store en lugar de crear nuevas. Para obtener más información, consulte Renovación de una clave de identificador de la Tienda del usuario.
Para crear una clave de identificador de colecciones del usuario para el servicio de colecciones de Microsoft Store
La clave de identificador de colecciones del usuario le permite consultar los productos que posee un usuario y administrar productos consumibles mediante las API de colecciones. Para obtener más información sobre la administración de consumibles, consulte Administración de productos consumibles desde su servicio.- Pase al juego un token de acceso de colecciones que haya creado en el Paso 3.
- En el juego, llame a XStoreGetUserCollectionsIdAsync para recuperar la clave de identificador de colecciones del usuario. Pase el token de acceso de colecciones como el parámetro
serviceTicket. De forma opcional, pase su identificador de usuario interno enpublisherUserId. - Después de que la aplicación cree correctamente una clave de identificador de colecciones del usuario, pase la clave de vuelta a su servicio.
Para crear una clave de identificador de compra del usuario para el servicio de compra de Microsoft Store
La clave de identificador de compra del usuario le permite consultar los productos que posee un usuario y administrar productos consumibles mediante las API de compra. Para obtener más información sobre la administración de consumibles, consulte Administración de productos consumibles desde su servicio.- Pase al juego un token de acceso de compra que haya creado en el Paso 3.
- En el juego, llame a XStoreGetUserPurchaseIdAsync para recuperar la clave de identificador de compra del usuario. Pase el token de acceso de compra como el parámetro
serviceTicket. De forma opcional, pase su identificador de usuario interno enpublisherUserId. - Después de que la aplicación cree correctamente una clave de identificador de compra del usuario, pase la clave de vuelta a su servicio.
Paso 5: Autenticar las llamadas a las API de Microsoft Store
Para obtener instrucciones, consulte Autenticación con Microsoft Entra ID e identificadores de la Tienda del usuario.Paso 6: Renovar una clave de identificador de la Tienda del usuario cuando expire
Para obtener instrucciones, consulte Renovación de una clave de identificador de la Tienda del usuario.Información adicional
Diagrama de la creación de una clave de identificador de la Tienda del usuario
En el diagrama siguiente se ilustra el proceso de creación de una clave de identificador de la Tienda del usuario.
Notificaciones de una clave de identificador de la Tienda del usuario
Una clave de identificador de la Tienda del usuario es un JWT que representa la identidad del usuario a cuya información de propiedad de productos quiere acceder. Cuando se descodifica mediante Base64, una clave de identificador de la Tienda del usuario contiene las notificaciones que se muestran en la tabla siguiente.
En el ejemplo siguiente se muestra un encabezado de identificador de la Tienda del usuario descodificado.
kid como valores opacos en el cliente y en los servicios del título. Las API de la Tienda validan la firma.
Ejemplo de un conjunto de notificaciones de identificador de la Tienda del usuario descodificado.
