Casos de éxito
Cómo reduce Uber las 4 millones de inicios de sesión manuales al año con la API Restore Credentials
Lectura de 5 minutos
Uber es la empresa de viajes compartidos más grande del mundo. Traslada a millones de personas de un lugar a otro y, además, ofrece servicios de entrega de comida, transporte sanitario y logística de mercancías. La sencillez de acceso es fundamental para su éxito. Cuando los usuarios cambian a un nuevo dispositivo, esperan una transición fluida sin tener que volver a iniciar sesión en la aplicación Uber ni autenticarse mediante una contraseña de un solo uso basada en SMS. Esta renovación frecuente de dispositivos supone un reto, así como una oportunidad para conseguir una retención de usuarios sólida.
Para mantener la continuidad de los usuarios, los ingenieros de Uber recurrieron a la función Restaurar credenciales, una herramienta esencial en un momento en el que el 40% de los habitantes de Estados Unidos cambia de smartphone cada año. Tras evaluar la demanda de los usuarios y crear un prototipo de código, introdujeron la función de restauración de credenciales en la aplicación de Uber para pasajeros. Para validar que la restauración de credenciales ayuda a reducir los problemas de inicio de sesión, el equipo de Uber llevó a cabo un experimento A/B durante cinco semanas. La integración ha supuesto una reducción de los inicios de sesión manuales que, si se proyecta en la enorme base de usuarios de Uber, se estima que eliminará 4 millones de inicios de sesión manuales al año.
Eliminar los problemas de inicio de sesión con Restaurar credenciales
En el pasado, se intentó restaurar cuentas en dispositivos nuevos mediante soluciones como la copia de seguridad de datos normal 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 rellenar previamente los campos de inicio de sesión en el dispositivo de destino y reducir algunos problemas durante los flujos de inicio de sesión. Las llaves de acceso también se usan para proporcionar un método de inicio de sesión 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 aplicación Uber a diario, pero esperan que funcione cuando la necesiten", explica Thomás Oliveira Horta, ingeniero de Android en Uber. Darte cuenta de que has cerrado sesión justo cuando abres la aplicación para pedir un viaje concertado en tu nuevo teléfono Android puede ser una experiencia desagradable y desalentadora.
Con Restaurar credenciales, los ingenieros pudieron salvar esta distancia. La API genera un token único en el dispositivo antiguo, que se transfiere de forma fluida y silenciosa al nuevo dispositivo cuando el usuario restaura los datos de aplicaciones durante el proceso de configuración estándar. Este proceso aprovecha el mecanismo nativo de copia de seguridad y restauración del SO Android, lo que garantiza la transferencia segura de la clave de restauración junto con los datos de la aplicación. Este enfoque optimizado garantiza una transferencia de cuenta sencilla y segura, que cumple los requisitos de seguridad de Uber sin necesidad de entrada del usuario adicional ni de sobrecarga de desarrollo.
Nota: Las llaves de recuperación y las llaves de acceso usan la misma implementación de servidor subyacente. Sin embargo, cuando los guarde en su base de datos, deberá diferenciarlos. Esta distinción es fundamental porque los usuarios pueden gestionar directamente las llaves de acceso que crean, mientras que las claves de restauración las gestiona el sistema y están ocultas en la interfaz de usuario.
"Con la adopción de Restaurar credenciales en la aplicación de Uber para pasajeros, empezamos a ver un uso constante", explica Thomás. Una media de 10.000 usuarios únicos al día han iniciado sesión con Restaurar credenciales en la fase de lanzamiento actual y han disfrutado de una experiencia fluida al abrir la aplicación por primera vez en un dispositivo nuevo. Esperamos que esa cifra se duplique cuando ampliemos el lanzamiento a toda nuestra base de usuarios".
Consideraciones sobre la implementación
La integración fue bastante sencilla. Solo tuvimos que hacer algunos ajustes en Android siguiendo el código de muestra y la documentación "Nuestra aplicación ya usaba Gestor de credenciales para las llaves de acceso, y el backend solo requería un par de pequeños ajustes. Por lo tanto, solo teníamos que actualizar la dependencia de Gestor de credenciales a su versión más reciente para acceder a la nueva API Restore Credentials. Hemos creado una clave de restauración mediante el mismo proceso de creación de llaves de acceso y, cuando se inicia nuestra aplicación en un dispositivo nuevo, la aplicación busca de forma proactiva esta clave intentando obtenerla de forma silenciosa. Si se encuentra la clave de restauración, se utiliza inmediatamente para iniciar sesión automáticamente, sin necesidad de iniciar sesión manualmente".
Durante el proceso de desarrollo, los ingenieros de Uber se enfrentaron a varios retos durante la implementación, desde elegir el punto de entrada adecuado hasta gestionar el ciclo de vida de las credenciales en el backend.
Elegir el punto de entrada Restaurar credenciales
Los ingenieros sopesaron cuidadosamente las ventajas y desventajas de una experiencia de usuario perfectamente fluida y la sencillez de la implementación al seleccionar qué punto de entrada de Restaurar credenciales usar para la recuperación. Al final, priorizaron una solución que ofrecía un equilibrio ideal.
"Esto puede ocurrir durante el inicio de la aplicación o en segundo plano durante la restauración y configuración del dispositivo, mediante BackupAgent", explica Thomás. "El punto de entrada de inicio de sesión en segundo plano es más fluido para el usuario, pero nos planteó problemas con las operaciones en segundo plano y requirió el uso de la API BackupAgent, lo que habría aumentado la complejidad de una base de código tan grande como la de Uber". Por eso, decidieron implementar la función durante el primer lanzamiento de la aplicación, que fue significativamente más rápido que el inicio de sesión manual.
Resolver los problemas del lado del servidor
Durante la integración con las APIs WebAuthn del backend, surgieron algunos problemas del lado del servidor, ya que su diseño daba por hecho 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ó con las claves de credenciales de restauración no gestionadas por el usuario.
El equipo de Uber resolvió este problema haciendo pequeños cambios en los servicios de WebAuthn, creando nuevos tipos de credenciales para distinguir las llaves de acceso de las credenciales de restauración y procesarlas correctamente.
Gestionar el ciclo de vida de Restaurar credenciales
Los ingenieros de Uber se enfrentaron a varios retos a la hora de gestionar las claves de credenciales en el backend, con la ayuda especializada del ingeniero de backend Ryan O’Laughlin:
- Evitar claves huérfanas: uno de los principales retos era definir una estrategia para eliminar las claves públicas registradas y evitar que se quedaran "huérfanas". Por ejemplo, si desinstalas la aplicación, se elimina la credencial local, pero como esta acción no envía ninguna señal al backend, se deja una clave sin usar en el servidor.
- Equilibrar la duración de las claves: las claves necesitaban un tiempo de vida lo suficientemente largo como para gestionar los casos límite. Por ejemplo, si un usuario hace una copia de seguridad y la restaura, y luego cierra sesión manualmente en el dispositivo antiguo, la clave se elimina de ese dispositivo. Sin embargo, la clave debe seguir siendo válida en el servidor para que el nuevo dispositivo pueda seguir usándola.
- Compatibilidad con varios dispositivos: como un usuario puede tener varios dispositivos (y puede iniciar una copia de seguridad y una restauración desde cualquiera de ellos), el backend debía admitir varias credenciales de restauración por usuario (una por dispositivo).
Los ingenieros de Uber abordaron estos problemas estableciendo reglas para la eliminación de claves del lado del servidor basadas en el registro y el uso de nuevas credenciales.
La función pasó de la fase de diseño a la de lanzamiento en un proceso rápido de desarrollo y pruebas de dos meses. Después, se llevó a cabo una prueba A/B de cinco semanas (tiempo necesario para validar la función con los usuarios) que se desarrolló sin problemas y dio resultados innegables.
Evitar que los usuarios abandonen el proceso con Restaurar credenciales
Al eliminar los inicios de sesión manuales en dispositivos nuevos, Uber retuvo a los usuarios que, de lo contrario, podrían haber abandonado el flujo de inicio de sesión en un dispositivo nuevo. Este aumento de la comodidad de los clientes se reflejó en una amplia gama de mejoras. Aunque puedan parecer leves a primera vista, el impacto es enorme a la escala de la base de usuarios de Uber:
- Una disminución del 3, 4% en los inicios de sesión manuales (contraseñas, SMS OTP e inicio de sesión con redes sociales).
- Reducción del 1,2% de los gastos en inicios de sesión que requieren una contraseña única por SMS.
- Aumento del 0,575 % en la tasa de acceso de Uber (porcentaje de dispositivos que han llegado correctamente a la pantalla de inicio de la aplicación).
- Aumento del 0,614% en los dispositivos con viajes completados.
Hoy en día, Restaurar credenciales está a punto de convertirse en una función estándar de la aplicación de Uber para pasajeros, con más del 95% de los usuarios del grupo experimental registrados.
Durante la configuración de un nuevo dispositivo, los usuarios pueden restaurar los datos de las aplicaciones y las credenciales a partir de una copia de seguridad. Después de seleccionar Uber para la restauración y de que finalice el proceso en segundo plano, la aplicación iniciará sesión automáticamente en el nuevo dispositivo la primera vez que se abra.
El impacto invisible pero enorme de Restaurar credenciales
En los próximos meses, Uber tiene previsto ampliar la integración de Restaurar credenciales. Según los resultados de la prueba, estiman que el cambio eliminará 4 millones de inicios de sesión manuales al año. Al simplificar el acceso a la aplicación y eliminar un problema clave, están creando activamente una base de clientes más satisfecha y fiel, viaje a viaje.
"La integración de RestoreCredentials de Google nos ha permitido ofrecer la experiencia fluida y sencilla que esperan nuestros usuarios en un dispositivo nuevo", afirma Matt Mueller, jefe de producto (identidad principal) de Uber. "Esto se tradujo directamente en un aumento medible de los ingresos, lo que demuestra que reducir la fricción al iniciar sesión es clave para la interacción y la retención de los usuarios".
¿Quieres mejorar la experiencia de inicio de sesión de tu aplicación?
Consulta cómo facilitar una experiencia de inicio de sesión fluida al cambiar de dispositivo con Restaurar credenciales y lee más información en la entrada de blog. En la última versión canary de Android Studio Otter, puedes validar tu integración, ya que las nuevas funciones ayudan a simular los mecanismos de copia de seguridad y restauración.
Si no has usado nunca Gestor de credenciales, puedes consultar nuestra documentación, el codelab y los ejemplos oficiales para obtener ayuda con la integración.
Seguir leyendo
-
Casos de éxito
Zoho, un paquete de software integral basado en la nube centrado en la seguridad y las experiencias fluidas, ha conseguido mejoras significativas al adoptar las llaves de acceso en su aplicación Android OneAuth.
Niharika Arora, Joseph Lewis • Lectura de 10 minutos
-
Casos de éxito
Desde noticias de última hora y entretenimiento hasta deportes y política, X es una aplicación de redes sociales que tiene como objetivo ayudar a casi 500 millones de usuarios de todo el mundo a conocer la historia completa con todos los comentarios en directo.
Niharika Arora • Tiempo de lectura: 3 min
-
Casos de éxito
TikTok es una plataforma mundial de vídeos cortos conocida por su enorme base de usuarios y sus innovadoras funciones.
Ben Trengrove, Ajesh Pai • Tiempo de lectura: 2 min
Mantente al día
Recibe cada semana en tu bandeja de entrada las últimas novedades sobre el desarrollo para Android.