Selecciona la plataforma: Android iOS JavaScript

Usa la Verificación de aplicaciones para proteger tu clave de API

La Verificación de aplicaciones de Firebase protege las llamadas de tu app a Google Maps Platform, ya que bloquea el tráfico que proviene de fuentes que no son apps legítimas. Para ello, verifica si hay un token de un proveedor de certificación, como Play Integrity. Integrar tus apps con la Verificación de aplicaciones ayuda a protegerlas contra solicitudes maliciosas, de modo que no se te cobren llamadas a la API no autorizadas.

¿La Verificación de aplicaciones es adecuada para mí?

Se recomienda usar la Verificación de aplicaciones en la mayoría de los casos, pero no es necesaria ni compatible en las siguientes situaciones:

  • Estás usando el SDK de Places original. La Verificación de aplicaciones solo es compatible con el SDK de Places (nuevo).
  • Apps privadas o experimentales Si no se puede acceder públicamente a tu app, no es necesario usar la Verificación de aplicaciones.
  • Si tu app solo se usa de servidor a servidor, no se necesita la Verificación de aplicaciones. Sin embargo, si los clientes públicos (como las apps para dispositivos móviles) usan el servidor que se comunica con GMP, considera usar la Verificación de aplicaciones para proteger ese servidor en lugar de GMP.
  • Los proveedores de certificación recomendados de la Verificación de aplicaciones no funcionarán en dispositivos que tu proveedor de certificación considere comprometidos o no confiables. Si necesitas admitir esos dispositivos, puedes implementar un servicio de certificación personalizado. Para obtener más información, consulta las instrucciones.

Descripción general de los pasos de implementación

En términos generales, estos son los pasos que seguirás para integrar tu app en la Verificación de aplicaciones:

  1. Agrega Firebase a tu app.
  2. Agrega e inicializa la biblioteca de la Verificación de aplicaciones.
  3. Agrega el proveedor de tokens.
  4. Habilita la depuración.
  5. Supervisa las solicitudes de tu app y decide si aplicar medidas por incumplimiento.

Una vez que hayas integrado la Verificación de aplicaciones, podrás ver las métricas de tráfico del backend en Firebase console. Estas métricas proporcionan un desglose de las solicitudes según si están acompañadas de un token válido de Verificación de aplicaciones. Consulta la documentación de la Verificación de aplicaciones de Firebase para obtener más información.

Cuando tengas la certeza de que la mayoría de las solicitudes provienen de fuentes legítimas y de que los usuarios actualizaron la app a la versión más reciente, que incluye tu implementación de la Verificación de aplicaciones, puedes activar la aplicación de medidas por incumplimiento. Una vez que se active la aplicación de medidas por incumplimiento, la Verificación de aplicaciones rechazará todo el tráfico que no tenga un token válido de Verificación de aplicaciones.

Consideraciones para planificar una integración de la Verificación de aplicaciones

Estos son algunos aspectos que debes tener en cuenta cuando planifiques la integración:

  • El proveedor de certificación que recomendamos, Play Integrity, tiene un límite de llamadas diarias para su nivel de uso de la API estándar. Para obtener más información sobre los límites de llamadas, consulta la página Configuración en la documentación para desarrolladores de Google Play Integrity.

    También puedes optar por usar un proveedor de certificación personalizado, aunque este es un caso de uso avanzado. Para obtener más información, consulta Implementa un proveedor personalizado para la Verificación de aplicaciones.

  • Los usuarios de tu app experimentarán cierta latencia durante el inicio. Sin embargo, después de eso, cualquier revalidación periódica se producirá en segundo plano y los usuarios ya no deberían experimentar latencia. La cantidad exacta de latencia en el inicio depende del proveedor de certificación que elijas.

    La cantidad de tiempo que el token de Verificación de aplicaciones es válido (el tiempo de actividad o TTL) determina la frecuencia de las revalidaciones. Esta duración se puede configurar en Firebase console. La reatestación se produce cuando transcurre aproximadamente la mitad del TTL. Para obtener más información, consulta la documentación de Firebase de tu proveedor de certificación.

Integra tu app en la Verificación de aplicaciones

Requisitos previos y requisitos

  • Una app con la versión 4.1 o posterior del SDK de Places integrado
  • La huella digital SHA-256 de tu app
  • Es el nombre del paquete de tu app.
  • Debes ser el propietario de la app en la consola de Cloud.
  • Necesitarás el ID del proyecto de la app de la consola de Cloud

Paso 1: Agrega Firebase a tu app

Sigue las instrucciones de la documentación para desarrolladores de Firebase para agregar Firebase a tu app.

Paso 2: Agrega la biblioteca de Verificación de aplicaciones y, luego, inicializa la función

Para obtener información sobre cómo usar Play Integrity, el proveedor de certificación predeterminado, consulta Comienza a usar la Verificación de aplicaciones con Play Integrity en Android.

  1. Si aún no lo hiciste, integra el SDK de Places en tu app.
  2. A continuación, inicializa la Verificación de aplicaciones y el cliente de Places.

    // Initialize App Check
    FirebaseApp.initializeApp(/* context= */ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            PlayIntegrityAppCheckProviderFactory.getInstance());
      
    // Initialize Places SDK
    Places.initializeWithNewPlacesApiEnabled(context, API_KEY);
    PlacesClient client = Places.createClient(context);.

Paso 3: Agrega el proveedor de tokens

Después de inicializar la API de Places, llama a setPlacesAppCheckTokenProvider() para establecer el PlacesAppCheckTokenProvider.

Places.initializeWithNewPlacesApiEnabled(context, API_KEY);
Places.setPlacesAppCheckTokenProvider(new TokenProvider());
PlacesClient client = Places.createClient(context);.

A continuación, se muestra un ejemplo de implementación de la interfaz del recuperador de tokens:

  /** Sample client implementation of App Check token fetcher interface. */
  static class TokenProvider implements PlacesAppCheckTokenProvider {
    @Override
    public ListenableFuture<String> fetchAppCheckToken() {
      SettableFuture<String> future = SettableFuture.create();
      FirebaseAppCheck.getInstance()
          .getAppCheckToken(false)
          .addOnSuccessListener(
              appCheckToken -> {
                future.set(appCheckToken.getToken());
              })
          .addOnFailureListener(
              ex -> {
                future.setException(ex);
              });

      return future;
    }
  }

Paso 4: Habilita la depuración (opcional)

Si quieres desarrollar y probar tu app de forma local, o ejecutarla en un entorno de integración continua (CI), puedes crear una compilación de depuración de la app que use un secreto de depuración para obtener tokens válidos de la Verificación de aplicaciones. Esto te permite evitar el uso de proveedores de certificación reales en tu compilación de depuración.

Para ejecutar tu app en un emulador o en un dispositivo de prueba, sigue estos pasos:

  • Agrega la biblioteca de la Verificación de aplicaciones a tu archivo build.gradle.
  • Configura la Verificación de aplicaciones para que use la fábrica de proveedores de depuración en tu compilación de depuración.
  • Inicia la app, que creará un token de depuración local. Agrega este token a Firebase console.
  • Para obtener más información e instrucciones, consulta la documentación de la Verificación de aplicaciones.

Para ejecutar tu app en un entorno de CI, haz lo siguiente:

  • Crea un token de depuración en Firebase console y agrégalo al almacén de claves seguro de tu sistema de CI.
  • Agrega la biblioteca de la Verificación de aplicaciones a tu archivo build.gradle.
  • Configura tu variante de compilación de CI para que use el token de depuración.
  • Une el código de tus clases de prueba que necesite un token de Verificación de aplicaciones con DebugAppCheckTestHelper.
  • Para obtener más información e instrucciones, consulta la documentación de la Verificación de aplicaciones.

Paso 5: Supervisa las solicitudes de tu app y decide si aplicar medidas por incumplimiento

Antes de comenzar con la aplicación de políticas, asegúrate de que no interrumpirás a los usuarios legítimos de tu app. Para ello, visita la pantalla de métricas de la Verificación de aplicaciones y consulta qué porcentaje del tráfico de tu app es verificado, desactualizado o ilegítimo. Una vez que veas que se verificó la mayor parte de tu tráfico, puedes habilitar la aplicación de medidas por incumplimiento.

Consulta la documentación de la Verificación de aplicaciones de Firebase para obtener más información y las instrucciones.