Tabla de contenido
- Requisitos previos
- Gestión en el cliente y experiencia del jugador para privilegios y ventas adicionales
- Procedimientos recomendados para la gestión de privilegios en la aplicación
- Probar el control de acceso basado en privilegios en sus juegos
- Identificadores de privilegios que se deben comprobar
Requisitos previos
Para gestionar los privilegios de usuario en su aplicación cliente de los servicios XBOX, configure su juego para la autenticación con los servicios XBOX. Para obtener más información, consulte Información general sobre autenticación e inicio de sesión e Información general sobre los privilegios de usuario de los servicios XBOX.Gestión en el cliente y experiencia del jugador para privilegios y ventas adicionales
Las aplicaciones cliente están sujetas a los requisitos de XBOX (XR) que exigen privilegios para controlar una parte del juego, como XR-045: XBOX services and Account Privileges. Para obtener más información, consulte Directivas y requisitos de XBOX. Para los juegos controlados por privilegios, puede usar las API. XUserCheckPrivilege determina si un jugador tiene un privilegio específico. XUserResolvePrivilegeWithUiAsync muestra una interfaz de usuario (IU) que ayuda a los jugadores a resolver los problemas relacionados con el privilegio especificado. La IU explica por qué el jugador no tiene un privilegio. Como ejemplo, un juego sujeto al privilegioXPRIVILEGE_MULTIPLAYER_SESSIONS tiene el siguiente flujo.
- El jugador ve una opción para iniciar una sesión multijugador e intenta iniciar una partida seleccionando la opción correspondiente en la IU.
- El juego comprueba la “sugerencia” mediante la API
XUserCheckPrivilege.- Si está presente, se asume que el jugador tiene el privilegio y se continúa.
- Si no está presente, se pasa al paso siguiente.
[!NOTE] Las API de los servicios XBOX devuelven un código de estado 403 (
HTTP_E_STATUS_FORBIDDEN) cuando se deniega el acceso a una característica debido a la falta de un privilegio en el XToken. Todos los puntos de conexión de los servicios XBOX aplican el control de acceso basado en privilegios según corresponda. - En respuesta al código de error, el juego llama a
XUserResolvePrivilegeWithUiAsynccon el identificador de privilegio adecuado para el que se intenta resolver. Esta función llama a los servicios XBOX para ver si el jugador tiene el privilegio y, a continuación, indica al jugador por qué falló la acción o le muestra la IU para resolverlo. Esta llamada a la API puede dar los siguientes resultados.- Mostrar la IU relacionada con el estado de cumplimiento del jugador emitido por los moderadores de directivas y cumplimiento de los servicios XBOX.
- Mostrar la IU relacionada con sus controles parentales.
- Promocionar un servicio de suscripción aplicable, como una suscripción a XBOX Game Pass Essential.
- Devolver el resultado al juego (un éxito o un error, con un motivo).
[!NOTE] Si los servicios XBOX o la red no están accesibles,
XUserResolvePrivilegeWithUiAsyncfalla. Este error debe tratarse como si el jugador no tuviera el privilegio. - Al volver de
XUserResolvePrivilegeWithUiAsync:- Si se devuelve un error, el juego debe permitir que el jugador siga seleccionando el botón, porque (por ejemplo) las expulsiones del jugador pueden expirar o los controles parentales pueden cambiar.
- Si se devuelve un éxito, el problema del jugador se ha corregido y su juego puede intentar la acción de nuevo.
El token del jugador contendrá los privilegios necesarios como parte de la corrección realizada por
XUserResolvePrivilegeWithUiAsync.
Los privilegios son comprobaciones de nivel macro que responden a la pregunta “¿Puedo?”
Para obtener más información sobre qué privilegios son aplicables a su título, consulte XR-015 en el tema Directivas y requisitos de XBOX.
Código de ejemplo
Use el siguiente ejemplo de código para asegurarse de que comprueba los privilegios multijugador de un jugador antes de acceder a la funcionalidad multijugador en su título.Procedimientos recomendados para la gestión de privilegios en la aplicación
Al gestionar los privilegios de usuario en su título, asegúrese de aplicar los siguientes procedimientos recomendados.Frecuencia de resolución de privilegios en la aplicación
Para las comprobaciones de privilegios, el requisito es asegurarse una vez por inicio de que el jugador tiene los privilegios adecuados y resolverlos. Se recomienda comprobar en cada sesión lógica y en cada acción discreta. Su definición de sesión puede variar considerablemente según el uso de su aplicación. Los siguientes son ejemplos de procedimientos recomendados.- Para las aplicaciones de transmisión multimedia, como los reproductores de vídeo, resuelva las comprobaciones de privilegios una vez por cada selección del botón Play (inicio de la transmisión) o al comienzo de una lista de reproducción (para varias transmisiones, como una lista de reproducción de música).
- Para las aplicaciones de mensajería, compruebe los privilegios una vez para el primer mensaje que se envíe.
- Para los juegos multijugador que usan servicios de emparejamiento de terceros, resuelva las comprobaciones de privilegios al inicio de cada sesión (partida).
Nunca dé por supuesto el nivel de suscripción de un usuario
Históricamente, las notificaciones de XBOX 360 proporcionaban información sobre el nivel de suscripción del jugador (como el estado de XBOX Game Pass Essential). Esta notificación quedó en desuso con la introducción de la familia XBOX One y posteriores. Asegúrese de tomar sus decisiones usando los privilegios. El nivel del usuario, o la forma en que adquirió un privilegio, debe ser opaco para la aplicación.Modo sin conexión
SiXUserCheckPrivilege devuelve que el servicio está inactivo o inaccesible, trate este resultado como si la comprobación de privilegios hubiera devuelto un error.
De este modo, su juego dispone de una protección para mantener el cumplimiento de los XR.
Dirigirse al jugador correcto
Se recomienda hacer referencia siempre al jugador que realiza la acción si no se especifica otro jugador para la comprobación de privilegios. Si su juego permite designar un usuario, use el usuario designado actualmente. Por ejemplo, hay tres jugadores con sesión iniciada: Bill, Bob y Beth. Su juego permite cambiar entre “jugadores activos” para designar de quién se usan las recomendaciones, el historial y la configuración. Beth inició la aplicación. Mientras el juego se está ejecutando, el jugador activo cambió a Bob. Bob tiene un perfil, un conjunto de recomendaciones y un historial independientes. Llame aXUserCheckPrivilege para iniciar una comprobación de privilegios para Bob.
Comprobar sin IU, o con la IU fuera del foco
Hay casos en los que su juego no puede presentar una ventana modal, por lo que la experiencia de usuario de una comprobación de privilegios queda bloqueada. Por ejemplo, cuando el juego reproduce música en segundo plano, o durante llamadas entrantes mientras la aplicación Skype se ejecuta en segundo plano. Sin embargo, su juego debe comprobar igualmente el privilegio. Se recomienda llamar aXUserCheckPrivilege.
XUserCheckPrivilege devuelve el estado actual de permisos del usuario, o devuelve el error correspondiente, en lugar de presentar la IU.
Su juego puede afectar al jugador, según lo definido por sus privilegios, e informarle de la comprobación
de privilegios cuando el juego recupere el foco.
Por el contrario, su título puede mostrar al jugador información de error no modal, u otra experiencia de usuario, según lo desee.
Cuando sea apropiado mostrar al jugador una experiencia de usuario de bloqueo, llame de nuevo a XUserResolvePrivilegeWithUiAsync para mostrar la experiencia adecuada, como la de ventas adicionales o el estado de cumplimiento.
Probar el control de acceso basado en privilegios en sus juegos
Los privilegios se calculan en función de los siguientes datos.- Los derechos de suscripción efectivos del jugador
- Los derechos de privilegios efectivos del dispositivo
- Los derechos de privilegios efectivos de la plataforma cliente
- Los derechos de privilegios efectivos del juego actual
- Es posible empaquetar un juego con una colección de privilegios de modo que todos los jugadores del juego obtengan automáticamente estos privilegios para usarlos en el juego en ejecución. Si su juego requiere esta característica, póngase en contacto con su administrador de cuenta de Microsoft.
- Los controles parentales para que los padres decidan qué privilegios agregar o quitar a los menores de su familia
- Los moderadores de XBOX pueden prohibir privilegios a los jugadores o dispositivos que hayan sido identificados por abuso del servicio
Administrar y comprobar los privilegios y permisos de los jugadores
Se puede acceder a la configuración de privacidad del jugador de dos maneras.- En PC: vaya a https://aka.ms/XboxPrivSettings.
- En XBOX: vaya a Settings -> General -> Online safety & family -> Privacy & online safety -> XBOX privacy
Privilegios comprobados con XUserCheckPrivilege
XUserPrivilege::CrossPlay
- Descripción: permite a un jugador participar en una sesión de juego con otros jugadores reales que no han iniciado sesión en los servicios XBOX en escenarios como: juego sincrónico jugador contra jugador en la misma sesión, juego asincrónico por turnos, juego en equipo, emparejamiento iniciado por el usuario, envío o aceptación de invitaciones, sesiones con incorporación en curso.
- Requisito: XR-045 - XBOX services and Account Privileges
- Identificador de privilegio: 185
- Configuración en PC: You can play with people outside of XBOX services
- Configuración en XBOX: You can join cross-network play
XUserPrivilege::Sessions
- Descripción: permite a un jugador participar en experiencias conectadas de un solo jugador en entornos compartidos o en escenarios en los que un título es un título híbrido multijugador gratuito y de pago y usa este privilegio para controlar esas experiencias en las consolas XBOX. Las experiencias de un solo jugador no deben tener ninguna característica cubierta por los privilegios 252 o 254 (Communications y Multiplayer, respectivamente). El uso de este privilegio es una capacidad del título que requiere la aprobación de la plataforma.
- Requisito: XR-045 - XBOX services and Account Privileges
- Identificador de privilegio: 189
- Configuración en PC: You can join multiplayer games
- Configuración en XBOX: You can join multiplayer games
XUserPrivilege::Multiplayer
- Descripción: permite a un jugador unirse a sesiones de juego multijugador en línea con usuarios reales (no bots) en escenarios como: juego sincrónico jugador contra jugador en la misma sesión, juego asincrónico por turnos, juego en equipo, emparejamiento iniciado por el usuario, envío o aceptación de invitaciones, sesiones con incorporación en curso. Tenga en cuenta que este privilegio no se aplica a los juegos multijugador locales que se ejecutan en el mismo dispositivo.
- Requisito: XR-045 - XBOX services and Account Privileges
- Identificador de privilegio: 254
- Configuración en PC: You can join multiplayer games
- Configuración en XBOX: You can join multiplayer games
XUserPrivilege::UserGeneratedContent
- Descripción: permite a un jugador ver en línea el contenido generado por otros usuarios (UGC), descargar el UGC de otros usuarios o compartir su propio UGC en línea. Esto no restringe el uso del UGC descargado previamente.
- Requisito: XR-045 - XBOX services and Account Privileges
- Identificador de privilegio: 247
- Configuración en PC: You can see and upload community creations
- Configuración en XBOX: You can see and upload community creations
XUserPrivilege::SocialNetworkSharing
- Descripción: solo consolas XBOX: permite a un jugador compartir información, incluidos el progreso del juego, el contenido generado por Kinect, los clips de juego, etc., fuera de la red XBOX.
- Requisito: XR-045 - XBOX services and Account Privileges
- Identificador de privilegio: 220
- Configuración en XBOX: You can share outside of XBOX
XUserPrivilege::Communications
- Descripción: permite a un jugador comunicarse con cualquier otro usuario de los servicios XBOX mediante voz o texto.
- Requisito: XR-045 - XBOX services and Account Privileges
- Identificador de privilegio: 252
- Configuración en PC: Others can communicate with voice, text or invites
- Configuración en XBOX: Others can communicate with voice, text or invites
Permisos comprobados con XblPrivacyCheckPermissionAsync
Los títulos también pueden usar XblPrivacyBatchCheckPermissionAsync cuando es necesario comprobar los permisos frente a varios usuarios y XblPrivacyCheckPermissionForAnonymousUserAsync cuando se comprueban permisos frente a un usuario que no pertenece a los servicios XBOX.XblPermission::CommunicateUsingText
- Descripción: compruebe si el jugador puede enviar o no un mensaje con contenido de texto al usuario de destino. Este valor no cambia si el jugador ha silenciado al usuario de destino. Use CommunicateUsingVoice en su lugar. Este valor será false si, por ejemplo, ha configurado sus comunicaciones solo para amigos y el destinatario no es un amigo. Este valor será false si, por ejemplo, el jugador de destino le ha bloqueado. Este valor será false si, por ejemplo, ha configurado sus opciones de comunicación como bloqueadas.
- Requisito: XR-015 - Managing Player Communication
- Al comprobar a otro usuario de los servicios XBOX
- Configuración en PC: Others can communicate with voice, text or invites
- Configuración en XBOX: Others can communicate with voice, text or invites
- Al comprobar a un usuario anónimo
- Configuración en PC: You can communicate outside of XBOX services with voice & text
- Configuración en XBOX: You can communicate outside of XBOX with voice & text
- Al comprobar a otro usuario de los servicios XBOX
XblPermission::CommunicateUsingVoice
- Descripción: compruebe si el jugador puede comunicarse o no mediante voz con el usuario de destino. Este valor será false si el jugador ha silenciado al usuario de destino.
- Requisito: XR-015 - Managing Player Communication
- Al comprobar a otro usuario de los servicios XBOX
- Configuración en PC: Others can communicate with voice, text or invites
- Configuración en XBOX: Others can communicate with voice, text or invites
- Al comprobar a un usuario anónimo
- Configuración en PC: You can communicate outside of XBOX services with voice & text
- Configuración en XBOX: You can communicate outside of XBOX with voice & text
- Al comprobar a otro usuario de los servicios XBOX
Probar privilegios proporcionados por suscripciones
Puede crear cuentas de prueba con una suscripción a XBOX Game Pass Essential mediante Partner Center. Use estas cuentas para probar su lógica de privilegios con los privilegios que se ofrecen a través de una suscripción a XBOX Game Pass Essential. Puede comprar otras suscripciones usando su cuenta de prueba en un cliente de desarrollo.La suscripción debe estar publicada en un sandbox de desarrollo en el que su cuenta o dispositivo estén autorizados, y la cuenta del cliente de desarrollo debe estar activa en el mismo sandbox.
Probar privilegios proporcionados por el juego en ejecución
Si desea configurar un juego para que emita privilegios automáticamente cuando los jugadores estén en el juego, póngase en contacto con su administrador de cuenta de Microsoft. Probar este escenario requiere configurar su juego para la autenticación con los servicios XBOX y ejecutar el juego con jugadores con sesión iniciada.Probar privilegios eliminados por el control parental
Para probar su lógica de privilegios con privilegios que se pueden quitar mediante controles parentales (comoXPRIVILEGE_COMMUNICATIONS), configure cuentas familiares en el dispositivo cliente.
Los padres o tutores pueden usar el dispositivo para restringir los privilegios de los menores de su familia.
También es posible que un jugador restrinja los privilegios de su propia cuenta.
Se recomienda usar este método para probar escenarios que requieran que los privilegios de un usuario estén restringidos.
Partner Center no proporciona actualmente una forma de crear familias de cuentas de prueba.
Identificadores de privilegios que se deben comprobar
Su título debe comprobar los siguientes identificadores de privilegios. Para obtener más información, consulte XR-045: XBOX services and Account Privileges.
Para obtener más información sobre los privilegios disponibles, consulte XUserPrivilege.
Lógica de cálculo de privilegios
Los privilegios se calculan de forma independiente para cada jugador que tenga sesión iniciada simultáneamente en una consola u otro dispositivo. Los privilegios se agregan a partir de los derechos efectivos del usuario, del dispositivo, del título que se está ejecutando actualmente y de la plataforma. A continuación, se quitan privilegios a cada jugador en función de los controles parentales, del estado de directivas y cumplimiento de los servicios XBOX y del estado de invitado de cada usuario. Los derechos efectivos pueden proceder de suscripciones compradas por el usuario, compradas por otros usuarios con sesión iniciada al mismo tiempo, o de suscripciones asociadas directamente a un dispositivo. Los derechos efectivos también pueden proceder de ofertas promocionales, como los eventos de “fin de semana de multijugador gratuito”.Derechos de privilegios derivados del tipo de dispositivo
Ciertos tipos de dispositivos (como las consolas de la familia XBOX One y las consolas XBOX Series, los PC con Windows o los dispositivos móviles) conceden automáticamente una colección de privilegios a cualquier jugador que se conecte a los servicios XBOX desde la plataforma.Derechos de privilegios efectivos derivados de suscripciones
Los productos de suscripción pueden proporcionar una colección de privilegios a los usuarios correspondientes. Los siguientes escenarios son formas en las que a un jugador se le conceden de forma efectiva privilegios basados en suscripciones.- El jugador ha comprado el producto de suscripción.
- Otro jugador activo en el mismo dispositivo ha comprado el producto de suscripción.
- El producto de suscripción está asociado al dispositivo que el jugador está usando actualmente.
Derechos promocionales
Los derechos promocionales agregan privilegios durante un período limitado a los usuarios que cumplen ciertos criterios dinámicos. Por ejemplo, una promoción puede ofrecer el privilegio multijugador a ciertos usuarios durante un fin de semana. Las promociones históricas, como un “fin de semana gratuito de XBOX Game Pass Essential”, siguen el modelo de derechos promocionales.Sus servicios y títulos no necesitan conocer directamente promociones como estas.
Privilegios que se quitan a las cuentas de invitados patrocinados
Los invitados patrocinados son cuentas de invitado que han iniciado sesión con los servicios XBOX. Los invitados patrocinados solo existen en presencia de al menos otro jugador activo en el dispositivo cliente, como en un juego multijugador de pantalla dividida con un solo jugador con sesión iniciada. Estas cuentas son usuarios autenticados y obtienen un token como cualquier otro usuario autenticado. Los invitados patrocinados sí tienen privilegios, pero algunos privilegios se retienen para los jugadores invitados, independientemente de los derechos efectivos del invitado patrocinado o del juego que se esté ejecutando actualmente. Para comprobar los privilegios de los invitados patrocinados, llame aXUserCheckPrivilege. Esto no intenta la resolución.
No es necesario mostrar una IU de resolución ni llamar a XUserResolvePrivilegeWithUiAsync, porque los invitados patrocinados no se pueden “resolver”. A diferencia de las cuentas activas de XBOX, los invitados patrocinados no tienen ninguna vía para realizar compras, recibir medidas de cumplimiento ni tener un conjunto de privilegios o restricciones propio.
Si un jugador no tiene actualmente la sesión iniciada (que es el caso de un “invitado puro”), no se emite ningún token para el usuario.
Esto significa que no se calculan privilegios efectivos para ningún jugador del dispositivo.
XR-045 requiere que su título compruebe el privilegio 220 mediante XPRIVILEGE_SOCIAL_NETWORK_SHARING o XUserPrivilege::SocialNetworkSharing. Este es uno de los privilegios que se quitan a los invitados.
Seguridad en línea y medidas de cumplimiento de Microsoft
Los moderadores de directivas y cumplimiento de los servicios XBOX pueden quitar privilegios a los usuarios o dispositivos abusivos.Controles parentales
Los padres pueden quitar privilegios a las cuentas de menores de su familia, independientemente de la suscripción del menor o del título que se esté ejecutando. Esto se administra a través de la consola XBOX o de la aplicación XBOX Family Settings de Xbox.com.Privilegios para los suscriptores de XBOX Game Pass Essential
Las directivas de derechos de privilegios para una suscripción concreta son dinámicas y cambiarán con el tiempo. Tenga en cuenta que, aunque un suscriptor tenga derecho a un privilegio, ese suscriptor puede perderlo debido a cambios en los controles parentales o a directivas de cumplimiento.Los privilegios no son un reflejo exacto de la suscripción actual de un usuario.
XPRIVILEGE_MULTIPLAYER_SESSIONS o XUserPrivilege::Multiplayer. Este es uno de los privilegios a los que tienen derecho los suscriptores de XBOX Game Pass Essential.
Suscripciones de asociados y privilegios
Es posible configurar suscripciones de asociados para que proporcionen una colección de privilegios de los servicios XBOX. Las suscripciones de asociados solo se usan para calcular los privilegios de un jugador cuando el jugador ha iniciado sesión en juegos que se han asociado explícitamente a la suscripción. Para configurar suscripciones de asociados, póngase en contacto con su administrador de cuenta de Microsoft. Las suscripciones de asociados se pueden probar en sandboxes de desarrollo antes de su lanzamiento. Solo los usuarios y dispositivos autorizados a usar estos sandboxes de desarrollo pueden comprar estas suscripciones.Títulos gratuitos (free-to-play) y privilegios multijugador
Para los títulos configurados específicamente para funcionar con un modelo gratuito (free-to-play, F2P), se debe comprobar el privilegioXPRIVILEGE_MULTIPLAYER_SESSIONS / XUserPrivilege::Multiplayer, como es habitual. Sin embargo, con esta configuración, los usuarios tendrán el privilegio multijugador tanto si tienen una suscripción a XBOX Game Pass Essential como si no. Este privilegio solo se denegará si un jugador está expulsado o bloqueado, o tiene alguna restricción de edad. El uso de este privilegio es una capacidad del título que requiere la aprobación de la plataforma. Colabore con su administrador de Microsoft o con su Developer Partner Manager (DPM) para habilitar esta funcionalidad en su título.
Títulos híbridos y privilegios multijugador
Para los títulos configurados específicamente para funcionar con un modelo híbrido, es decir, títulos que contienen escenarios multijugador que requieren una suscripción de pago pero que también contienen escenarios que se pueden jugar de forma gratuita, el proceso de comprobación de privilegios es ligeramente diferente. Para el contenido que requiere una suscripción de pago, se debe comprobar el privilegioXPRIVILEGE_MULTIPLAYER_SESSIONS / XUserPrivilege::Multiplayer. Sin embargo, para los escenarios multijugador gratuitos, se comprueba en su lugar el privilegio XPRIVILEGE_SESSIONS / XUserPrivilege::Sessions. Este privilegio solo se denegará si un jugador está expulsado o bloqueado, o tiene alguna restricción de edad. El privilegio Multiplayer también se denegará por estos motivos, pero además requiere una suscripción de pago para concederse. El uso de este privilegio es una capacidad del título que requiere la aprobación de la plataforma. Colabore con su administrador de Microsoft o con su DPM para habilitar esta funcionalidad en su título.
