Casos de éxito

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

Lectura de 5 min

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 fluida 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 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 nuevo teléfono Android puede ser una experiencia desagradable y desalentadora.

Con Restore Credentials, los ingenieros pudieron cerrar esta brecha. La API genera un token único en el dispositivo anterior, que se mueve de forma fluida y silenciosa 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 fluida 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 las 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 enfrentaron 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é punto de entrada de Restore Credentials 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.

Aborda 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 aparecerían en la configuración de la cuenta del usuario. Ninguna de estas suposiciones funcionó para las claves de Restore Credential 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 anterior. 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 (OTP por SMS, contraseñas, acceso social)
  • Reducción del 1.2% en los gastos de los accesos que requieren OTP 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 un dispositivo nuevo, los usuarios pueden restablecer los datos de la app y las credenciales 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 insatisfacción, están creando de forma activa una base de clientes más satisfechos y leales, 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 fluida cuando cambies de dispositivo con Restore Credentials y obtén más información 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