Autenticación de usuarios
En Steam, los usuarios siempre tienen la “sesión iniciada” cuando el cliente inicia el juego. El juego siempre puede acceder al identificador de Steam del usuario sin hacer nada más que inicializar la API. La autenticación en Steam hace referencia al proceso de comprobar si la identidad preestablecida de un usuario corresponde realmente al usuario que ha iniciado sesión en el cliente que inició el juego, mediante la APIISteamUser con vales de sesión (con conexión de igual a igual o un servidor dedicado), vales de aplicación cifrados (con un servidor seguro) o la API web de Steam. Después de la autenticación, las API web de Steam o ISteamUser pueden usar vales para comprobar la propiedad del juego actual o de su contenido descargable (DLC).
Este paso de comprobación es innecesario en el Kit de desarrollo de juegos de XBOX (GDK), porque ya realizó la comprobación cuando inició la sesión del usuario con los pasos descritos en Inicialización del Kit de desarrollo de juegos de XBOX (GDK). Por lo tanto, el Kit de desarrollo de juegos de XBOX (GDK) no tiene un equivalente de los vales de sesión de Steam ni de los vales de aplicación cifrados para comprobar la identidad de un usuario en las sesiones multijugador.
Propiedad y administración de derechos digitales (DRM)
Para comprobar que el usuario tiene derecho al juego al que está jugando actualmente, debe usar la funciónXStoreQueryGameLicenseAsync de la API XStore para verificar que el usuario tiene una licencia para jugar a ese juego. En la devolución de llamada asincrónica, compruebe si:
- La consulta se realizó correctamente (es decir, el usuario tiene una licencia).
- La licencia proporcionada por
XStoreQueryGameLicenseResultsigue activa.
ISteamUser/CheckAppOwnership en la API web de Steam o a llamar a SteamEncryptedAppTicket::BIsTicketForApp con un vale de aplicación.
Para obtener más información y un ejemplo de código sobre cómo realizar esta comprobación, consulte XStore: comprobaciones básicas de DRM y licencias. Este tema también contiene información sobre opciones de comprobación de licencias más sólidas que existen para evitar la manipulación destinada a omitir esta comprobación del lado cliente.
Steam también proporciona un contenedor de DRM para el que el Kit de desarrollo de juegos de XBOX (GDK) no tiene un equivalente. Microsoft Store realiza una comprobación antipiratería al iniciar las aplicaciones que se instalan desde la tienda. Para una protección de DRM completa, se recomienda usar una solución de terceros además de ejecutar la comprobación de licencia del ejemplo de código vinculado.
Comprobación de la propiedad del DLC
Si su juego tiene DLC asociado, puede comprobar si la cuenta de Microsoft Store de un usuario tiene acceso a un artículo con la APIXStore. Para comprobar estas licencias, primero debe consultar todos los productos asociados a su juego mediante la función XStoreQueryAssociatedProductsAsync y, a continuación, usar la función XStoreAcquireLicenseForPackageAsync, que es similar a las funciones ISteamUser/CheckAppOwnership o ISteamUser::UserHasLicenseForApp, para obtener la licencia de un artículo de DLC específico de la lista que devolvió la consulta.
Al igual que al comprobar el derecho a los juegos, debe verificar si la licencia se adquirió correctamente y si está activa. Si ambas comprobaciones se superan, puede considerar que el usuario tiene licencia para acceder a ese artículo de DLC. Para obtener un ejemplo de código de este proceso, consulte Administración y licencia de paquetes opcionales (DLC).
