En esta página, se explica cómo configurar tu app o juego para que use la API de Play Integrity. Debes habilitar las respuestas de la API y, luego, integrar la API a tu app y al servidor de backend de tu app. Las opciones de configuración, las funciones de prueba y los informes adicionales estarán disponibles una vez que vincules el proyecto de Google Cloud que usas para la API de Play Integrity en Google Play Console.
Cómo habilitar las respuestas de la API de Play Integrity
Cada app o SDK que llame a la API de Play Integrity debe usar un proyecto de Google Cloud para supervisar el uso de la API. Las apps de Google Play pueden vincular un proyecto de Cloud en Google Play Console para habilitar las respuestas de la API de Play Integrity. Si quieres crear un proyecto nuevo de Cloud o tu app se distribuye de forma exclusiva fuera de Google Play, puedes habilitar las respuestas de la API de Play Integrity desde la consola de Google Cloud.
Configuración en Google Play Console (recomendado)
Si habilitas las respuestas de la API de Play Integrity en Google Play Console, obtendrás acceso a opciones de configuración adicionales, informes de API y funciones de prueba. Esta opción solo está disponible para las apps que se distribuyen en Google Play. Navega a Versión > Integridad de la app. En la API de Play Integrity, selecciona la opción para vincular un proyecto de Cloud. Elige el proyecto de Cloud que desees vincular a tu app para habilitar las respuestas de la API de Play Integrity. Ahora puedes integrar la API de Play Integrity en tu app.
Configuración en la consola de Google Cloud
En la consola de Google Cloud, crea un proyecto de Cloud nuevo o elige uno existente que desees usar con la API de Play Integrity. Navega a APIs y servicios. Selecciona la opción para habilitar APIs y servicios. Busca la API de Play Integrity y, luego, habilítala. Ahora puedes integrar la API de Play Integrity en tu app.
Instrucciones de configuración para proveedores de SDK
Los proveedores de SDKs deben usar su propio proyecto de Google Cloud para llamar a la API de Play Integrity para que el uso de la API se atribuya al SDK y no a apps individuales que usan el SDK. Esto significa que las apps que usan tu SDK no tienen que configurar la API de Play Integrity de forma individual. Tus solicitudes a la API de Play Integrity se tienen en cuenta automáticamente para el uso de la API de tu SDK y no para la app.
Los desarrolladores de SDKs tienen dos opciones para configurar la API de Play Integrity: Google Play SDK Console o la consola de Google Cloud.
Usa Google Play SDK Console (recomendado)
Si habilitas las respuestas de la API de Play Integrity en Google Play SDK Console, obtienes acceso a opciones de configuración adicionales. Navega a Integridad del SDK y haz clic en Configuración. En Configuración del proyecto, selecciona Vincular un proyecto de Cloud. Elige el proyecto de Cloud que desees vincular a tu SDK para habilitar las respuestas de la API de Play Integrity. Ahora puedes integrar la API de Play Integrity en tu SDK. Ten en cuenta que el acceso a Google Play SDK Console está sujeto a criterios de elegibilidad.
Usa la consola de Google Cloud
Puedes habilitar las respuestas de la API de Play Integrity desde la consola de Google Cloud. En la consola de Google Cloud, crea un proyecto de Cloud nuevo o elige uno existente que desees usar con la API de Play Integrity. Navega a APIs y servicios. Selecciona la opción para habilitar APIs y servicios. Busca la API de Play Integrity y, luego, habilítala. Ahora puedes integrar la API de Play Integrity en tu SDK.
Cómo aumentar las solicitudes diarias de tu SDK a la API de Play Integrity
Los proveedores de SDKs que deseen aumentar su cantidad máxima de solicitudes diarias deben completar el formulario de solicitud de cuota. En la sección de comentarios abierta, especifica que realizas una solicitud al SDK y, luego, incluye tus coordenadas de Maven (groupId:artifactId
) o una URL a tu SDK.
Cómo aumentar tus solicitudes diarias a la API de Play Integrity
Tu app estará sujeta a un máximo de 10,000 solicitudes totales por día. Puedes solicitar que se aumente este máximo diario si tu app necesita controlar una mayor cantidad de usuarios. Para ello, sigue las instrucciones que se indican a continuación.
Cómo aumentar la cantidad máxima diaria de solicitudes
Para poder recibir un aumento en la cantidad máxima diaria de solicitudes, la app debe estar disponible en Google Play, además de cualquier otro canal de distribución. Incluso con un máximo diario máximo superior, deberías seguir limitando las solicitudes clásicas por usuario a acciones poco frecuentes y de alto valor para conservar los datos del usuario y la batería.
Para solicitar un aumento en la cantidad máxima diaria de solicitudes, haz lo siguiente:
- Vincula el proyecto de Google Cloud que usas para la API de Play Integrity en Play Console.
- Asegúrate de implementar de forma correcta la lógica de API, incluida la estrategia de reintento recomendada.
- Solicita un aumento de la cuota con este formulario.
El aumento de la cuota de la API de Play Integrity puede tardar hasta una semana, por lo que te recomendamos que supervises el uso de la API de Play Integrity en Google Play Console o en la consola de Google Cloud, donde también puedes establecer alertas de cuota para evitar interrupciones del servicio.
Los aumentos de cuota de solicitudes clásicas se aplicarán automáticamente a la llamada del cliente para generar tokens de integridad y a la llamada del servidor para desencriptar y verificar los tokens de integridad. Los aumentos de cuota de solicitudes estándar se aplican a la llamada del servidor para desencriptar y verificar los tokens de integridad.
Cómo integrar la API de Play Integrity a tu app
Para integrar la API de Play Integrity a tu app o SDK, según el entorno de desarrollo, realiza una de las siguientes acciones:
Kotlin o Java
La biblioteca de Android más reciente para la API de Play Integrity está disponible en el repositorio de Maven de Google.
Agrega la siguiente dependencia al archivo build.gradle
de tu app:
implementation 'com.google.android.play:integrity:1.4.0'
Unity
Instala el complemento de Google Play Integrity para Unity 1.3.0 o una versión posterior. Para obtener instrucciones, consulta cómo instalar paquetes de Google para Unity.
- Se admiten todas las versiones de 2019.x, 2020.x y posteriores.
- Si usas Unity 2018.x, se admiten las versiones 2018.4 o posteriores.
- No se admiten Unity 2017.x ni versiones anteriores.
Nativo
Instala el SDK nativo de Play Core 1.13.0 o una versión posterior. Para obtener instrucciones, consulta la guía de configuración del entorno de desarrollo del SDK nativo de Play Core.
Cómo configurar respuestas de la API (opcional)
La respuesta de la API incluye los veredictos predeterminados que se muestran en cada solicitud. Si configuras la integración de la API de Play Integrity en Play Console, podrás personalizar la respuesta de la API.
Respuestas predeterminadas
Los siguientes veredictos de integridad se muestran en la respuesta de la API de Play Integrity de forma predeterminada:
Campo de respuesta | Valor | Descripción |
---|---|---|
Integridad del dispositivo | MEETS_DEVICE_INTEGRITY |
La app se ejecuta en un dispositivo Android con la tecnología de los Servicios de Google Play. El dispositivo pasa las verificaciones de integridad del sistema y cumple con los requisitos de compatibilidad de Android. |
Vacío (un valor en blanco) | La app se está ejecutando en un dispositivo que muestra indicios de ataque (como trampas de API) o de vulneración del sistema (como un dispositivo con permisos de administrador), o bien no se está ejecutando en un dispositivo físico (como un emulador que no pasa las verificaciones de integridad de Google Play). | |
Detalles de la cuenta de Play | LICENSED |
El usuario tiene derechos de acceso a la app. En otras palabras, el usuario instaló o actualizó tu app desde Google Play en su dispositivo. |
UNLICENSED |
El usuario no tiene derechos de acceso a la app. Esto sucede, por ejemplo, cuando transfiere la app o no la adquiere en Google Play. | |
UNEVALUATED |
No se evaluó la información de las licencias porque se omitió un requisito necesario. Estos son algunos de los diversos motivos por los que podría suceder:
|
|
Integridad de la aplicación | PLAY_RECOGNIZED |
La app y el certificado coinciden con las versiones que distribuye Google Play. |
UNRECOGNIZED_VERSION |
El certificado o el nombre del paquete no coinciden con los registros de Google Play. | |
UNEVALUATED |
No se evaluó la integridad de la aplicación. Se omitió un requisito necesario, por ejemplo, el dispositivo no es lo suficientemente confiable. |
Respuestas condicionales
Si distribuyes tu app en Google Play Juegos para PC, se te habilitará automáticamente para recibir una etiqueta adicional en el veredicto de integridad del dispositivo:
Campo de respuesta | Etiqueta | Descripción |
---|---|---|
Integridad del dispositivo | MEETS_VIRTUAL_INTEGRITY |
La app se está ejecutando en un Android Emulator con la tecnología de los Servicios de Google Play. El emulador pasa las verificaciones de integridad del sistema y cumple con los requisitos principales de compatibilidad de Android. |
Respuestas opcionales
Si configuras la integración de la API de Play Integrity en Play Console o en Play SDK Console, podrás habilitar la opción para recibir información en la respuesta de la API.
Para realizar cambios en las respuestas de tu API, visita Play Console y navega a Versión > Integridad de la app. En Respuestas, edita y guarda los cambios.
Información opcional del dispositivo
Las apps y los SDKs pueden habilitar etiquetas de dispositivos adicionales en el veredicto de integridad del dispositivo. Si habilitas la opción para recibir etiquetas adicionales, la respuesta de integridad incluirá varias etiquetas para el mismo dispositivo si se cumplen cada uno de los criterios de esas etiquetas. Puedes preparar tu servidor de backend para que se comporte de manera diferente según el rango de respuestas posibles. Por ejemplo, un dispositivo que muestra tres etiquetas (MEETS_STRONG_INTEGRITY
, MEETS_DEVICE_INTEGRITY
y MEETS_BASIC_INTEGRITY
) puede ser más confiable que un dispositivo que muestra solo una etiqueta (MEETS_BASIC_INTEGRITY
).
También puedes habilitar la actividad reciente del dispositivo. La actividad reciente del dispositivo muestra un nivel que va de LEVEL_1
(baja cantidad de solicitudes) a LEVEL_4
(gran cantidad de solicitudes). Por ejemplo, un dispositivo que muestra un nivel de actividad significativamente más alto que el típico para tu app podría estar intentando generar una gran cantidad de tokens de integridad para su distribución a dispositivos que no son de confianza.
También puedes habilitar los atributos del dispositivo, que te indican la versión del SDK de Android del SO Android que se ejecuta en el dispositivo. En el futuro, es posible que se extienda con otros atributos de dispositivos.
Campo de respuesta | Etiqueta | Descripción | |
---|---|---|---|
Integridad del dispositivo | MEETS_BASIC_INTEGRITY |
La app se ejecuta en un dispositivo que pasa las verificaciones básicas de integridad del sistema. Es posible que el dispositivo no cumpla con los requisitos de compatibilidad de Android ni esté aprobado para ejecutar los Servicios de Google Play. Por ejemplo, puede que el dispositivo esté ejecutando una versión no reconocida de Android, que tenga un bootloader desbloqueado o que el fabricante no lo haya certificado. | |
MEETS_STRONG_INTEGRITY |
La app se está ejecutando en un dispositivo Android con la tecnología de los Servicios de Google Play y tiene una garantía sólida de integridad del sistema, como una prueba de integridad de inicio con copia de seguridad en hardware. El dispositivo pasa las verificaciones de integridad del sistema y cumple con los requisitos de compatibilidad de Android. | ||
Solicitudes de tokens de integridad de la API estándar en este dispositivo en la última hora por app | Solicitudes de tokens de integridad de la API clásica en este dispositivo en la última hora por app | ||
Actividad reciente del dispositivo | LEVEL_1 (más bajo) |
10 o menos | 5 o menos |
LEVEL_2 |
Entre 11 y 25 | Entre 6 y 10 | |
LEVEL_3 |
Entre 26 y 50 | Entre 11 y 15 | |
LEVEL_4 (más alto) |
Más de 50 | Más de 15 | |
UNEVALUATED |
No se evaluó la actividad reciente del dispositivo. Esto puede suceder por los siguientes motivos:
|
||
Atributos del dispositivo | sdkVersion: 19, 20, ..., 35 |
Es la versión del SDK del SO Android que se ejecuta en el dispositivo.
El número que se muestra se asigna a Build.VERSION_CODES . |
|
Vacío (un valor en blanco) | No se evalúa la versión del SDK porque se omitió un requisito necesario. En este caso, el campo sdkVersion no se configuró, por lo que el campo deviceAttributes está vacío.
Esto puede deberse a lo siguiente:
|
Detalles opcionales del entorno
Las apps pueden aceptar recibir veredictos adicionales sobre el entorno. El riesgo de acceso a la app te permite saber si se están ejecutando otras apps que podrían capturar la pantalla, mostrar superposiciones o controlar el dispositivo. El veredicto de Play Protect te permite saber si Play Protect está habilitado en el dispositivo y si se encontró software malicioso conocido.
Después de aceptar recibir estos veredictos, la respuesta de la API incluirá el campo de detalles del entorno con el veredicto:
Campo de respuesta | Valor | Descripción |
---|---|---|
Veredicto del riesgo de acceso a la app | KNOWN_INSTALLED |
Google Play instala las apps o el fabricante del dispositivo las precarga en la partición del sistema. |
KNOWN_CAPTURING |
Se están ejecutando apps instaladas por Google Play o precargadas en el dispositivo que podrían usarse para leer o capturar entradas y salidas de la app solicitante, como las apps de grabación de pantalla. | |
KNOWN_CONTROLLING |
Se están ejecutando apps instaladas por Google Play o precargadas en el dispositivo que podrían usarse para controlar el dispositivo y las entradas y salidas de la app solicitante, como las apps de control remoto. | |
KNOWN_OVERLAYS |
Se están ejecutando apps instaladas por Google Play o precargadas en el dispositivo que podrían mostrar superposiciones en la app solicitante. | |
UNKNOWN_INSTALLED |
Se instalaron otras apps que Google Play no instaló o ni fueron precargadas en la partición del sistema por el fabricante del dispositivo. | |
UNKNOWN_CAPTURING |
Se están ejecutando otras apps (que Play no instaló ni precargó en el dispositivo) que podrían usarse para leer o capturar entradas y salidas de la app solicitante, como las apps de grabación de pantalla. | |
UNKNOWN_CONTROLLING |
Se están ejecutando otras apps (que Play no instaló ni precargó en el dispositivo) que podrían usarse para controlar el dispositivo y las entradas y salidas de la app solicitante, como las apps de control remoto. | |
UNKNOWN_OVERLAYS |
Se están ejecutando otras apps (que Play no instaló ni precargó en el dispositivo) que podrían estar mostrando superposiciones en la app solicitante. | |
Vacío (un valor en blanco) | No se evalúa el riesgo de acceso de apps si se omitió un requisito necesario. En este caso, el campo appAccessRiskVerdict está vacío. Esto puede suceder por varios motivos, entre los que se incluyen los siguientes:
|
|
Veredicto de Play Protect | NO_ISSUES |
Play Protect está activado y no detectó ningún problema con las apps del dispositivo. |
NO_DATA |
Play Protect está activado, pero aún no se realizó ningún análisis. Es posible que el dispositivo o la app de Play Store se hayan restablecido recientemente. | |
POSSIBLE_RISK |
Play Protect está desactivado. | |
MEDIUM_RISK |
Play Protect está activado y encontró apps potencialmente dañinas instaladas en el dispositivo. | |
HIGH_RISK |
Play Protect está activado y encontró apps peligrosas instaladas en el dispositivo. | |
UNEVALUATED |
No se evaluó el veredicto de Play Protect. Se omitió un requisito necesario, por ejemplo, el dispositivo no es lo suficientemente confiable. |
Cómo definir la configuración de solicitud clásica (opcional)
Omite esta sección si solo tienes previsto realizar solicitudes a la API estándar.
Cuando realizas solicitudes clásicas, de forma predeterminada, los servidores de Google Play administran la encriptación de las respuestas que usa tu app cuando interactúas con la API de Play Integrity. Si bien te recomendamos que uses esta opción predeterminada, puedes seguir las instrucciones que se indican a continuación para administrar y descargar tus claves de encriptación de respuestas.
Cómo permitir que Google administre tu encriptación de respuestas (opción predeterminada y recomendada)
Para proteger la seguridad de tu app, te recomendamos que permitas que Google genere y administre tus claves de encriptación de respuesta. Tu servidor de backend llamará al servidor de Google Play para desencriptar las respuestas.
Administra y descarga claves de encriptación de respuestas
Si deseas desencriptar el veredicto de integridad de forma local dentro de tu propio entorno de servidor seguro, puedes administrar y descargar tus claves de encriptación de respuesta. Para administrar y descargar tus claves de encriptación de respuestas, debes usar Play Console, y tu app debe estar disponible en Google Play, además de cualquier otro canal de distribución. Sigue las instrucciones a continuación para cambiar las claves de encriptación de respuestas administradas por Google a las autoadministradas.
Recuerda no desencriptar ni verificar el token que se recibió desde tu app cliente y nunca expongas ninguna clave de desencriptación en ella.
Antes de cambiar la estrategia de administración de encriptación de respuestas en Play Console, asegúrate de que tu servidor esté configurado correctamente para desencriptar y verificar los tokens de integridad en los servidores de Google Play para evitar interrupciones.
Cómo cambiar entre las claves de encriptación de respuestas administradas por Google y las autoadministradas
Si Google administra tu encriptación de respuestas y deseas cambiar para administrar y descargar las claves de encriptación de respuesta por tu cuenta, sigue estos pasos:
- Accede a Play Console.
- Selecciona una app que use la API de Play Integrity.
- En la sección Versión del menú de la izquierda, ve a Integridad de la app.
- Junto a la API de Play Integrity, haz clic en Configuración.
- En la sección Solicitudes clásicas de la página, junto a Encriptación de respuestas, haz clic en Editar.
- En la ventana que aparece, haz clic en Administrar y descargar mis claves de encriptación de respuestas.
- Sigue las instrucciones para subir una clave pública.
- Cuando en la ventana se muestre que la carga se realizó de forma correcta, haz clic en Guardar de modo que las claves encriptadas se descarguen automáticamente.
- Cambia la lógica del servidor para desencriptar y verificar los tokens de integridad de forma local en tu propio entorno de servidor seguro mediante tus claves de encriptación de respuesta.
- Cuando administras tus claves de encriptación de respuesta, la app puede recurrir al servidor de Google Play para desencriptar y verificar la respuesta (opcional).
Si administras tus claves de encriptación de respuesta y ahora deseas que Google lo haga, sigue estos pasos:
- Cambia la lógica del servidor de modo que solo desencriptes y verifiques en los servidores de Google.
- Accede a Play Console.
- Selecciona una app que use la API de Play Integrity.
- En la sección Versión del menú de la izquierda, ve a Integridad de la app.
- Junto a la API de Play Integrity, haz clic en Configuración.
- En la sección Solicitudes clásicas de la página, junto a Encriptación de respuestas, haz clic en Editar.
- En la ventana que aparece, haz clic en Permitir que Google administre mi encriptación de respuestas (opción recomendada).
- Haz clic en Guardar cambios.