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 lleva a millones de personas de un lugar a otro y, al mismo tiempo, ofrece servicios de entrega de comida, transporte para atención médica y 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 de contraseña de un solo uso basada en SMS. Esta rotación frecuente de dispositivos presenta un desafío, así como una oportunidad para una sólida retención de usuarios. 

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 crear 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 las dificultades para volver a acceder, el equipo de Uber realizó 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 eliminará 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 habitual y BlockStore, aunque ambas soluciones requerían compartir tokens de autenticación directamente, del dispositivo de origen al de destino. Como la información de los tokens es muy sensible, estas soluciones solo se usan hasta cierto punto, para precompletar los campos de acceso en el dispositivo de destino y reducir algunas dificultades 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 fluidas entre dispositivos.

“Algunos usuarios no usan la app de Uber todos los días, pero esperan que funcione cuando la necesitan”, 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 las credenciales de restablecimiento, los ingenieros pudieron cerrar esta brecha. La API genera un token único en el dispositivo anterior, que se transfiere de forma fluida y silenciosa al dispositivo nuevo cuando el usuario restablece los datos de 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 cuentas simple y segura, que cumple con los requisitos de seguridad de Uber sin necesidad de que el usuario ingrese datos adicionales ni de que se realicen tareas de desarrollo adicionales.

Nota: Las claves de restablecimiento y las llaves de acceso usan la misma implementación de servidor subyacente. Sin embargo, cuando los guardes en tu base de datos, debes diferenciarlos. Esta distinción es fundamental porque el usuario puede administrar directamente las llaves de acceso que creó, mientras que las claves de restablecimiento las administra el sistema y están ocultas en la interfaz de usuario.

“Con la adopción de Restore Credentials en la app para pasajeros de Uber, comenzamos a ver un uso constante”, dijo Thomás. “Un promedio de 10,000 usuarios únicos diarios 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 expandamos el lanzamiento a toda nuestra base de usuarios".

image_thomas2.png

Consideraciones sobre la implementación

“La integración fue bastante fácil, con ajustes menores en Android, siguiendo el código de muestra y la documentación”, dijo Thomás. “Nuestra app ya usaba el Administrador de credenciales para las llaves de acceso, y el backend solo requirió un par de pequeños ajustes. Por lo tanto, solo tuvimos que 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 nuestra app se inicia en un dispositivo nuevo, 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 que el usuario acceda automáticamente, sin necesidad de un acceso manual”.

Durante el proceso de desarrollo, los ingenieros de Uber enfrentaron algunos desafíos en 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 ofrecía un equilibrio ideal.

“Esto puede ocurrir durante el inicio de la app o en segundo plano durante la restauración y 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 significativamente más rápido que el acceso manual.

Cómo abordar los desafíos del servidor 

Durante la integración con las APIs de WebAuthn del backend, surgieron algunos desafíos del servidor, ya que su diseño suponía que siempre se requeriría la verificación del usuario y que todas las credenciales se incluirían en la configuración de la cuenta del usuario. Ninguna de estas suposiciones funcionó para las claves de credenciales de restablecimiento 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 las credenciales de restauración y procesarlas de forma adecuada.

Administra el ciclo de vida de Restore Credentials

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

  • Prevención de claves huérfanas: Un desafío importante fue definir una estrategia para borrar las claves públicas registradas y evitar que queden "huérfanas". Por ejemplo, desinstalar la app borra la credencial local, pero, como esta acción no envía una señal al backend, deja una clave sin usar en el servidor.
  • Equilibrio de la vida útil de las claves: Las claves necesitaban un "tiempo de actividad" lo suficientemente largo como para controlar los casos extremos. Por ejemplo, si un usuario realiza una copia de seguridad y un restablecimiento, y, luego, sale de su cuenta de forma manual en el dispositivo anterior, la clave se borrará de ese dispositivo. Sin embargo, la clave debe seguir siendo válida en el servidor para que el dispositivo nuevo pueda seguir usándola.
  • Compatibilidad con varios dispositivos: Dado que un usuario puede tener varios dispositivos (y podría iniciar una copia de seguridad y un restablecimiento desde cualquiera de ellos), el backend debía admitir varias credenciales de restablecimiento por usuario (una para cada dispositivo).

Los ingenieros de Uber abordaron estos desafíos estableciendo reglas para la eliminación de claves del lado del servidor en función del registro de nuevas credenciales 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. Luego, se realizó un experimento A/B de cinco semanas (tiempo para validar la función con los usuarios) sin problemas y se obtuvieron resultados innegables.  

Cómo evitar que los usuarios abandonen la app 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 el cliente se reflejó en una amplia variedad de mejoras y, aunque pueden parecer leves a simple 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 y acceso con redes sociales)
  • 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 (porcentaje 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 y las credenciales de la app desde una copia de seguridad. Después de seleccionar Uber para la restauración y de que finalice el proceso en segundo plano, la app accederá automáticamente a la cuenta del usuario cuando se inicie por primera vez en el 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. A partir de 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 problemático clave, 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 nuestros usuarios esperan en un dispositivo nuevo", dijo Matt Mueller, gerente de producto principal (identidad principal) de 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 los usuarios".

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

Obtén información para facilitar una experiencia de acceso fluida cuando se cambian de dispositivo con Restablecer credenciales 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 nuevas funciones ayudan a simular los mecanismos de copia de seguridad y restablecimiento. 

Si es la primera vez que usas el Administrador de credenciales, puedes consultar nuestra documentación oficial, el codelab y los ejemplos para obtener ayuda con la integración.

Escrito por:
Continuar leyendo