Descripción general de seguridad

En este documento, se explica cómo Fleet Engine protege el intercambio de información entre los tres entornos principales de tu sistema de Fleet Engine: tu servidor de backend, tu servidor de Fleet Engine y tus aplicaciones y sitios web para clientes.

Fleet Engine administra la seguridad de dos maneras fundamentales, a través del principio de privilegio mínimo:

  • Credenciales predeterminadas de la aplicación (ADC): Para entornos con privilegios elevados, como las comunicaciones de servidor a servidor. Se usa cuando tu servidor de backend crea vehículos y viajes, y los administra en Fleet Engine. Para obtener más detalles, consulta Credenciales predeterminadas de la aplicación.

  • Tokens web JSON (JWT): Para entornos de baja confianza, como las aplicaciones cliente que se ejecutan en smartphones y navegadores. Se usa para realizar operaciones con menos privilegios, como actualizar la ubicación del vehículo en Fleet Engine.

    Tu servidor de backend genera y emite los JWT que requieren los entornos de baja confianza para proteger las claves secretas de las cuentas de servicio, y también incluyen declaraciones adicionales específicas de Fleet Engine. Para obtener más detalles, consulta Tokens web JSON.

    Por ejemplo, si tienes una app para conductores, estos acceden a los datos de Fleet Engine a través de la app, que se autentica con los JWT que obtiene de tu servidor de backend. Los reclamos JWT incluidos, junto con el rol de la cuenta de servicio, determinan a qué partes de tu sistema tiene acceso la app para conductores y qué puede hacer. Este enfoque limita el acceso solo a los datos necesarios para completar sus tareas de conducción.

Fleet Engine usa estos enfoques de seguridad para proporcionar lo siguiente:

  • La autenticación verifica la identidad de la entidad que realiza la solicitud. Fleet Engine usa ADC para entornos de alta confianza y JWT para entornos de baja confianza.

  • La autorización especifica a qué recursos tiene acceso una entidad autenticada. Fleet Engine usa cuentas de servicio con roles de Google Cloud IAM, además de reclamos de JWT que garantizan que las entidades autenticadas tengan permisos para ver o cambiar los datos que solicitan.

Configuración de seguridad del servidor y el cliente

Para habilitar la seguridad con Fleet Engine, configura las cuentas y la seguridad necesarias en tu servidor de backend y en tus aplicaciones y sitios web cliente.

En el siguiente diagrama, se muestra una descripción general de los pasos para configurar la seguridad en tu servidor de backend y tus aplicaciones cliente.

Diagrama del flujo de seguridad durante la configuración para la autenticación de la app del cliente y del servidor

Para obtener más detalles, consulta las siguientes secciones.

Configuración de seguridad del servidor de backend

Un administrador de la flota debe seguir estos pasos:

  1. Crea y configura cuentas de servicio:

    1. En la consola de Google Cloud, crea cuentas de servicio.

    2. Asigna roles de IAM específicos a las cuentas de servicio.

    3. Configura tu servidor de backend con las cuentas de servicio creadas. Para obtener más información, consulta Roles de cuentas de servicio.

  2. Configura la comunicación segura con Fleet Engine (ADC): Configura tu backend para que se comunique con tu instancia de Fleet Engine usando las credenciales predeterminadas de la aplicación con la cuenta de servicio de *Admin adecuada. Para obtener más información, consulta Credenciales predeterminadas de la aplicación.

  3. Configura la comunicación segura con las apps cliente (JWT): Crea un generador de tokens web JSON para crear JWTs con los reclamos adecuados para las aplicaciones cliente y los sitios web de supervisión. Para obtener más detalles, consulta Cómo emitir tokens web JSON.

Configuración de seguridad de la aplicación

Los desarrolladores de aplicaciones deben incluir una forma de recuperar los tokens web JSON generados por tu servidor de backend en tus apps o sitios web para clientes, y usarlos para comunicarse de forma segura con Fleet Engine. Para obtener más detalles, consulta las instrucciones de configuración en la documentación de Experiencia del conductor o Experiencia del consumidor para las aplicaciones que necesites.

Flujo de seguridad de la app cliente y el servidor

En el siguiente diagrama de secuencia, se muestra el flujo de autenticación y autorización de la app del servidor y del cliente con Fleet Engine usando ADC con el servidor de backend y JWT con las aplicaciones y los sitios web del cliente.

Diagrama del flujo de seguridad durante el funcionamiento para la autenticación de la app del cliente y del servidor

  • Tu servidor de backend crea vehículos, viajes o tareas en Fleet Engine.

  • Tu servidor de backend asigna un viaje o una tarea a un vehículo: La app para el conductor, cuando está activa, recupera la asignación.

  • Tu servidor de backend: Firma y emite un JWT para la cuenta de servicio respectiva con el rol de IAM adecuado para la tarea o el viaje asignado.

  • La app del cliente: La app del cliente usa el JWT recibido para enviar actualizaciones de la ubicación del vehículo a Fleet Engine.

¿Qué sigue?