Casos de éxito

Cómo Uber reduce en 4 millones por año los accesos manuales con la API de Restore Credentials

Lectura de 5 min
Niharika Arora
Ingeniera de Relaciones con Desarrolladores

Uber es la empresa de viajes compartidos más grande del mundo, que traslada a millones de personas de un lugar a otro y, al mismo tiempo, admite la entrega de comida, el transporte de atención médica y la logística de carga. La simplicidad del acceso es fundamental para su éxito. Cuando los usuarios cambian a un dispositivo nuevo, esperan una transición sin problemas sin necesidad de volver a acceder a la app de Uber ni pasar por la autenticación con contraseña de un solo uso basada en SMS. Este cambio frecuente de dispositivos presenta un desafío, así como una oportunidad para lograr una retención de usuarios sólida. 

Para mantener la continuidad de los usuarios, los ingenieros de Uber recurrieron a la función Restore Credentials, una herramienta esencial para un momento en el que el 40% de las personas en Estados Unidos reemplazan su smartphone cada año. Después de evaluar la demanda de los usuarios y la creación de prototipos de código, introdujeron la compatibilidad con Restore Credentials en la app de Uber para pasajeros. Para validar que el restablecimiento de credenciales ayuda a eliminar la fricción en los nuevos accesos, el equipo de Uber ejecutó un experimento A/B exitoso durante un período de cinco semanas. La integración generó una reducción en los accesos manuales que, cuando se proyecta en la enorme base de usuarios de Uber, se estima que elimina 4 millones de accesos manuales al año.

Elimina la fricción de acceso con Restore Credentials

restore-credentials.gif

En el pasado, se intentó restablecer cuentas en dispositivos nuevos con soluciones como la copia de seguridad de datos normal y BlockStore, aunque ambas soluciones requerían compartir tokens de autenticación directamente, desde el dispositivo de origen hasta el dispositivo de destino. Dado que la información del token es muy sensible, estas soluciones solo se usan hasta cierto punto para completar previamente los campos de acceso en el dispositivo de destino y reducir la fricción durante los flujos de acceso. Las llaves de acceso también se usan para proporcionar un método de acceso seguro y rápido, pero su naturaleza iniciada por el usuario limita su impacto en las transiciones de dispositivos sin problemas.

“Algunos usuarios no usan la app de Uber a diario, pero esperan que funcione cuando la necesiten”, dijo Thomás Oliveira Horta, ingeniero de Android en Uber. Descubrir que saliste de tu cuenta justo cuando abres la app para solicitar un viaje en tu teléfono Android nuevo puede ser una experiencia desagradable y desalentadora.

Con Restore Credentials, los ingenieros pudieron superar esta brecha. La API genera un token único en el dispositivo anterior, que se mueve de forma silenciosa y sin problemas al dispositivo nuevo cuando el usuario restablece los datos de su app durante el proceso de incorporación estándar. Este proceso aprovecha el mecanismo nativo de copia de seguridad y restablecimiento del SO Android, lo que garantiza la transferencia segura de la clave de restablecimiento junto con los datos de la app. El enfoque optimizado garantiza una transferencia de cuenta simple y segura, que cumple con los requisitos de seguridad de Uber sin ninguna entrada adicional del usuario ni sobrecarga de desarrollo.

Nota: Las claves de restablecimiento y las llaves de acceso usan la misma implementación de servidor subyacente. Sin embargo, cuando las guardas en tu base de datos, debes diferenciarlas. Esta distinción es fundamental porque el usuario puede administrar directamente las llaves de acceso creadas por el usuario, mientras que las claves de restablecimiento se administran por el sistema y se ocultan de la interfaz de usuario.

“Con la adopción de Restore Credentials en la app de Uber para pasajeros, comenzamos a ver un uso constante”, dijo Thomás. Un promedio de 10,000 usuarios únicos por día accedieron con Restore Credentials en la etapa de lanzamiento actual y disfrutaron de una experiencia sin problemas cuando abrieron la app por primera vez en un dispositivo nuevo. Esperamos que ese número se duplique una vez que ampliemos el lanzamiento a toda nuestra base de usuarios”.

image_thomas2.png

Consideraciones sobre la implementación

“La integración fue bastante sencilla con ajustes menores en el lado de Android siguiendo el código de muestra y la documentación”, dijo Thomás. “Nuestra app ya usaba Credential Manager para llaves de acceso, y el backend solo requería algunos ajustes pequeños. Por lo tanto, solo necesitábamos actualizar la dependencia de Credential Manager a su versión más reciente para obtener acceso a la nueva API de Restore Credentials. Creamos una clave de restablecimiento a través del mismo flujo de creación de llaves de acceso y, cuando se inicia nuestra app en un dispositivo nuevo, la app verifica de forma proactiva esta clave intentando recuperar la llave de acceso de forma silenciosa. Si se encuentra la clave de restablecimiento, se utiliza de inmediato para acceder automáticamente al usuario, sin pasar por ningún acceso manual”.

Durante todo el proceso de desarrollo, los ingenieros de Uber superaron algunos desafíos durante la implementación, desde elegir el punto de entrada correcto hasta administrar el ciclo de vida de las credenciales en el backend.

Elige el punto de entrada de Restore Credentials

Los ingenieros sopesaron cuidadosamente las ventajas y desventajas entre una experiencia del usuario perfectamente fluida y la simplicidad de la implementación cuando seleccionaron qué Restore Credentials punto de entrada usar para la recuperación. En última instancia, priorizaron una solución que ofreciera un equilibrio ideal.

“Esto puede ocurrir durante el inicio de la app o en segundo plano durante el restablecimiento y la configuración del dispositivo, con BackupAgent”, dijo Thomás. “El punto de entrada de acceso en segundo plano es más fluido para el usuario, pero presentó desafíos con las operaciones en segundo plano y requirió el uso de la API de BackupAgent, lo que habría aumentado la complejidad en una base de código tan grande como la de Uber”. Decidieron implementar la función durante el primer inicio de la app, que fue mucho más rápido que el acceso manual.

Soluciona los desafíos del servidor

Surgieron algunos desafíos del servidor durante la integración con las APIs de WebAuthn del backend, ya que su diseño suponía que siempre se requeriría la verificación del usuario y que todas las credenciales se mostrarían en la configuración de la cuenta del usuario. Ninguna de estas suposiciones funcionó para las claves de Restore Credentials no administradas por el usuario.

El equipo de Uber resolvió este problema realizando cambios menores en los servicios de WebAuthn, creando nuevos tipos de credenciales para distinguir las llaves de acceso de Restore Credentials y procesarlas de forma adecuada.

Administra el ciclo de vida de Restore Credentials

Los ingenieros de Uber enfrentaron varios desafíos en la administración de las claves de credenciales en el backend, con la asistencia especializada del ingeniero de backend Ryan O’Laughlin:

  • Evita las claves huérfanas: Un desafío importante fue definir una estrategia para borrar las claves públicas registradas para evitar que se vuelvan "huérfanas". Por ejemplo, desinstalar la app borra la credencial local, pero, como esta acción no indica el backend, deja una clave sin usar en el servidor.
  • Equilibra la vida útil de las claves: Las claves necesitaban un "tiempo de actividad" lo suficientemente largo para controlar los casos extremos. Por ejemplo, si un usuario realiza una copia de seguridad y un restablecimiento, y luego sale manualmente del dispositivo anterior, la clave se borra de ese dispositivo. Sin embargo, la clave debe seguir siendo válida en el servidor para que el dispositivo nuevo pueda usarla.
  • Admite varios dispositivos: Dado que un usuario puede tener varios dispositivos (y puede iniciar una copia de seguridad y un restablecimiento desde cualquiera de ellos), el backend necesitaba admitir varias Restore Credentials por usuario (una para cada dispositivo).

Los ingenieros de Uber abordaron estos desafíos estableciendo reglas para el borrado de claves del servidor en función del registro de credenciales nuevas y el uso de credenciales.

La función pasó del diseño a la entrega en un rápido proceso de desarrollo y pruebas de dos meses. Después, un experimento A/B de cinco semanas (tiempo para validar la función con los usuarios) se desarrolló sin problemas y arrojó resultados innegables.  

Evita la deserción de usuarios con Restore Credentials

Al eliminar los accesos manuales en dispositivos nuevos, Uber retuvo a los usuarios que, de lo contrario, podrían haber abandonado el flujo de acceso en un dispositivo nuevo. Este aumento en la facilidad para los clientes se reflejó en una amplia variedad de mejoras y, aunque pueden parecer leves a primera vista, el impacto es enorme en la escala de la base de usuarios de Uber: 

  • Disminución del 3.4% en los accesos manuales (contraseña única por SMS, contraseñas, acceso social)
  • Reducción del 1.2% en los gastos de los accesos que requieren contraseña única por SMS
  • Aumento del 0.575% en la tasa de acceso de Uber (% de dispositivos que llegaron correctamente a la pantalla principal de la app)
  • Aumento del 0.614% en los dispositivos con viajes completados 

Hoy en día, Restore Credentials está en camino de convertirse en una parte estándar de la app de Uber para pasajeros, con más del 95% de los usuarios del grupo de prueba registrados. 

uber-devices.png

Durante la configuración de dispositivos nuevos, los usuarios pueden restablecer los datos y las credenciales de la app desde una copia de seguridad. Después de seleccionar Uber para el restablecimiento y que finalice el proceso en segundo plano, la app accederá automáticamente al usuario en el primer inicio del dispositivo nuevo.

image_thomas.png

El impacto invisible pero masivo de Restore Credentials

En los próximos meses, Uber planea expandir la integración de Restore Credentials. Según los resultados de la prueba, estiman que el cambio eliminará 4 millones de accesos manuales al año. Al simplificar el acceso a la app y quitar un punto clave de dolor, están creando de forma activa una base de clientes más satisfecha y leal, un viaje a la vez.

“La integración de RestoreCredentials de Google nos permitió ofrecer la experiencia fluida de ‘simplemente funciona’ que esperan nuestros usuarios en un dispositivo nuevo”, dijo Matt Mueller, gerente principal de Producto (Identidad principal) en Uber. “Esto se tradujo directamente en un aumento medible de los ingresos, lo que demuestra que reducir la fricción de acceso es clave para la participación y la retención de usuarios”.

¿Todo listo para mejorar la experiencia de acceso de tu app?

Obtén información para facilitar una experiencia de acceso sin problemas cuando cambies de dispositivo con Restore Credentials y lee más en la entrada de blog. En la versión canary más reciente de Android Studio Otter, puedes validar tu integración, ya que las funciones nuevas ayudan a simular los mecanismos de copia de seguridad y restablecimiento. 

Si eres nuevo en Credential Manager, puedes consultar nuestra documentación oficial, el codelab y las muestras para obtener ayuda con la integración.

Escrito por:

Seguir leyendo