- Cliente de XBOX services Desde un cliente autenticado con XBOX services. Estas llamadas siempre se realizan dentro de un contexto de usuario.
- Servicio a servicio Desde un servicio web de título personalizado a través de llamadas de servicio a servicio de XBOX services. Estas llamadas se realizan en nombre de un usuario o directamente como un servicio. Para obtener más información sobre las llamadas desde servicios de títulos, consulte Llamadas de servicios de títulos a XBOX services.
Llamadas de cliente a XBOX services
Para todas las llamadas a XBOX services mediante Microsoft Game Development Kit (GDK), se recomienda encarecidamente que los títulos usen las API de XBOX services (XSAPI) que se incluyen con las versiones de Microsoft Game Development Kit (GDK). Estas API gestionan las solicitudes HTTP y devuelven los datos disponibles del servicio a través de objetos directamente a un título. También implementan el comportamiento de conexión y almacenamiento en caché que se recomienda para XBOX services y la autenticación. Para obtener más información sobre estas API, consulte la documentación de las API de XBOX services Referencia de XSAPI. Las secciones siguientes se proporcionan solo para ofrecer una visión completa y una comprensión más profunda de la autenticación de XBOX services.Configuración inicial
XBOX services están preconfigurados de forma transparente para todos los títulos. No es necesaria ninguna configuración adicional de puntos de conexión. Esto se aplica a todos los subdominios*.xboxlive.com.
Recuperación de tokens y flujo de conexión
Para usar cualquier punto de conexión de XBOX services, deben estar presentes un token de autenticación XSTS y una firma de mensaje. Sin esta información, se rechaza la comunicación con el servicio. El token XSTS y la identificación del usuario (hash de usuario) deben incluirse en el encabezadoAuthentication de la solicitud. La firma del mensaje debe especificarse en el encabezado Signature de la solicitud. Para obtener información detallada sobre la estructura de estos encabezados, consulte Tokens de seguridad de XBOX services (tokens XSTS).
Obtención de un token XSTS
Los datos del token XSTS y del encabezado de firma se obtienen a través de la API XUserGetTokenAndSignatureUtf16Async. Esta proporciona los encabezados necesarios para las solicitudes de servicio. A continuación, el título solicita el token XSTS para un punto de conexión de XBOX services mediante la APIXUserGetTokenAndSignatureUtf16Async a través del flujo siguiente.
- Llame a
XUserGetTokenAndSignatureUtf16Asyncpara el usuario actual. Incluya la dirección URL de XBOX services y los encabezados necesarios o el cuerpo del mensaje en la llamada a la API. Esta llamada a la API recupera el token XSTS para el punto de conexión de XBOX services. La llamada genera una firma de mensaje para el mensaje y los encabezados predefinidos. - Recupere el token XSTS y la firma a través de
XUserGetTokenAndSignatureUtf16Resulta partir del resultado asincrónico.XUserGetTokenAndSignatureUtf16Resultdevuelve un token XSTS cifrado. Los títulos deben tratar el token devuelto como datos opacos. Los datos del token no deben escribirse en disco ni almacenarse en caché en el espacio del título más allá de la llamada de servicio posterior. - Use Microsoft Windows HTTP Services (WinHTTP), xCurl y el token XSTS según corresponda en el encabezado Authorization de la solicitud HTTPS.
Expiración y actualización del token
Un token XSTS solo es válido durante un período específico. El tiempo de expiración predeterminado de un token XSTS es de cuatro horas. Cada token contiene una marca de tiempo que todos los XBOX services verifican. La API XUserGetTokenAndSignatureUtf16Async debe usarse para cada nueva solicitud de autenticación o de inicio de sesión.XUserGetTokenAndSignatureUtf16Async gestiona la expiración y el almacenamiento en caché de los tokens. La API garantiza que el título siempre reciba un token válido. Por lo demás, un título no debe almacenar tokens en caché.
Cuando se presenta un token expirado o no válido a un punto de conexión de XBOX services, se devuelve un error HTTP/401.