| Seleccionar plataforma: | iOS+ Android Web Flutter |
En esta página, se muestra cómo configurar App Check en una app de Flutter, 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 de reCAPTCHA basadas en puntuaciones reCAPTCHA, lo que la vuelve invisible para los usuarios. Esto significa que el reCAPTCHA Enterprise proveedor 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 la App Check, o si quieres usar la App Check con tu propio proveedor personalizado, consulta Implementa un proveedor personalizado de la App Check.
1. Configura el proyecto de Firebase
Si aún no lo has hecho, instala y, luego, inicializa Firebase en tu proyecto de Flutter.
En la consola de Google Cloud, ve a la página Fraud Defense, y haz lo siguiente para el proveedor de reCAPTCHA Enterprise:
Asegúrate de estar en el proyecto correcto (consulta el selector de proyectos en la parte superior de la pantalla).
Si se te solicita, habilita la API reCAPTCHA Enterprise.
Crea una clave según tu plataforma de destino:
iOS+
Crea una clave de tipo iOS y especifica el ID del paquete de tu app (por ejemplo,
com.example.my_app).Asegúrate de ingresar el mismo ID del paquete que proporcionaste cuando creaste tu app de Apple de Firebase en tu proyecto de Firebase. El valor del ID del paquete distingue entre mayúsculas y minúsculas.
En App Check, cada ID del paquete solo puede corresponder a una sola clave reCAPTCHA.
Android
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 entre mayúsculas y minúsculas.
En App Check, cada nombre de paquete solo puede corresponder a una sola clave reCAPTCHA.
Web
Crea una clave de tipo Web y especifica cada uno de los dominios de tus apps web.
App Check no admite apps web que se publican en más de 250 dominios.
Nunca agregues
localhostcomo dominio a una clave de reCAPTCHA que se implemente (o se vaya a implementar) en producción.Deja sin seleccionar la opción “Usar el desafío de la casilla de verificación”.
Para obtener instrucciones detalladas, consulta Crea claves reCAPTCHA basadas en puntuaciones.
Toma nota de cada clave. Deberás agregarlas al flujo de registro en la Firebase console.
En la consola de Firebase, navega a Seguridad > Verificación de aplicaciones.
En la pestaña Apps, registra cada una de las apps de la plataforma de destino para usar App Check con el proveedor reCAPTCHA Enterprise. Deberás proporcionar la clave que obtuviste en la consola Google Cloud.
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 App Check los tokens que emite el proveedor. Puedes establecer 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 App Check actualiza los tokens aproximadamente en la mitad de la duración del TTL.
Opcional: Establece la configuración avanzada.
Haz clic en Guardar.
(Opcional) Establece la configuración avanzada
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.
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 > Verificación de aplicaciones). Asegúrate de expandir y revisar algunas consideraciones importantes sobre la configuración del umbral de riesgo de la app que se indican a continuación.
2. Agrega el App Check complemento a tu app
Para usar el proveedor reCAPTCHA Enterprise, debes agregar el complemento correspondiente App Check.
Desde la raíz de tu proyecto de Flutter, ejecuta el siguiente comando para instalar el complemento:
flutter pub add firebase_app_checkCuando termines, vuelve a crear el proyecto de Flutter:
flutter run
3. Inicializa App Check
En tu app, debes inicializar App Check antes de usar cualquier otro servicio de Firebase.
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';
import 'firebase_options.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
await FirebaseAppCheck.instance.activate(
providerWeb: ReCaptchaEnterpriseProvider(WEB_SITE_KEY),
providerAndroid: const AndroidReCaptchaProvider(ANDROID_SITE_KEY),
providerApple: const AppleReCaptchaProvider(IOS_SITE_KEY),
);
runApp(App());
}
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 App Check tokens 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. Por otro lado, 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 App Check para los servicios que usas:
- Supervisa las métricas de solicitudes App Checkde la Verificación de aplicaciones para Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity para iOS, la API de Maps JavaScript y la API de Places (nueva).
- Supervisa las métricas de solicitudes de App Check para Cloud Functions.
Habilita la aplicación forzosa de App Check
Cuando comprendas cómo afectará App Check a tus usuarios y estés listo para continuar, puedes habilitar la aplicación forzosa de App Check:
- Habilita la App Checkaplicación forzosa para Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity para iOS, la API de Maps JavaScript y la API de Places (nueva).
- Habilita la aplicación forzosa de App Check para Cloud Functions.
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, o localhost durante el desarrollo, o desde 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 la app que use el App Check proveedor de depuración en lugar de un proveedor de certificación de producción.
Para obtener más detalles, consulta Usa App Check mediante el proveedor de depuración en aplicaciones de Flutter.
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. Tu proyecto de Firebase se cobrará por cada evaluación creada por encima de la cuota sin costo. Para obtener detalles, consulta los 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.