Compartir a través de


Administración de derechos de producto desde un servicio

Si tienes un catálogo de aplicaciones y complementos, puedes usar la API de recopilación Microsoft Store y API de compra de Microsoft Store para acceder a la información de derechos de estos productos desde tus servicios. Un derecho representa el derecho de un cliente a utilizar una aplicación o complemento publicado a través de Microsoft Store.

Estas API constan de métodos REST diseñados para que los desarrolladores usen catálogos de complementos compatibles con servicios multiplataforma. Estas API le permiten hacer lo siguiente:

Nota

La API de recopilación y la API de compra de Microsoft Store usan la autenticación de la plataforma de identidad de Microsoft (Entra ID) para acceder a la información de propiedad del cliente. Para usar estas API, usted (o su organización) debe tener un tenant Entra ID y debe tener permiso de Administrador global para el tenant. Si ya utiliza Microsoft 365 u otros servicios empresariales de Microsoft, ya tiene un inquilino Entra ID.

La biblioteca Microsoft.StoreServices

Para ayudar a simplificar el flujo de autenticación y llamar a los servicios de Microsoft Store, revise el proyecto Microsoft.StoreServices y el ejemplo en Github. La biblioteca Microsoft.StoreServices ayudará a administrar las claves de autenticación y proporciona las API de contenedor para llamar a los Servicios de Microsoft Store para administrar productos. El proyecto de ejemplo resalta cómo un servicio puede usar la biblioteca Microsoft.StoreServices, por ejemplo, lógica para administrar productos consumibles, reconciliar las compras reembolsables, renovar las credenciales expiradas, etc. Se incluye una guía de configuración paso a paso con el ejemplo para configurar el servicio de ejemplo en el equipo o a través de Azure.

Visión general

En los pasos siguientes se describe el proceso de un extremo a otro para usar la API de recopilación de Microsoft Store y la API de compra:

  1. Configure una aplicación en Entra ID.
  2. Asocie su ID de aplicación Entra ID con su app en el Centro de asociados.
  3. En su servicio, cree tokens de acceso Entra ID que representen su identidad de editor.
  4. En tu aplicación cliente de Windows, crea una clave de ID de Microsoft Store que represente la identidad del usuario actual y pásala de nuevo a tu servicio.

Este proceso integral implica dos componentes de software que realizan diferentes tareas:

  • Su servicio. Se trata de una aplicación que se ejecuta de forma segura en el contexto del entorno empresarial y se puede implementar mediante cualquier plataforma de desarrollo que elija. Su servicio es responsable de crear los tokens de acceso Entra ID necesarios para el escenario y de llamar a los URI REST para la API de recogida y la API de compra de Microsoft Store.
  • Su aplicación cliente Windows. Esta es la aplicación con la que desea acceder y administrar la información sobre derechos de los clientes (incluidos los complementos de la aplicación). Esta aplicación es responsable de crear las claves de ID de Microsoft Store que necesita para llamar a la API de colección de Microsoft Store y a la API de compra desde su servicio.

Paso 1: Configurar una aplicación en Entra ID

Para poder usar la API de recopilación de Microsoft Store o la API de compra, debes crear una aplicación web de Entra ID, recuperar la identificación de inquilino y la identificación de la aplicación, y generar una clave. La aplicación web Entra ID representa el servicio desde el que quieres llamar a la API de recopilación de Microsoft Store o a la API de compra. Necesita el ID de inquilino, el ID de aplicación y la clave para generar los tokens de acceso Entra ID que necesita para llamar a la API.

  1. 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 web o api con Entra ID.

    Nota

    Al registrar la aplicación, debe elegir aplicación web o API como tipo de aplicación para que pueda recuperar una clave (también denominada secreto de cliente de ) para la aplicación. Para llamar a la API de recopilación o a la API de compra de Microsoft Store, debes proporcionar un secreto de cliente cuando solicites un token de acceso desde Entra ID en un paso posterior.

  2. En el Portal de administración de Azure, navegue hasta Microsoft Entra ID. Seleccione su entidad de cliente, haga clic en Registros de aplicaciones en el panel de navegación izquierdo en Administrar y, a continuación, seleccione su aplicación.

  3. Se le lleva a la página de registro principal de la aplicación. En esta página, copie el ID de aplicación para usarlo más adelante.

  4. Cree una clave que necesitará más adelante (esto se denomina secreto de cliente). En el panel izquierdo, haga clic en Configuración y luego en Claves. En esta página, complete los pasos para crear una clave. Copie esta clave para su uso posterior.

Paso 2: Asocie su ID de aplicación Entra ID con su aplicación cliente en el Centro de asociados

Para poder usar la API de recopilación de Microsoft Store o la API de compra para configurar la propiedad y las compras de la aplicación o el complemento, debes asociar el identificador de aplicación Entra a la aplicación (o la aplicación que contiene el complemento) en el Centro de Socios.

Nota

Solo tiene que realizar esta tarea una vez. Después de tener el identificador de inquilino, el identificador de aplicación y el secreto de cliente, puede reutilizar estos valores siempre que necesite crear un nuevo token de acceso de Id. de Entra.

  1. Inicie sesión en el Centro de socios y seleccione su aplicación.
  2. Vaya a la página Servicios>Colecciones y compras de productos e introduzca su ID de aplicación Entra en uno de los campos ID de cliente disponibles.

Paso 3: Crear tokens de acceso de Entra ID

Para poder recuperar una clave de identificación de Microsoft Store o llamar a la API de recopilación o a la API de compra de Microsoft Store, su servicio debe crear varios tokens de acceso de Entra ID que representen la identidad de su editor. Cada token se usará con una API diferente. La duración de cada token es de 60 minutos y puede actualizarlas después de que expiren.

Importante

Crea tokens de acceso de Entra ID solo en el contexto de tu servicio, no en tu aplicación. Su secreto de cliente podría verse comprometido si se envía a su app.

Reconocimiento de los diferentes tokens y URI de audiencia

Dependiendo de los métodos a los que quiera llamar en la API de recopilación o la API de compra de Microsoft Store, debe crear dos o tres tokens diferentes. Cada token de acceso está asociado a un URI de audiencia diferente.

  • En todos los casos, usted debe crear un token con el URI de audiencia https://onestore.microsoft.com. En un paso posterior, pasará este token al encabezado Autorización de los métodos de la API de recogida o la API de compra de Microsoft Store.

    Importante

    Utilice la audiencia https://onestore.microsoft.com solo con tokens de acceso que estén almacenados de forma segura dentro de su servicio. La exposición de tokens de acceso con esta audiencia fuera de su servicio podría hacer que su servicio fuera vulnerable a ataques de repetición.

  • Si desea llamar a un método de la API de recogida de Microsoft Store para consultar los productos propiedad de un usuario o informar de que un producto consumible se ha cumplido, también debe crear un token con el URI de audiencia https://onestore.microsoft.com/b2b/keys/create/collections. En un paso posterior, pasará este token a un método de cliente en Windows SDK para solicitar una clave de identificador de Microsoft Store que pueda usar con la API de recopilación de Microsoft Store.

  • Si quieres llamar a un método en la API de compra de Microsoft Store para conceder un producto gratuito a un usuario, obtener suscripciones para un usuarioo cambiar el estado de facturación de una suscripción para un usuario, también debes crear un token con el URI de audiencia de https://onestore.microsoft.com/b2b/keys/create/purchase. En un paso posterior, pasará este token a un método de cliente en Windows SDK para solicitar una clave de identificador de Microsoft Store que pueda usar con la API de compra de Microsoft Store.

Creación de los tokens

Para crear los tokens de acceso, use la API de OAuth 2.0 en el servicio siguiendo las instrucciones de Service to Service Calls Using Client Credentials para enviar un HTTP POST al punto de conexión de https://login.microsoftonline.com/<tenant_id>/oauth2/token. Esta es una solicitud de ejemplo.

POST https://login.microsoftonline.com/<tenant_id>/oauth2/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded; charset=utf-8

grant_type=client_credentials
&client_id=<your_client_id>
&client_secret=<your_client_secret>
&resource=https://onestore.microsoft.com

Para cada token, especifique los siguientes datos de parámetro:

  • Para los parámetros client_id y client_secret, especifique el identificador de aplicación y el secreto de cliente de la aplicación que recuperó del Portal de administración de Azure . Ambos parámetros son necesarios para crear un token de acceso con el nivel de autenticación requerido por la API de recopilación o la API de compra de Microsoft Store.

  • Para el parámetro del recurso , especifique uno de los URIs de audiencia enumerados en la sección anterior, en función del tipo de token de acceso que esté creando.

Una vez que expire el token de acceso, puede actualizarlo siguiendo las instrucciones aquí. Para obtener más información sobre la estructura de un token de acceso, consulte Tipos de tokens y reclamaciones admitidos.

Paso 4: Crear una clave de identificador de Microsoft Store

Para poder llamar a cualquier método en la API de recopilación o la API de compra de Microsoft Store, la aplicación debe crear una clave de identificador de Microsoft Store y enviarla al servicio. Esta clave es un token web JSON (JWT) que representa la identidad del usuario cuya información de propiedad del producto desea acceder. Para obtener más información sobre las reclamaciones de esta clave, consulte Notificaciones en una clave de Microsoft Store ID.

Actualmente, la única manera de crear una clave de identificador de Microsoft Store es llamando a una API de la Plataforma universal de Windows (UWP) desde el código de cliente de la aplicación. La clave generada representa la identidad del usuario que ha iniciado sesión actualmente en Microsoft Store en el dispositivo.

Nota

Cada clave de identificador de Microsoft Store es válida durante 30 días. Antes de que expire la clave, puede renovar la clave. Te recomendamos que renueve las claves de identificador de Microsoft Store en lugar de crear nuevas.

Para crear una clave de Microsoft Store ID para la API de colección de Microsoft Store

Siga estos pasos para crear una clave de ID de Microsoft Store que pueda utilizar con la API de recopilación de Microsoft Store para consultar los productos propiedad de un usuario o informar de un producto consumible como cumplido.

  1. Pase el token de acceso Entra ID que tiene el valor URI https://onestore.microsoft.com/b2b/keys/create/collections de audiencia de su servicio a su aplicación cliente. Este es uno de los tokens que creó anteriormente en el paso 3.

  2. En el código de la aplicación, llame a uno de estos métodos para recuperar una clave de identificador de Microsoft Store:

  • Si tu aplicación usa la clase StoreContext en el espacio de nombres Windows.Services.Store para administrar las compras desde la aplicación, usa el método StoreContext.GetCustomerCollectionsIdAsync.

  • Si la aplicación usa la clase CurrentApp en el espacio de nombres Windows.ApplicationModel.Store para administrar las compras desde la aplicación, use el método CurrentApp.GetCustomerCollectionsIdAsync.

    Pasa el token de acceso de Entra ID al parámetro serviceTicket del método. Si mantiene identificadores de usuario anónimos en el contexto de los servicios que administra como publicador de la aplicación actual, también puede pasar un identificador de usuario al parámetro publisherUserId para asociar el usuario actual a la nueva clave de identificador de Microsoft Store (el identificador de usuario se incrustará en la clave). De lo contrario, si no necesita asociar un identificador de usuario con la clave de identificador de Microsoft Store, puede pasar cualquier valor de cadena al parámetro publisherUserId.

  1. Después de que la aplicación cree correctamente una clave de ID de Microsoft Store, devuelva la clave al servicio.

Para crear una clave de identificador de Microsoft Store para la API de compra de Microsoft Store

Siga estos pasos para crear una clave de identificador de Microsoft Store que pueda usar con la API de compra de Microsoft Store para conceder un producto gratuito a un usuario, obtener suscripciones para un usuarioo cambiar el estado de facturación de una suscripción para un usuario.

  1. Pase el token de acceso Entra ID que tiene el valor URI https://onestore.microsoft.com/b2b/keys/create/purchase de audiencia de su servicio a su aplicación cliente. Este es uno de los tokens que creó anteriormente en el paso 3.

  2. En el código de la aplicación, llame a uno de estos métodos para recuperar una clave de identificador de Microsoft Store:

  • Si tu aplicación usa la clase StoreContext en el espacio de nombres Windows.Services.Store para administrar las compras desde la aplicación, usa el método StoreContext.GetCustomerPurchaseIdAsync.

  • Si la aplicación usa la clase CurrentApp en el espacio de nombres Windows.ApplicationModel.Store para administrar las compras desde la aplicación, use el método CurrentApp.GetCustomerPurchaseIdAsync.

    Pase su token de acceso Entra ID al parámetro serviceTicket del método. Si mantiene identificadores de usuario anónimos en el contexto de los servicios que administra como publicador de la aplicación actual, también puede pasar un identificador de usuario al parámetro publisherUserId para asociar el usuario actual a la nueva clave de identificador de Microsoft Store (el identificador de usuario se incrustará en la clave). De lo contrario, si no necesita asociar un identificador de usuario con la clave de identificador de Microsoft Store, puede pasar cualquier valor de cadena al parámetro publisherUserId.

  1. Después de que la aplicación cree correctamente una clave de ID de Microsoft Store, reenvíe la clave a su servicio.

Diagrama

En el diagrama siguiente se muestra el proceso de creación de una clave de identificador de Microsoft Store.

Crear clave de identificador de la Tienda Windows

Aserciones en una clave de ID de Microsoft Store

Una clave de identificador de Microsoft Store es un token web JSON (JWT) que representa la identidad del usuario cuya información de propiedad del producto desea acceder. Cuando se descodifica con Base64, una clave de identificador de Microsoft Store contiene las siguientes reclamaciones.

  • iat: identifica la hora en la que se emitió la clave. Esta afirmación se puede usar para determinar la antigüedad del token. Este valor se expresa como tiempo de época.
  • iss: identifica el emisor. Tiene el mismo valor que la reclamación aud.
  • aud: identifica la audiencia. Debe ser uno de los siguientes valores: https://collections.mp.microsoft.com/v6.0/keys o https://purchase.mp.microsoft.com/v6.0/keys.
  • exp: identifica la hora de expiración en o después de la cual la clave ya no se aceptará para procesar nada excepto para renovar las claves. Este valor se expresa como tiempo de época.
  • nbf: identifica la hora en la que se aceptará el token para su procesamiento. Este valor se expresa como tiempo de época.
  • http://schemas.microsoft.com/marketplace/2015/08/claims/key/clientId: identificador de cliente que identifica al desarrollador.
  • http://schemas.microsoft.com/marketplace/2015/08/claims/key/payload: una carga opaca (codificada en Base64 y cifrada) que contiene información que solo está pensada para su uso por parte de los servicios de Microsoft Store.
  • http://schemas.microsoft.com/marketplace/2015/08/claims/key/userId: identificador de usuario que identifica al usuario actual en el contexto de los servicios. Este es el mismo valor que se pasa al parámetro opcional publisherUserId del método que se usa para crear la clave.
  • http://schemas.microsoft.com/marketplace/2015/08/claims/key/refreshUri: el URI que puede usar para renovar la clave.

Este es un ejemplo de un encabezado de clave de identificador de Microsoft Store descodificado.

{
    "typ":"JWT",
    "alg":"RS256",
    "x5t":"agA_pgJ7Twx_Ex2_rEeQ2o5fZ5g"
}

Este es un ejemplo de un conjunto de declaraciones de la clave de identificador de Microsoft Store descodificado.

{
    "http://schemas.microsoft.com/marketplace/2015/08/claims/key/clientId": "1d5773695a3b44928227393bfef1e13d",
    "http://schemas.microsoft.com/marketplace/2015/08/claims/key/payload": "ZdcOq0/N2rjytCRzCHSqnfczv3f0343wfSydx7hghfu0snWzMqyoAGy5DSJ5rMSsKoQFAccs1iNlwlGrX+/eIwh/VlUhLrncyP8c18mNAzAGK+lTAd2oiMQWRRAZxPwGrJrwiq2fTq5NOVDnQS9Za6/GdRjeiQrv6c0x+WNKxSQ7LV/uH1x+IEhYVtDu53GiXIwekltwaV6EkQGphYy7tbNsW2GqxgcoLLMUVOsQjI+FYBA3MdQpalV/aFN4UrJDkMWJBnmz3vrxBNGEApLWTS4Bd3cMswXsV9m+VhOEfnv+6PrL2jq8OZFoF3FUUpY8Fet2DfFr6xjZs3CBS1095J2yyNFWKBZxAXXNjn+zkvqqiVRjjkjNajhuaNKJk4MGHfk2rZiMy/aosyaEpCyncdisHVSx/S4JwIuxTnfnlY24vS0OXy7mFiZjjB8qL03cLsBXM4utCyXSIggb90GAx0+EFlVoJD7+ZKlm1M90xO/QSMDlrzFyuqcXXDBOnt7rPynPTrOZLVF+ODI5HhWEqArkVnc5MYnrZD06YEwClmTDkHQcxCvU+XUEvTbEk69qR2sfnuXV4cJRRWseUTfYoGyuxkQ2eWAAI1BXGxYECIaAnWF0W6ThweL5ZZDdadW9Ug5U3fZd4WxiDlB/EZ3aTy8kYXTW4Uo0adTkCmdLibw=",
    "http://schemas.microsoft.com/marketplace/2015/08/claims/key/userId": "infusQMLaYCrgtC0d/SZWoPB4FqLEwHXgZFuMJ6TuTY=",
    "http://schemas.microsoft.com/marketplace/2015/08/claims/key/refreshUri": "https://collections.mp.microsoft.com/v6.0/b2b/keys/renew",
    "iat": 1733526889,
    "iss": "https://collections.mp.microsoft.com/v6.0/keys",
    "aud": "https://collections.mp.microsoft.com/v6.0/keys",
    "exp": 1733523289,
    "nbf": 1736118889
}