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 sitios web y aplicaciones cliente.
Fleet Engine administra la seguridad de dos maneras fundamentales, con el principio de privilegio mínimo:
Credenciales predeterminadas de la aplicación (ADC): Para entornos de alto privilegio, 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 aplicaciones cliente que se ejecutan en teléfonos inteligentes y navegadores. Se usa para realizar operaciones con privilegios más bajos, 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 la cuenta de servicio y, además, incluyen reclamos adicionales específicos de Fleet Engine. Para obtener más detalles, consulta Tokens web JSON.
Por ejemplo, si tienes una aplicación de controlador, los conductores acceden a los datos de Fleet Engine a través de la aplicación. La aplicación se autentica con los JWT que obtiene de tu servidor de backend. Los reclamos de JWT incluidos, junto con el rol de la cuenta de servicio, determinan a qué partes del sistema tiene acceso la app del conductor 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 IAM de Google Cloud, 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, en tus aplicaciones cliente y en tus sitios web.
En el siguiente diagrama, se muestra una descripción general de los pasos para configurar la seguridad en tu servidor de backend y en las aplicaciones cliente.
Para obtener más detalles, consulta las siguientes secciones.
Configuración de seguridad del servidor de backend
Un administrador de flotas debe seguir estos pasos:
Crea y configura cuentas de servicio:
En la consola de Google Cloud, crea cuentas de servicio.
Asigna roles de IAM específicos a las cuentas de servicio.
Configura tu servidor de backend con las cuentas de servicio creadas. Para obtener más información, consulta Roles de la cuenta de servicio.
Configura la comunicación segura con Fleet Engine (ADC): Configura tu backend para que se comunique con tu instancia de Fleet Engine con las credenciales predeterminadas de la aplicación con la cuenta de servicio de administrador *adecuada. Para obtener más información, consulta Credenciales predeterminadas de la aplicación.
Configura la comunicación segura con las apps cliente (JWT): Crea un generador de tokens web JSON para crear los JWT con reclamaciones adecuadas para las aplicaciones cliente y los sitios web de supervisión. Para obtener más información, 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 que genera el servidor de backend en sus apps o sitios web de clientes y usarlos para comunicarse de forma segura con Fleet Engine. Para obtener más información, consulta las instrucciones de configuración en la documentación de Experiencia del conductor o Experiencia del consumidor para las aplicaciones que necesitas.
Flujo de seguridad de la app cliente y del servidor
En el siguiente diagrama de secuencias, se muestra el flujo de autenticación y autorización de la app del servidor y del cliente con Fleet Engine mediante ADC con el servidor de backend y JWT con las aplicaciones y los sitios web del cliente.
Tu servidor de backend crea vehículos y viajes o tareas en Fleet Engine.
Tu servidor de backend envía un viaje o una tarea a un vehículo: Cuando la app del conductor está activa, recupera la tarea.
Tu servidor de backend: Firma y emite un JWT para la cuenta de servicio correspondiente con el rol de IAM adecuado para la tarea o el viaje asignados.
La app cliente: La app cliente usa el JWT recibido para enviar actualizaciones de ubicación del vehículo a Fleet Engine.
¿Qué sigue?
- Crea tu proyecto de Fleet Engine.
- Obtén información para emitir tokens web JSON desde tu servidor.
- Obtén más información sobre las funciones de cuentas de servicio.
- Obtén más información sobre los JWT.