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:
- API de recopilación de Microsoft Store: Consulte los productos que posee un usuario e informe de un producto consumible como cumplido.
- API de compra de Microsoft Store: Conceder un producto gratuito a un usuario, obtener suscripciones para un usuarioy cambiar el estado de facturación de una suscripción para un usuario.
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:
- Configure una aplicación en Entra ID.
- Asocie su ID de aplicación Entra ID con su app en el Centro de asociados.
- En su servicio, cree tokens de acceso Entra ID que representen su identidad de editor.
- 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.
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 apicon 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.
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.
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.
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.
- Inicie sesión en el Centro de socios y seleccione su aplicación.
- 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.
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.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.
- 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.
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.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.
- 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.
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ónaud
.aud
: identifica la audiencia. Debe ser uno de los siguientes valores:https://collections.mp.microsoft.com/v6.0/keys
ohttps://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
}
Temas relacionados
- Consulta de productos
- Notificar productos consumibles como completados
- Conceder productos gratuitos
- Obtener suscripciones para un usuario
- Cambiar el estado de facturación de una suscripción para un usuario
- renovar una clave de identificador de Microsoft Store
- integración de aplicaciones con la plataforma de identidad de Microsoft
- Tokens de id. de la Plataforma de identidad de Microsoft
- Biblioteca Microsoft.StoreServices (GitHub)