Tokens web JSON

El token web JSON (JWT) es un estándar web abierto que se usa para autenticar y autorizar intercambios de información entre un cliente y un servidor. Cuando una app usuario primero accede con las credenciales de rol adecuadas, el servidor crea y devuelve un JWT codificado con firma digital para usarlo en solicitudes posteriores. Este proceso autentica al usuario y lo autoriza a acceder a las rutas, servicios y recursos según el rol de su cuenta.

Fleet Engine requiere el uso de tokens web JSON (JWT) firmados por un cuenta de servicio adecuada para las llamadas de método a la API desde modelos de entornos de desarrollo de software. Los entornos de baja confianza incluyen smartphones y navegadores. Un JWT Se origina en tu servidor, que es un entorno completamente confiable. El token JWT se firma, se encripta y se pasa al cliente para la posterior interacciones hasta que caduque o deje de ser válida.

Tu backend debe autenticarse y autorizarse contra Fleet Engine usando mecanismos estándar de credenciales predeterminadas de la aplicación. Marca asegúrate de usar JWT firmados con la cuenta de servicio correspondiente. Para un lista de los roles de la cuenta de servicio; consulta los roles de la cuenta de servicio de Flet Engine en Aspectos básicos de Flet Engine.

A diferencia de las claves de API, los JWT son de corta duración y limitan las operaciones solo a aquellas que está autorizado a realizar el rol. Para obtener más información sobre los JWT, consulta JSON Web Tokens en Wikipedia. Para obtener detalles sobre los roles de acceso, consulta Service roles de la cuenta de servicio en esta guía.

Elementos JWT

Los JWT contienen un encabezado y una sección de reclamación. La sección del encabezado contiene información, como la clave privada obtenida de las cuentas de servicio y el algoritmo de encriptación. La sección de reclamaciones contiene información como los tiempo de creación, tiempo de actividad, los servicios que el JWT reclama acceso y otra información de autorización para determinar el acceso; para por ejemplo, el ID del vehículo de entrega.

La siguiente tabla proporciona detalles descriptivos sobre los campos JWT en general. así como información específica sobre dónde puedes encontrar los valores para estas en tu proyecto de Cloud de Fleet Engine.

Campos de encabezado JWT

Campo

Descripción

alg

El algoritmo que se usará. `RS256`:

tipo

El tipo de token. “JWT”.

niño

El ID de la clave privada de tu cuenta de servicio Puedes encontrar este valor en Campo private_key_id del archivo JSON de tu cuenta de servicio Marca asegúrate de usar una clave de una cuenta de servicio con el nivel correcto de permisos.

Campos de reclamaciones de JWT

Campo

Descripción

iss

La dirección de correo electrónico de tu cuenta de servicio, que se encuentra en Campo client_email del archivo JSON de tu cuenta de servicio

sub

La dirección de correo electrónico de tu cuenta de servicio, que se encuentra en Campo client_email del archivo JSON de tu cuenta de servicio

aud

El SERVICE_NAME de tu cuenta de servicio En este caso, https://fleetengine.googleapis.com/

iat

La marca de tiempo en la que se creó el JWT, especificada en segundos transcurrido desde las 00:00:00 UTC, January 1, 1970. Espera 10 minutos para el sesgo. Si la marca de tiempo es demasiado lejana en el pasado o en el futuro, el el servidor podría informar un error.

exp

La marca de tiempo en la que el JWT vence, que se especifica en segundos transcurridos desde 00:00:00 UTC, January 1, 1970. La solicitud falla si la marca de tiempo es de más de una hora en el futuro.

autorización

Según el caso de uso, puede contener deliveryvehicleid. trackingid, taskid o taskids.

Reclamaciones de JWT de Fleet Engine

Fleet Engine usa reclamaciones privadas. El uso de reclamaciones privadas garantiza que solo los clientes autorizados pueden acceder a sus propios datos.

Por ejemplo, cuando tu servidor emite un token web JSON para la conexión móvil debe contener la reclamación vehicleid o la Reclamo de deliveryvehicleid con el valor del ID de vehículo del conductor Luego, según el rol del conductor, los JWT permiten el acceso solo al vehículo específico y no ningún otro ID arbitrario de vehículo.

Fleet Engine usa las siguientes reclamaciones privadas:

Viajes on demand

  • vehicleid
    • El SDK del conductor siempre usa esta declaración, independientemente de si opera en un viaje o vehículo. El backend de Fleet Engine se asegura de que el vehículo esté asociados con el viaje solicitado antes de realizar la modificación.
    • Como proveedor de servicios, usas este reclamo con un “*” para que coincidan con todos vehículos. Ten en cuenta que el JWT puede abarcar tanto el vehículo como el viaje las operaciones, incluso si no son obligatorias, lo que puede simplificar la firma de JWT para implementarlos.
  • tripid
    • El SDK para consumidores siempre usa esta reclamación.
    • Como proveedor de servicios, utilizas este reclamo con un "*". para que coincidan con todos viajes. Ten en cuenta que el JWT puede cubrir operaciones de vehículos y viajes, incluso si no es necesario, lo que puede simplificar la firma de tokens para implementarlos.

Tareas programadas

  • deliveryvehicleid

    Usar cuando se llama por vehículo de entrega APIs

  • taskid

    Se usa cuando se llama a APIs por tarea.

  • taskids

    Usar durante llamadas BatchCreateTasksAPI Esta reclamación debe estar en forma de array, y la matriz debe contener todos los IDs de tarea necesarios para completar para cada solicitud. No incluyas delivervehicleid, trackingid o taskid reclamos.

  • trackingid

    Se usa cuando se llama al GetTaskTrackingInfoAPI El reclamo debe coincidir con el seguimiento de la solicitud. No incluyas delivervehicleid, taskid o taskids reclamos.

¿Qué sigue?