Comienza a usar la Verificación de aplicaciones con reCAPTCHA Enterprise en Android

Seleccionar plataforma: iOS+ Android Web Flutter


En esta página, se muestra cómo configurar App Check en una app para Android con el proveedor de reCAPTCHA Enterprise. App Check ayuda a garantizar que solo tu app pueda acceder a los recursos de backend de tu proyecto. Para obtener más información, consulta nuestra descripción general de App Check.

App Check requiere el uso de claves reCAPTCHA basadas en la puntuación, lo que la vuelve invisible para los usuarios. Esto significa que el proveedor de reCAPTCHA Enterprise no requerirá que los usuarios resuelvan un desafío en ningún momento.

Si tu caso de uso requiere funciones de reCAPTCHA Enterprise que no implementa App Check, o si quieres usar App Check con tu propio proveedor personalizado, consulta Implementa un proveedor personalizado de App Check.

1. Configura el proyecto de Firebase

  1. Si aún no lo has hecho, agrega Firebase a tu proyecto de Android.

  2. En la consola de Google Cloud, ve a la página Fraud Defense y haz lo siguiente para el proveedor reCAPTCHA Enterprise:

    1. Asegúrate de estar en el proyecto correcto (consulta el selector de proyectos en la parte superior de la pantalla).

    2. Si se te solicita, habilita la API de reCAPTCHA Enterprise.

    3. Crea una clave de tipo Android y especifica el nombre del paquete de tu app (por ejemplo, com.example.my_app).

      • Asegúrate de ingresar el mismo nombre de paquete que proporcionaste cuando creaste tu app para Android de Firebase en tu proyecto de Firebase. El valor del nombre del paquete distingue mayúsculas de minúsculas.

      • En el caso de App Check, cada nombre de paquete solo puede corresponder a una sola clave de reCAPTCHA.

      Para obtener instrucciones detalladas, consulta Crea claves de reCAPTCHA basadas en la puntuación.

    4. Toma nota de esta clave. Deberás agregarla al flujo de registro en la consola de Firebase.

  3. En la consola de Firebase, navega a Seguridad > App Check.

  4. En la pestaña Apps, registra tus apps para Android para usar App Check con el proveedor de reCAPTCHA Enterprise. Deberás proporcionar la clave que obtuviste en la consola de Google Cloud.

  5. Opcional: Establece el tiempo de actividad (TTL) del token.

    En los parámetros de configuración del registro de la app, establece un tiempo de actividad (TTL) personalizado para los tokens de App Check que emite el proveedor. Puedes configurar el TTL en cualquier valor entre 30 minutos y 7 días. Cuando cambies este valor, ten en cuenta las siguientes compensaciones:

    • Seguridad: Los TTL más cortos proporcionan una mayor seguridad, ya que reducen el período en el que un atacante puede abusar de un token filtrado o interceptado.
    • Rendimiento: Si usas TTL más cortos, la app realizará la certificación con mayor frecuencia. Debido a que el proceso de certificación de la app agrega latencia a las solicitudes de red cada vez que se realiza, un TTL corto puede afectar el rendimiento de la app.
    • Cuota y costo: Los TTL más cortos y las certificaciones frecuentes agotan tu cuota con mayor rapidez. Además, en el caso de los servicios pagados, es posible que tengan un costo mayor. Consulta Cuotas y límites.

    El TTL predeterminado de 1 hora es razonable para la mayoría de las apps. Ten en cuenta que la biblioteca de App Check actualiza los tokens aproximadamente en la mitad de la duración del TTL.

  6. Opcional: Configura los parámetros avanzados.

  7. Haz clic en Guardar.

(Opcional) Configura los parámetros avanzados

Cuando un usuario abre tu app, reCAPTCHA Enterprise evalúa el nivel de riesgo que representa la interacción del usuario con la clave y devuelve una puntuación entre 0.0 y 1.0, en incrementos de 0.1.

  • Una puntuación de 0.0 indica que la interacción representa un riesgo alto y podría ser fraudulenta.
  • Una puntuación de 1.0 indica que la interacción representa un riesgo bajo y es muy probable que sea legítima.

La App Check te permite configurar un umbral de riesgo de la app para que puedas ajustar tu tolerancia a este riesgo.

En la mayoría de los casos de uso, se recomienda el valor de umbral predeterminado de 0.5. Si tu caso de uso requiere ajustes, puedes configurar este valor para cada una de tus apps en la consola de Firebase (ve a Seguridad > App Check). Asegúrate de expandir y revisar algunas consideraciones importantes sobre la configuración del umbral de riesgo de la app a continuación.

2. Agrega el SDK de App Check a tu app

Para usar el proveedor reCAPTCHA Enterprise, debes agregar la dependencia correspondiente.

En el archivo Gradle del módulo (a nivel de la app) (generalmente <project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle), agrega la dependencia de la biblioteca de App Check reCAPTCHA para Android. Te recomendamos usar Firebase Android BoM para controlar el control de versiones de las bibliotecas.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:34.19.0"))

    // Add the dependency for the App Check reCAPTCHA library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-recaptcha")
}

Cuando usas Firebase Android BoM, tu app siempre usará versiones compatibles de las bibliotecas de Firebase para Android.

(Alternativa)  Agrega dependencias de la biblioteca de Firebase sin usar la BoM

Si eliges no usar la Firebase BoM, debes especificar cada versión de la biblioteca de Firebase en su línea de dependencia.

Ten en cuenta que, si usas múltiples bibliotecas de Firebase en tu app, es muy recomendable que uses la BoM para administrar las versiones de las bibliotecas para garantizar que todas las versiones sean compatibles.

dependencies {
    // Add the dependency for the App Check reCAPTCHA library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-recaptcha:19.2.1")
}

3. Inicializa App Check

En tu app, debes inicializar App Check antes de usar cualquier otro servicio de Firebase.

Kotlin

Firebase.initialize(context = this)
Firebase.appCheck.installAppCheckProviderFactory(
    RecaptchaAppCheckProviderFactory.getInstance("SITE_KEY")
)

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
      RecaptchaAppCheckProviderFactory.getInstance("SITE_KEY"));

4. Supervisa las métricas y habilita la aplicación forzosa

Después de configurar App Check en tu app, comienza a distribuir la app actualizada a tus usuarios.

La app cliente actualizada comenzará a enviar tokens de App Check junto con cada solicitud que realice a Firebase. Sin embargo, App Check no bloqueará las solicitudes con tokens no válidos hasta que se aplique App Check.

Supervisa las métricas

Antes de habilitar la aplicación forzosa, asegúrate de que esto no interrumpa a tus usuarios legítimos existentes. Sin embargo, si ves un uso sospechoso de los recursos de tu app, te convendrá habilitar la aplicación más pronto.

Para ayudarte a tomar esta decisión, puedes revisar las métricas de App Check para los servicios que usas:

Habilita la aplicación forzosa de App Check

Cuando comprendas cómo App Check afectará a tus usuarios y tengas todo listo para continuar, puedes habilitar la aplicación forzosa de App Check:

Usa App Check en entornos de depuración

App Check clasifica algunos entornos como no válidos, como las solicitudes de un emulador o simulador durante el desarrollo, o de un entorno de integración continua (CI).

Para ejecutar tu app en estos tipos de entornos después de que se aplique App Check, debes crear una compilación de depuración de tu app que use el proveedor de depuración de App Check en lugar de un proveedor de certificación de producción.

Para obtener más detalles, consulta Cómo usar App Check con el proveedor de depuración en Android.

Precios

App Check crea una evaluación en tu nombre para validar el token de respuesta del usuario cada vez que tu app actualiza su token de App Check. Se cobrará a tu proyecto de Firebase por cada evaluación creada por encima de la cuota sin costo. Para obtener más información, consulta Precios de reCAPTCHA.

De forma predeterminada, la app actualiza este token dos veces cada 1 hora. Para controlar la frecuencia con que tu app actualiza los tokens de App Check (y, por lo tanto, con qué frecuencia se crean evaluaciones nuevas), puedes configurar el TTL del token.