Configuración del usuario de confianza
Para usar servicios web personalizados, un título primero debe completar la configuración de inicio de sesión único en el Partner Center. Para obtener más información, consulte Configurar el usuario de confianza. La configuración del usuario de confianza se realiza a nivel de publicador y en todos los sandboxes. Como procedimiento recomendado, use las mismas configuraciones de usuario de confianza para el mismo servicio de título (en distintos títulos) siempre que sea posible.Configuración del punto de conexión de servicio web
Además de la configuración del usuario de confianza, debe configurarse un punto de conexión de servicio en el Partner Center para que un servicio de título use tokens XSTS de asociado. Para obtener más información, consulte Servicios web. Los puntos de conexión de servicio web se configuran a nivel de título en la configuración globalDefaultNsal. DefaultNsal es el único tipo de configuración para los títulos actuales. Los títulos configurados anteriormente pueden usar otros tipos de configuración que reflejan otros entornos, como CertificationNsal y RetailNsal. Para simplificar la configuración, estos tipos de configuración no están disponibles para los títulos nuevos.
Certificados SSL del servicio web
Todos los puntos de conexión de servicio web deben usar HTTPS y certificados SSL emitidos por entidades de certificación (CA) de confianza. Estos certificados no deben especificarse en la configuración del punto de conexión de servicio web. Para el desarrollo y las pruebas, los títulos pueden usar certificados SSL autofirmados, pero no se recomienda si se puede usar un certificado raíz de confianza. De forma predeterminada, la comunicación SSL autofirmada no es de confianza en la consola XBOX. La conexión HTTPS falla a menos que el certificado se agregue a la definición de Webservice Endpoint en la página de inicio de sesión único del título en el Partner Center. Para obtener una lista de las CA reconocidas, consulte List of Participants - Microsoft Trusted Root Program en la documentación de seguridad. Los servicios también pueden obtener un certificado SSL gratuito y de confianza de organizaciones como letsencrypt.org.Recuperación del token y flujo de conexión
Todos los puntos de conexión del servicio del título deben requerir un token XSTS de asociado para la autenticación y autorización. Sin esta información, la comunicación con el servicio debe rechazarse. Para los servicios web, el token XSTS de asociado y la identificación del usuario (hash de usuario) deben incluirse en el encabezadoAuthentication de la solicitud. Para obtener información detallada sobre la estructura de estos encabezados, consulte Tokens de seguridad de los servicios de XBOX (tokens XSTS).
Para los servicios TCP/UDP seguros, el token XSTS de asociado y la identificación del usuario (hash de usuario) deben incluirse en el mensaje inicial de autorización/protocolo de enlace. Sin esta información, la comunicación con el servicio debe rechazarse. Para estas conexiones, se puede especificar un marcador de posición como URI de Webservice Endpoint que refleje el dominio del servicio.
Obtención de un token XSTS de asociado en el cliente y envío de la solicitud HTTPS
El cliente del juego obtiene el token XSTS de asociado y los datos del encabezado de firma mediante la API XUserGetTokenAndSignatureUtf16Async con el siguiente flujo.- Llame a
XUserGetTokenAndSignatureUtf16Asynccon el usuario actual. Incluya la URL del servicio y (si procede) los encabezados personalizados o el cuerpo del mensaje en la llamada a la API. La API recupera un token XSTS y una firma de mensaje para usarlos con el punto de conexión de destino o el servicio de XBOX. - Recupere el token XSTS y la firma mediante
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. El almacenamiento en caché de tokens lo administraXUserGetTokenAndSignatureUtf16Asyncautomáticamente. - Cree una solicitud HTTPS a su punto de conexión de destino usando Microsoft Windows HTTP Services (WinHTTP) y los valores del token XSTS y de la firma.
Todas las llamadas HTTPS deben realizarse a través de la API de WinHTTP, agregando el valor del token XSTS al encabezado
Authenticationy el valor de la firma como encabezadoSignature.
- En lugar de la URL de la llamada de servicio, el título especifica el URI de marcador de posición del servicio.
- Los datos de autenticación se usan durante la autorización/protocolo de enlace inicial de la conexión TCP/UDP.
Manejo de tokens XSTS de asociado en el servidor
Después de que un servicio de título reciba el token XSTS de asociado, el servicio debe analizar, descifrar y validar la autenticidad del token. Para obtener detalles sobre el análisis y la validación de un token XSTS, consulte Tokens de seguridad de los servicios de XBOX (tokens XSTS). También se recomienda encarecidamente a los desarrolladores de servicios usar el ejemplo Game Service y la presentación de Xfest 2019 XSTS Auth and Server to Server Made Easy para su revisión y pruebas. El ejemplo incluye una biblioteca de servicio completa con manejo de tokens.Autenticación y autorización
Después de analizar, descifrar y verificar un token, el servicio puede confiar en las notificaciones del token. Para obtener una lista de todas las notificaciones del token XSTS, consulte Notificaciones de tokens de seguridad de los servicios de XBOX. El servicio debe usar primero estas notificaciones para la autenticación y autorización a nivel de servicio. La información contenida en un token XSTS de asociado siempre debe considerarse autoritativa. Las llamadas de servicio no necesitan replicar esta información en otras partes de la solicitud. Debe prestarse especial atención a la identidad del usuario. Siempre debe validarse mediante una notificación del token XSTS y no debe usarse sin validación desde otras fuentes para la solicitud de servicio. Para identificar a un usuario con fines de autenticación, un servicio de título tiene dos opciones.- La notificación /user/pXUID (ptx). Para cualquier escenario que solo requiera una identidad para la vinculación de cuentas, debe usarse el XUID de asociado (pXUID). Esta notificación expone un identificador único de la cuenta de los servicios de XBOX del usuario bajo el publicador actual.
- La notificación /user/XID. Para cualquier escenario que requiera que un servicio devuelva la identidad del usuario o realice llamadas de servicio a servicio a los servicios de XBOX, se necesita el XUID de un usuario. Ejemplos de tales servicios son los servicios personalizados de tablas de clasificación o de emparejamiento, o los servicios que validan compras mediante llamadas a los servicios de XBOX.
Los PXUID tienen como ámbito el socio comercial (Business Partner) seleccionado al crear el usuario de confianza en el Partner Center. Si trabaja con x-tokens para más de un usuario de confianza, estos deben compartir el mismo socio comercial para que los valores de PXUID coincidan. Para obtener más información sobre la configuración del socio comercial y el usuario de confianza, consulte Configuración de servicios web en el Partner Center.
