> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Autenticación de su servicio con las API de Microsoft Store

> Describe cómo obtener y usar tokens X de autenticación delegada o identificadores User Store ID para autenticarse con los servicios de Microsoft Store.

En este artículo se describe cómo autenticar las llamadas de servicio a servicio a las API de Microsoft Store mediante tokens X delegados o identificadores User Store ID:

* [User Store ID y Microsoft Entra ID](#authenticating-with-microsoft-entra-id-and-user-store-ids): Vincula la autenticación y los resultados a la cuenta de usuario que ha iniciado sesión en la aplicación de Microsoft Store.
* [Tokens X de autenticación delegada](#authenticating-with-delegated-authentication-x-tokens): Vincula la autenticación y los resultados a la cuenta de los servicios XBOX del usuario que está jugando actualmente al juego.

Use la autenticación con User Store ID para los nuevos títulos de XBOX y PC. Los tokens X están limitados a la cuenta del jugador activo y no se admiten en algunos servicios (incluidos Recurrence y Purchase). En PC, la cuenta que compra y la cuenta que juega pueden ser diferentes. Para obtener más detalles, consulte [Control de escenarios de cuentas de la Store no coincidentes en PC](/publishing/xstore-commerce/xstore-mismatched-accounts).

Para flujos multiplataforma y flujos de servicio de larga duración, use los User Store ID, ya que pueden renovarse sin una interacción activa del cliente. En comparación, los flujos de tokens X requieren una conexión de cliente actualizada después de alcanzar la duración máxima.

Las siguientes secciones resumen la configuración y los recursos necesarios para cada tipo de autenticación.

## Autenticación con Microsoft Entra ID y User Store ID

Todas las API de servicio de Microsoft Store admiten la autenticación mediante Microsoft Entra ID y User Store ID. Para usar esta autenticación, usted (o su organización) debe tener un inquilino de Microsoft Entra ID y registrar un identificador de aplicación en él. Para registrar una aplicación, su cuenta necesita el rol de administrador global en su inquilino. Si ya usa Microsoft Office 365 u otros servicios empresariales de Microsoft, ya tiene un inquilino de Microsoft Entra ID que puede administrar en su portal de Azure.

Para obtener instrucciones sobre cómo obtener los User Store ID necesarios para este tipo de autenticación, consulte [Solicitud de un User Store ID para la autenticación de servicio a servicio](/publishing/xstore-commerce/xstore-requesting-userstoreid).

<Note>
  En PC, los derechos se asocian al usuario que inició sesión en la aplicación de Microsoft Store, en lugar de al usuario que está jugando actualmente a un título. Dado que las cuentas pueden ser diferentes, se recomienda que los títulos de PC revisen la información de [Control de escenarios de cuentas de la Store no coincidentes en PC](/publishing/xstore-commerce/xstore-mismatched-accounts).
</Note>

Cuando llama a las API de Microsoft Store con el flujo de autenticación de Microsoft Entra, se usa un token de acceso de Microsoft Entra en el encabezado `Authorization` de su solicitud de la siguiente manera.

```bash theme={null}
Authorization: Bearer <Entra ID access token>  
```

Si está trabajando en un sandbox, incluya la siguiente notificación en el cuerpo JSON de la solicitud. Sin ella, los resultados corresponden de forma predeterminada a RETAIL.

Ejemplo:

```json theme={null}
  "sbx": "XDKS.1"
```

<Info>
  **Limitación de los consumibles administrados por el desarrollador:** Aunque la autenticación con User Store ID y Entra ID funciona para la mayoría de las llamadas a las API de Microsoft Store en entornos de sandbox, la [API Consume](/reference/microsoft-store-apis/xstore-v8-consume) no admite este método de autenticación para los consumibles administrados por el desarrollador en sandboxes de desarrollo. Para consumir consumibles administrados por el desarrollador en sandboxes, use en su lugar [tokens XSTS de autenticación delegada](#authenticating-with-delegated-authentication-x-tokens).
</Info>

También debe incluir los valores de beneficiario que se muestran en la tabla siguiente, incluido el User Store ID del cliente.

| Parámetro              | Tipo     | Descripción                                                                                                                                                                                                                           | Obligatorio |
| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `identityType`         | `string` | Especifique el valor de cadena `b2b`.                                                                                                                                                                                                 | Sí          |
| `identityValue`        | `string` | La [clave de User Store ID](/publishing/xstore-commerce/xstore-requesting-userstoreid#step-4-create-a-user-store-id-key) que representa la identidad del usuario para el que quiere notificar un producto consumible como completado. | Sí          |
| `localTicketReference` | `string` | El identificador solicitado para la respuesta devuelta. Use el mismo valor que la [notificación](/publishing/xstore-commerce/xstore-requesting-userstoreid#claims-in-a-user-store-id-key) *userId* de la clave de User Store ID.      | Sí          |

Ejemplo:

```json theme={null}
  "beneficiaries": [
    {
        "identitytype" : "b2b",
        "identityValue" : "eyJ0eXAiOiJ...",
        "localTicketReference" : "testReference"
    }
  ],
```

Para obtener más información sobre cómo obtener, administrar y usar la autenticación con User Store ID, consulte los siguientes recursos.

* [Microsoft.StoreServices (GitHub)](https://github.com/microsoft/Microsoft-Store-Services): Biblioteca y código fuente para autenticarse y llamar a los servicios de Microsoft Store desde su back-end.
* [Ejemplo de Microsoft.StoreServices (GitHub)](https://github.com/microsoft/Microsoft-Store-Services-Sample): Ejemplo de servicio que muestra patrones de autenticación, integración de comercio y conciliación de reembolsos.
* [Solicitud de un User Store ID para la autenticación de servicio a servicio](/publishing/xstore-commerce/xstore-requesting-userstoreid)
* [Renovación de una clave de User Store ID](/publishing/xstore-commerce/xstore-renew-userstoreid)
* [Administrar los derechos de productos desde un servicio](https://learn.microsoft.com/windows/uwp/monetize/view-and-grant-products-from-a-service)

### Diagrama de una llamada a una API de Microsoft Store

En el diagrama siguiente se describe el proceso de llamada a una API de Microsoft Store mediante el User Store ID desde su servicio.

<img src="https://mintcdn.com/microsoft-4404708b/iADzli99B7EWodAv/images/xstore/b2b-2.png?fit=max&auto=format&n=iADzli99B7EWodAv&q=85&s=2d3f87bf7ab2c6e0b0c58085b1560506" alt="Diagrama que muestra el proceso de llamada a una API de Microsoft Store mediante un User Store ID. Su servicio de juego intercambia tokens con Microsoft Entra ID y llama a la API de colecciones o de productos de la Store." width="826" height="431" data-path="images/xstore/b2b-2.png" />

### Configuración adicional necesaria para ver y administrar productos con un User Store ID y autenticación de Microsoft Entra ID

Para usar Microsoft Entra ID y los User Store ID, agregue el Client ID de su aplicación de Microsoft Entra a la configuración de **Product collections and purchases** de su juego en Partner Center. Puede configurar hasta dos Client ID para acceder al producto y a sus complementos a través de los servicios Collections y Purchase. El síntoma más común de que sus productos no están correctamente vinculados al Client ID de su aplicación de Microsoft Entra es que las llamadas a Collections se realizan correctamente, pero no hay elementos en los resultados.

#### Configurar sus productos para que sean visibles para su servicio mediante Microsoft Entra ID y User Store ID

1. Desde la página de Partner Center de su juego, seleccione **Product collections and purchases** en el panel izquierdo.
2. Escriba el Client ID de la aplicación de Microsoft Entra que usa para autenticar su servicio.
3. Seleccione el botón **Save**.
4. Vuelva a publicar el producto del juego y todos los complementos del producto en Microsoft Store en su sandbox o entorno de desarrollo.

Una vez completado el proceso de publicación, debería ver que las llamadas al servicio devuelven los elementos correctos.

## Autenticación con tokens X de autenticación delegada

Use un token X de autenticación delegada para autenticar las llamadas de servicio a servicio agregando el encabezado `Authorization` a la solicitud con el siguiente formato.

```JSON theme={null}
Authorization: XBL3.0 x=<user hash>;<X-token>
```

El usuario autenticado (relying party) de destino del token X debe ser [https://licensing.xboxlive.com](https://licensing.xboxlive.com), el mismo que el del servicio heredado XBOX Inventory. Si configuró sus servicios anteriores para llamar a XBOX Inventory, puede reutilizar el mismo token con este punto de conexión. También necesita un encabezado de firma que coincida con la directiva de firma del punto de conexión especificado.

Para obtener más información sobre cómo obtener, administrar y usar un token X de autenticación delegada y una firma, consulte los siguientes recursos.

* [Game Service Sample](https://aka.ms/gdkdl): Un ejemplo completo de servicio web que muestra la validación y el control de tokens X desde el cliente, la autenticación de servidor a servidor, los servicios de comercio y más. Descargue la versión más reciente desde el [sitio de descarga del GDK](https://aka.ms/gdkdl). Descargue la versión más reciente de All Samples. Game Service Samples se encuentra en samples\Live\GameService dentro del archivo .zip descargado.
* [Xfest 2019 - XSTS Auth and Server to Server made Easy](https://forums.xboxlive.com/articles/96129/xfest-online-2019-archive.html): Información general y explicación de los tokens X y de cómo el Game Service Sample puede ayudarle a iniciar su propio trabajo de autenticación de servicio a servicio. Para descargar la información de la presentación, seleccione **GDK Track Downloads** en el sitio del archivo.
* **Autenticación de los servicios XBOX y llamadas de servicio a servicio**: Documentación más detallada sobre la autenticación, los tokens X y los pasos y llamadas necesarios para realizar llamadas de servicio a servicio a los servicios XBOX.

### Configuración adicional necesaria para ver y administrar productos con tokens X de autenticación delegada

Los tokens X están vinculados a un Business Partner ID dentro de Partner Center, por lo que debe vincular los productos a ese mismo Business Partner ID. En la práctica, los productos deben estar bajo un Product Group cuyo Dev Studio ID coincida con el Business Partner ID usado por su usuario autenticado (relying party).

El síntoma más común de que sus productos no están correctamente vinculados al Business Partner ID correcto es que las llamadas a Collections se realizan correctamente pero no devuelven elementos en los resultados. Para obtener más información, consulte la publicación del foro [B2B call to Collections LicensePreview service returns empty results (Partner Center configured game)](https://forums.xboxlive.com/questions/78683/b2b-call-to-collections-licensepreview-service-ret.html).

#### Para configurar sus productos y servicios web en Partner Center

1. Cree un certificado de Business Partner mediante el vínculo **Generate Certificate** del servicio web. (Seleccione **Developer Settings** > **XBOX Live** > **Web Services**.) Elija el vínculo de la fila del servicio web al que está vinculado su usuario autenticado (relying party).
2. Vaya a la interfaz de administración de Business Partner (seleccione **Developer Settings** > **XBOX Live** > **Business Partner**) y copie el Business Partner ID que coincida con el del servicio web que usó en el paso 1. (Ejemplo de Business Partner ID: 12345678-9012-3456-7890-123456789012)
3. Desde la página **Partner Center Overview** de sus productos, seleccione **Create a new** y, a continuación, seleccione **Product group**.
4. Asigne este grupo de productos a un Dev Studio, o seleccione **Create a new developer studio** si aún no tiene uno.
5. Asegúrese de que el ID del Dev Studio seleccionado coincide con el Business Partner ID del paso 2. Copie el Business Partner ID en **Dev Studio ID (optional)** si está en blanco. Si este campo ya tiene un valor en uso, cree un nuevo Dev Studio en lugar de sobrescribirlo para evitar romper las asignaciones de productos de servicio a servicio existentes.
6. Una vez que el Dev Studio esté configurado con el ID coincidente del Business Partner, vuelva al Product Group que creó. Agregue su juego y todos los productos a la lista **Included in this product group**.
7. Seleccione **Save** para terminar de crear el grupo de productos.
8. Vaya a la interfaz de XBOX Settings de su juego y asegúrese de que el Business Partner vinculado es el mismo que usó en el paso 2.
9. Vuelva a publicar todos los elementos del grupo de productos en Microsoft Store en su sandbox o entorno de desarrollo.

Una vez completado el proceso de publicación, verá que las llamadas al servicio devuelven los elementos correctos.

## Consulte también

[API de servicio de Microsoft Store](/reference/microsoft-store-apis/index)

[Solicitud de un User Store ID para la autenticación de servicio a servicio](/publishing/xstore-commerce/xstore-requesting-userstoreid)

[Renovación de una clave de User Store ID](/publishing/xstore-commerce/xstore-renew-userstoreid)


## Related topics

- [Solicitud de un identificador de la Tienda del usuario para la autenticación de servicio a servicio](/es/publishing/xstore-commerce/xstore-requesting-userstoreid.md)
- [Renovación de una clave de User Store ID](/es/publishing/xstore-commerce/xstore-renew-userstoreid.md)
- [collections.mp.microsoft.com/v9.0/collections/publisherQuery](/es/reference/microsoft-store-apis/xstore-v9-query-for-products.md)
- [Solicitud de un User Store ID con tokens X u OAuth 2.0](/es/publishing/xstore-commerce/xstore-requesting-userstoreid-oauth.md)
- [Información general sobre los sistemas de comercio del GDK](/es/publishing/xstore-commerce/xstore-overview.md)
