¿Qué es un ID de instancia?

funciones clave

Además de proporcionar ID únicos para la autenticación, el ID de instancia puede generar tokens de seguridad para usar con otros servicios. Entre otras funciones, se incluyen las siguientes:

Generar tokens de seguridad

El ID de instancia proporciona una API simple para generar tokens de seguridad que autorizan a terceros a acceder a los recursos administrados del servidor de tu app.

Verifica la autenticidad de la app

Pasar tokens de ID de instancia a tu servidor y usar el servicio de ID de instancia para verificar el nombre del paquete de la app y comprobar si tiene una firma válida La verificación de los tokens con el ID de instancia del servicio de Cloud ayuda a identificar las apps conocidas. Para reducir el costo y las comunicaciones redundantes de ida y vuelta, configura el servidor para que almacene estos tokens, de modo que la verificación solo se necesite una vez. Si surge un problema de seguridad, tu app puede borrar los tokens, o el ID de instancia, y generar otros nuevos. Además, el servidor de ID de instancia inicia la actualización del token o del ID de instancia si detecta errores o problemas de seguridad.

Confirma que la app esté activa

El servidor de Instance ID puede indicarte cuándo se usó por última vez el dispositivo en el que está instalada tu app. Úsala para decidir si quieres conservar los datos de la app o enviar un mensaje push para volver a interactuar con los usuarios.

Identifica apps y haz un seguimiento de ellas

El ID de instancia es único en todas las instancias de la app en el mundo, por lo que tu base de datos puede usarlo para identificar y hacer un seguimiento de las instancias de la app de manera única. El código del servidor puede verificar, a través del servicio de Cloud ID de instancia, que un ID de instancia es original y es el mismo que el de la app original que se registró en tu servidor. Por motivos de privacidad, tu app puede borrar un ID de instancia para que ya no esté asociado con ningún historial de la base de datos. La próxima vez que tu app llame al ID de instancia, obtendrá un ID de instancia completamente nuevo sin relación con el anterior.

Ciclo de vida de los IDs de instancia

  1. El servicio Instance ID emite una InstanceID cuando tu app se conecta. InstanceID está respaldado por un par de claves pública/privada con la clave privada almacenada en el dispositivo local y la clave pública registrada con el servicio de ID de instancia.
  2. Tu app puede solicitar un InstanceID nuevo cada vez que lo necesite con el método getID(). La app puede almacenarla en tu servidor si tienes uno compatible con ella.
  3. Tu app puede solicitar tokens al servicio Instance ID según sea necesario mediante el método getToken() y, al igual que InstanceID, la app también puede almacenar tokens en tu propio servidor. Todos los tokens emitidos a tu app pertenecen al InstanceID de la app.
  4. Los tokens son únicos y seguros, pero es posible que tu app o el servicio de Instance ID deban actualizar los tokens en caso de que haya un problema de seguridad o cuando un usuario desinstale y reinstale tu app durante el restablecimiento del dispositivo. Tu app debe implementar un objeto de escucha para responder a las solicitudes de actualización de token del servicio de ID de instancia.

Implementación del cliente

El ID de instancia se ejecuta en iOS y Android. Cada una requiere que incluyas la biblioteca adecuada en tu app cliente. Android requiere los Servicios de Google Play. Necesitarás un ID del proyecto que genera Google Developers Console si deseas generar tokens.

Para obtener instrucciones detalladas, consulta las guías de implementación para iOS y Android.